abused / ForgeAutoShutdown

Minecraft forge mod for automatically shutting down a server by schedule or other triggers.
MIT License
0 stars 3 forks source link

ForgeAutoShutdown is a server-only mod that can:

Requirements

Installation

  1. Download the latest release JAR or clone this repository & build a JAR file
  2. Place the JAR file in the mods/ directory of the server
  3. Run/restart the server
  4. Open config/ForgeAutoShutdown.cfg and modify configuration to desired values
  5. Restart the server for changes to take effect

Features

Any of these features may be disabled in the config

Scheduled shutdown

ForgeAutoShutdown will log a message at the INFO level on server startup, with a date and time of the next scheduled shutdown. For example:

[10:50:09] [Server thread/INFO] [ForgeAutoShutdown]: Next automatic shutdown: 08:30:00 19-June-2015

If this message is missing, the mod has not been correctly installed or the schedule is disabled in config. If the mod is installed on a Minecraft client, it will log an ERROR to the console and not perform any function. It will not crash or disable the client.

Mode

By default, the shutdown will be scheduled to happen at a specific time of day. This is the time local to the server and will always happen within the next 24 hours after server startup. This means that if the server starts and has missed the shutdown time even by a few minutes, it will schedule for the next day.

Alternatively, setting Uptime to true means the server can shutdown after a specific amount of hours or minutes instead. This can allow the server to restart multiple times a day, or after a few days, etc.

Warnings

By default a scheduled shutdown will give a warning to all players, each minute for five minutes, after the scheduled time. This can be disabled by setting Warnings to false. This means the server will shutdown, without warning, by the scheduled time.

Delay

If desired, the shutdown can be delayed by a configurable amount if players are still on the server. To enable this, set Delay to true and adjust DelayBy to the amount of minutes to delay.

The shutdown will be repeatedly delayed until the server is empty. When checking if the server for players, fake players (e.g. BuildCraft's quarry) are excluded. Note that shutdown warnings are ineffective with delays, and a pending shutdown will be cancelled if a player comes online during the countdown.

Voting

If enabled, players may vote a manual shutdown. To do so, a player must execute /shutdown. Then, all players (including the vote initiator) must vote using /shutdown yes or /shutdown no.

If the amount of no votes reach a maximum threshold, the vote fails. If a vote is cast and too many players have disconnected in the meantime, the vote fails. If a vote fails, another one will not be able to start until a configured amount of minutes has passed.

If the vote succeeds, the server will instantly shutdown without warning. If an appropriate means of automatic restart is in place, it should be expected that the server will go up within a few minutes.

Watchdog

If enabled, a watchdog thread can periodically watch the server for unresponsiveness. By default, it checks every 10 seconds:

If either problem is detected, the watchdog will try a soft kill (or a hard kill, if configured). This makes the server try to save all its data before shutting down. If a soft kill takes longer than ten seconds, the watchdog will do a hard kill.