Description:
PunishmentsX is a complete punishments solution for any type of server. PunishmentsX is extremely lightweight and is complete with and extremely advanced chat filter and anti-ban evasion system. PunishmentsX is also fully customizable via the config.yml, and is open-source allowing for infinite amounts of customization. PunishmentsX supports complete synchronization for a network with multiple proxies.
PunishmentsX supports both offline mode/cracked servers & online mode servers!
PunishmentsX Source Code:
https://github.com/TheoBong/PunishmentsX/
Config File:
https://github.com/TheoBong/PunishmentsX/blob/main/src/main/resources/config.yml
Messages File:
https://github.com/TheoBong/PunishmentsX/blob/main/src/main/resources/messages.yml
Requirements:
- Java 8+
- 1.7 - 1.18 Spigot/PaperSpigot
Optional Addons:
- MongoDB OR MySQL (for cross-server data saving)
- Redis (for cross-server synchronization of broadcasts)
- Discord Server (for discord webhook functionality)
Features:
- "Stackable" Punishments
- Depending on the amount of times a player has been banned for a "stack", the plugin will automatically adjust the punishment. (Fully configurable)
- Fully Customizable - View Config | View Code
- Discord Notifications
- Data-Saving & Synchronization
- Support for SQLite, MySQL, Mongo, and Redis
- Extremely optimized and fully async database queries and entries.
- Fully Customizable - View Config | View Code
- Punish GUI
- History GUI
- Chat Filter
- Option to block unicode characters from chat completely (used by hacked clients to bypass filters)
- Automatically check for common bypasses (Example: replace "i" for "1" and bypass using "sh1t")
- Automatically punish players for a specific stack when player flags filter.
- Filter Categories:
- Blacklisted Words - checks for configurable blacklisted words. Advanced option replaces letters like "1" with "i" and re-checks to see if the player is trying to bypass.
- Negative Word Pair - checks if a player is describing your server with configurable negative words. Advanced option replaces letters like "1" with "i" and re-checks to see if the player is trying to bypass.
- Anti-Advertising - checks if a player is posting an IP or URL in chat using regex.
- Fully Customizable - View Config | View Code | View Video
- Extremely Advanced Anti-BanEvasion
- Checks players if they are trying to ban evade and treats them as if they were the banned player if the check comes up positive. Highly recommended you read the technical overview to understand how it works.
- Ability to exempt/unexempt players from being affected by this. (/exempt <player>, /unexempt <player>)
- Ability for staff to see why a player is seeing a banned/blacklisted screen (/whybanned <player> - image)
- Currently only works with MongoDB, but will support SQL in very near update.
- Fully Customizable - View Config | View Code | Technical Overview
- Basic Punishment/Unpunishment commands
- Commands
- /blacklist <player> <reason> [-s]
- /ban <player> <reason> [-s]
- /tempban <player> <duration> <reason> [-s]
- /mute <player> <reason> [-s]
- /tempmute<player> <duration> <reason> [-s]
- /warn <player> <reason> [-s]
- /unban <player> <reason> [-s]
- /unmute <player> <reason> [-s]
- /unblacklist <player> <reason> [-s]
- /kick <player> <reason> [-s]
- /history <player>
- /cmdpunish <player> <stack> [notes] [-s] (New!)
- [-s] means that the punishment will be silent and only broadcasted to staff.
- Punishment broadcasts are hoverable by staff members.
- Fully Customizable - View Config | View Code | View Video
- Configurable Permissions & Messages
- View All Configurable Messages: Here
- View All Configurable Permissions: Here
- The messages file is reloadable in-game using the command "/pxreload"
- No Internet Connection Required
- No Mojang API requests made (freeing up ratelimit for other plugins)
- Only internet connection is Discord Webhooks (togglable in config)
- Extremely Lightweight/Optimized
- Multi-threaded and designed for performance. Works almost completely asynchronously, meaning PunishmentsX has extremely minimal affect on the main thread. PunishmentsX uses minimal memory and has minimal database queries.
- PunishmentsX loosely follows the Google Java Style Guide & tries to use Java best practices
- Timings Report: Here
Installation:
- Stop your server
- Drop PunishmentsX.jar into /plugins directory
- Start your server
- Enjoy!
Frequently Asked Questions (FAQ):
- Essentials/EssentialsX is overriding the commands! View Fix
Alternative download link:
https://github.com/TheoBong/PunishmentsX/releases/latest
Using the plugin? Please consider donating as this took me quite a while!
PayPal:
[email protected] (Do not email me, I will not respond - open a mc-market conversation with me).
If you're having issues using the plugin, please open an issue on GitHub BEFORE making a review. I cannot give support in the review section.