Advanced punishment system for Minecraft servers with warnings, mutes, bans, kicks and more.
What's Changed
Functional changes:
-
Added support for the latest version 1.21.9
- Added version compatibility management
- Added appropriate checks and methods to maintain compatibility between Minecraft versions 1.20.6 and 1.21.9
-
Updated placeholder formatting in language files (messages_xx.yml) Changed from
{}to<>Twice the messaging performance by using the built-in TagResolver for the MiniMessage format
Attention! Due to the use of the MiniMessage format for Placeholders, it is necessary to work with the previous version of the language files.
After starting the server, the following commands are required:
/langfix- for a quick update to the new version of the messages_xx.yml file/prx reloador restart the server to reload the correct placeholders- You can also skip the previous steps and simply delete the
langfolder from the PunisherX directory. The plugin will generate a default file with the latest version.Using
/prx reloaddoes not guarantee reloading messages downloaded "permanently" at plugin startup
Never use
/reloadcommands to attempt to reload a plugin. This can cause serious performance issues for the plugin and the entire server.
-
Added "all" argument for use instead of player name in
/kickcommand to kick all players at once. -
The config.yml file has been rebuilt to be more intuitive and adapted to the latest improvements.
-
Added the ability to set an alias for the setspawn command
-
Full integration with the getSmartMessage method providing greater flexibility in notification settings for kick, mute, ban, jail, etc. commands.
Usage example in messages_en.yml:
broadcast: "<dark_gray>Player <gray><player></gray> was jailed for <gray><reason></gray> for <gray><time></gray></dark_gray>"lub
broadcast: - "<dark_gray>*************** Your Server Name *************** </dark_gray>" - "" - "<red> Player <white><player></white> was jailed</red>" - " Reason: <white><reason></white>" - " Duration: <white><time></white>" - "" - "<dark_gray>*************************************************** </dark_gray>" Restored functionality for "auto-download"
- Added search for the latest version in several locations.
- Added the ability to set where to search for and download the latest plugin version.
New settings structure in config.yml:
update: check-for-updates: true auto-download: false hangar: true github: true modrinth: truePlayer cache data can now be stored in the database.
- Settings have been added to config.
playerCache: # Choose where player IP information is stored: "file" or "database" storage: "file"Improved handling of teleporting to and from prison.
- Added a check to ensure the destination is safe, and the entire process is fully asynchronous.
Added support for UK, IT and PT languages
Technical changes:
- Redesigned
/banipcommand handling logic (improved performance and efficiency) - Added plugin initialization in a separate class to improve code clarity and performance
- Improved plugin reload logic for the
/prx reloadcommand - Refactored PlayerJoinEvent handling and minor corrections
- Optimized login checks with asynchronous UUID cache
- Improved handling of teleporting to and from prison.
- Added a check to ensure the destination is safe, and the entire process is fully asynchronous.
- Refactored UUIDManager usage to Paper/Bukkit
- HOTFIX: "Failed to decrypt data" error
- HOTFIX: Fixed teleportation logic in jail commands
- HOTFIX: Fixed teleportation after jail sentence
- HOTFIX: Fixed a critical bug that blocked penalty escalations after using
/warn - FIXED: "The player had access to commands despite his prison sentence."
- FIXED: Fixed duplicate player exit messages on UNJAIL
- Updated all dependencies and libraries to their latest versions
- Many minor and major code fixes to improve plugin performance.
Other changes:
- Update actions/checkout action to v5 by @renovate[bot] in #39
- Update dependency gradle to v9 by @renovate[bot] in #40
- Update gradle/actions action to v5 by @renovate[bot] in #42
In testing phase (experimental – full functionality in a future version):
- Added GUI for managing players and punishments (kick, ban, mute, etc.
- Asynchronous data downloads minimize latency.
- Ability to search for players by nickname.
- Ability to sort players (online, offline, banned, muted, etc.).
- The DatabaseHandler class has been adapted to use the latest version of the SyntaxCore 1.2.5-SNAPSHOT authoring library.
- Added support for asynchronous database operations to minimize server lag.
- Improved error handling and logging for better debugging and maintenance.
- Optimized database queries for better performance and efficiency.
- Added support MSSQL database type
- Added migrateDatabase method
(Highly experimental) Added the ability to migrate from one database type to another
prx migrate <from> <to>. Supported types:sqlite,mysql,mariadb,postgresql,mssqlExample:
/prx migrate sqlite mysql
Full Changelog: https://github.com/SyntaxDevTeam/PunisherX/compare/v1.4.3...v1.5.0
Information
| Published on | October 4, 2025 |
|---|---|
| Downloads | 10 |