← Назад к ресурсам

Pause Day Cycle

Pause the in-game day if nobody's online or when all players are AFK. Fixes local difficulty on small SMP servers.

Modrinth game-mechanics management utility

Описание

# Pause Day Cycle **To enable AFK detection feature, [Detect AFK Players](https://modrinth.com/datapack/detect-afk) must be installed.** When nobody's on a Minecraft server, the in-game time still increases. This means you can't track the number of days played, and the local difficulty will also increase. That's not a concern for servers that have players online almost constantly, but for small/medium sized servers, this is a problem. This is a very light-weight data pack to prevent game time from increasing when nobody's online or when every player online is tagged as `afk`, *without* pausing the server itself so that automatic farms can continue to run. See it in action ![Day pauses while player is AFK](https://github.com/clo4/datapacks/blob/main/pause-day-cycle/sunset_afk.gif?raw=true) Time pauses while player is AFK. Player sitting done with [AFK Sit](https://modrinth.com/datapack/afk-sit). ## Why *another* one of these? There are already a few mods and data packs that do the same thing as this one, but none of them did quite what I need: 1. It integrates with Detect AFK Players, allowing AFK players to *also* not skyrocket the game time. 2. It's easy to integrate with other datapacks so that the pause/unpause doesn't break. Even with the introduction of the server property `pause-when-empty-seconds`, the issue of AFK players increasing game time is not solved, and spawn chunks will not be ticked while paused, which you may or may not want. ## Details When nobody is online or all online players are tagged as `afk` (see [Detect AFK Players](https://modrinth.com/datapack/detect-afk)) the following gamerules will be set to false: - `doDaylightCycle` - `doWeatherCycle` `doMobSpawning` is *not* changed because it allows automatic farms in spawn chunks or manually loaded chunks to function with nobody present. **Note:** If one of the gamerules is *already* set to false while the time isn't paused, that gamerule will **not be changed** - this pack respects your options! ## Extending it This datapack provides two function tags: `pause_day_cycle:pause` and `pause_day_cycle:resume`. These will be called when the day cycle is paused and resumed. Below is an extremely simple example of an add-on data pack that uses these tags to log to the server when the day cycle is paused. ###### announce/data/pause_day_cycle/tags/functions/pause.json ```json { "values": ["announce:pause"] } ``` ###### announce/data/announce/functions/pause.mcfunction ```mcfunction say Day cycle has been paused ```