2.0.0
Compatibility
Changes
Maintenance v2.0.0 Release Notes
This is a major update featuring numerous new features, including scheduled maintenance periods and full multilingual support, along with extensive bug fixes and security improvements.
Important Notes When Updating
-
Permission nodes have been changed. In addition to
maintenance.admin, a newmaintenance.bypasspermission has been added. Administrators withmaintenance.adminautomatically receivemaintenance.bypass. If you manage permissions individually through a permissions plugin, please review your existing permission assignments. -
The structure of
config.ymlhas been changed. Existing configuration files will automatically have the new settings added when the plugin starts, so no manual migration is required.
New Features
-
Scheduled Maintenance: Use
/maintenance on <duration> [reason]to specify when maintenance should end. Example:/maintenance on 30m Server update -
Automatic Maintenance End: Maintenance mode automatically ends when the specified duration has elapsed.
-
Automatic Countdown Announcements: Countdown messages are automatically broadcast before maintenance ends, including 1 hour, 30 minutes, 10 minutes, 5 minutes, 1 minute, 30 seconds, and more.
-
Schedule Persistence: Scheduled maintenance retains its remaining time across server restarts and resumes automatically.
-
Maintenance Reason: A reason can be specified when starting maintenance and is displayed on the kick screen and server status.
-
/maintenance reload: Reloadconfig.ymland language files without restarting the server. -
/maintenance status: Display the current maintenance status, reason, and remaining time. -
/maintenance help: Display the available commands. -
Tab Completion: Automatically suggest subcommands and duration formats using the Tab key.
-
maintenance.bypassPermission: Staff members who do not have permission to manage maintenance can be individually granted access to join the server during maintenance. -
Hex Color Support: All messages now support
&#RRGGBBhex color codes. -
Enhanced Server List Display: While maintenance mode is active, the player count is hidden and a warning banner is displayed in the version section.
-
Full Multilingual Support: All kick, command, and broadcast messages are available in English and Japanese and automatically follow the player's client language.
-
Modrinth Update Notifications: OPs are notified when a new version is released. Notifications can be disabled in
config.yml, and the Modrinth project ID can be customized.
Bug Fixes & Improvements
-
Fixed an issue where the maintenance kick reason could overwrite a login rejection already made by another plugin.
-
Fixed an issue where new settings were not added to
config.ymlafter updating the plugin. Configuration files now support automatic merging. -
Fixed an issue where command messages were hardcoded in English. All messages are now fully managed through language files.
-
Replaced deprecated APIs such as
kickPlayer(String)with the latest Adventure Component API. -
Fixed resource processing that could cause Japanese language files to become corrupted during the build process by explicitly enforcing UTF-8 encoding.
-
Eliminated the possibility of
NullPointerExceptioncaused by null configuration values by providing default values for all settings.
Technical Changes
-
Updated the Paper API to
1.21.11-R0.1-SNAPSHOTwith Java 21 builds. -
Centralized plugin version management in Maven, eliminating duplicate version definitions between
pom.xmlandplugin.yml. -
Refactored the codebase by separating responsibilities into dedicated components:
MaintenanceManagerMaintenanceTabCompleterUpdateCheckerDurationUtil
Commands
| Command | Description |
|---|---|
/maintenance on [duration] [reason] |
Enable maintenance mode |
/maintenance off |
Disable maintenance mode |
/maintenance status |
Display the current status |
/maintenance reload |
Reload configuration and language files |
/maintenance help |
Display the list of commands |
Permissions
| Permission | Description | Default |
|---|---|---|
maintenance.admin |
Manage maintenance mode (includes bypass access) | OP |
maintenance.bypass |
Allows joining the server during maintenance | OP |
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:ZdipJS1j:UfK3ngRW"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:ZdipJS1j:UfK3ngRW"
}

