Sueta

ControlBans

6.3-hf1

Feature compact punishment system. free and open sourced.

·Plugin
  1. 6.3-hf1latestControlBans 6.3-hf1yesterday
    ChangeLog: FIXED Velocity Fixed the plugin completely failing to load on Velocity (Guice could not bind our relocated logger "No implementation for Logger was bound") The proxy extension now loads and registers its message channel correctly (verified on Velocity 4.3) Fixed proxy messages being silently dropped: the message path now verifies the carrier actually has the channel registered instead of reporting success on a no-op FIXED Offline servers Fixed bans resolving to a total stranger's Mojang account when punishing a player who was never seen before (offline servers now resolve to the offline UUID instead of asking Mojang) Fixed banned players being able to rejoin while banned, caused by the above identity mismatch The join check now falls back to matching by exact name if the UUID disagrees, and a name column was added to bans and mutes (migrates automatically) FIXED Cross-server Fixed unbanning on one server not taking effect on another server for up to the cache TTL login checks now always read fresh from the database FIXED Storage Fixed absolute paths in database.sqlite.file being pasted onto the plugin folder instead of honored FIXED Commands Fixed a hidden error on every /check (a null return inside the async chain) /punish now works from console and RCON /history and /alts now give real text output from console/RCON instead of refusing CHANGED Commands IP ban/mute on a local or invalid IP now says so, instead of "Player not found" CHANGED Locales
    6 downloads
  2. 6.3New dialogue system5 days ago
    Quick and short. The new dialogue system introduced in this version, this highly overhauls the slash punish command. It's much easier, easy to configure, and you can set your own rules, evaluations, etc. Just know a few other things have been edited within this, like get rid of all of the language files for right now, and several other changes to improve for performance for the latest version of Minecraft.
    58 downloads
  3. 6.2very needed changes2 weeks ago
    ADDED Config Alt join alert can now be turned off (alts-punish.join-alert.enabled) Alt join alert name limit setting (alts-punish.join-alert.max-names) ADDED Commands /unipban now accepts a punishment ID (/unipban #A1B2C3D4) FIXED Alt Detection Fixed alt join alerts spamming one message per banned alt Alert now shows one summary message with all banned alts listed FIXED IP Privacy Fixed public broadcasts leaking the full IP on IP bans and mutes Shows the masked IP in public chat now, banned players still see full info FIXED Commands Fixed /unipban only working by IP or player name CHANGED Locales alts.join-alert message format changed to a single summary line Non-English locale files got the new key in English until translated Short and matches the style. Test the two in-game things first (unipban by ID, and an alt with a bunch of banned accounts joining), then it's ready.
    132 downloads
  4. 6.1Sep 14, 2026
    ChangeLog: ADDED Reports Full report system rework with a staff GUI to resolve, reject, reopen, delete, and teleport to players Report categories fully customizable in the config (icons, names, descriptions) Players can write their own report reason in chat Players can check their own report statuses with /reports ADDED Appeals Appeal review GUI with approve and deny buttons (/appeals) Approving an appeal unmutes the player automatically ADDED General Public API for other plugins Theme packs styled after Hypixel, minemen, and mcpvp(.club) /banskin and /unbanskin now exist and work New config options: report cooldown, duplicate window, custom reasons toggle, teleport on click toggle FIXED Config Fixed report config options doing nothing (enabled, cooldown were ignored) FIXED Database Fixed appeals table missing a status column FIXED Proxy Fixed Velocity claiming it was still version 5.0 CHANGED Jar Jar size cut in half (21 MB to 10 MB) by removing unused database files CHANGED Config Config updater no longer rewrites your file, only inserts missing keys Your comments and organization in config.yml are never touched again New config keys come with their explanation comments A backup is saved before every config update CHANGED Reports Reports now save the category and target UUID
    175 downloads
  5. 6.0Super polishingSep 12, 2026
    ChangeLog: FIXED - Fixed escalation never leveling up after a punishment was removed - Fixed explicit durations being overridden (1m no longer becomes 1h or 1d) - Fixed duplicate punishments on double clicks and concurrent commands - Fixed banned players joining when the database lagged - Fixed mutes and voice mutes not syncing across servers - Fixed silent punishments leaking to Discord - Fixed staff claiming they did it for 1 minute when the player got more - Fixed GUI double click applying the punishment twice - Fixed items being moved into menus - Fixed MySQL not connecting and SQLite crashing on startup - Fixed frozen players escaping by quitting or teleporting - Fixed console spam from SLF4J and locale warnings - Fixed ALL guis CHANGED - Reworked the design with an ice blue color scheme - All broadcasts, staff alerts, ban and mute screens now match - Screens now show an appeal link on player bans - Locale warning now shows a short summary instead of a huge list ADDED - Nothing added (Feature-wise)
    40 downloads
  6. 5.9Velocity update & taking a little break.Jun 28, 2026

    ControlBans v5.9

    Velocity proxy support fixes.

    Fixes

    1. Fixed duplicate broadcast messages on Velocity networks
    The proxy was rebroadcasting punishments to all players including the ones on the server that issued the punishment, so players saw everything 2-3 times. The proxy now skips players on the source server since they already got the message from their backend.
    2. Fixed staff alerts not reaching other servers
    Staff alerts were only sent to players on the same backend server. The alert is now relayed to the proxy so staff on other servers see it too.
    3. Fixed proxy plugin messages silently failing on Paper
    Server.sendPluginMessage() was being used to send cross-server messages but it silently does nothing on Paper for custom channels. This meant kicks, broadcasts, and cache invalidations never actually reached the proxy. Messages are now always sent through a player connection instead.
    4. Updated Velocity plugin version strings
    The Velocity plugin metadata and @Plugin annotation were showing version 5.0/5.2 instead of the actual version.

    Upgrade

    Drop the JAR in plugins/ on both your Velocity proxy and your backend servers, then restart everything.
    336 downloads
  7. 5.8More fixes and improvements! Jun 27, 2026

    ControlBans v5.8

    Fixes

    1. Fixed Japanese and Russian locales breaking on startup
    Corrupted bytes in the locale files caused YAML parsing to fail, then the plugin would silently overwrite them with English, losing the original translations. Both are repaired and the loader now skips broken files instead of overwriting them.
    2. Fixed "missing locale keys" spamming the console on every startup
    The validator had a broken recursive check that reported every key as missing even when they were all there.
    3. Fixed /banlist, /mutelist, /history, and /blame showing duplicate entries
    A LEFT JOIN on the login history table was multiplying each punishment row by the number of times the player had logged in.
    4. Fixed /check <player> saying "No punishment found with that ID" for short usernames
    Names like Connor were being mistaken for punishment IDs. /check now also works on offline players, not just online ones.
    5. Fixed first chat after join being silently swallowed for non-muted players
    The mute cache was empty on join, so the chat listener cancelled the message for everyone and only echoed it back to the speaker as plain text.
    6. Fixed /freeze showing raw <#FF6B6B>FROZEN color tags
    The status string was passed through without parsing its MiniMessage tags.
    7. Fixed /ipban and /ipmute saying "Player not found" when the IP was local
    The local IP safety check was failing silently and the command translated that into the wrong error. It now clearly says the IP is on the protected blocklist.
    8. Fixed "Player '<player>' is already banned" showing the literal text <player>
    The placeholder was never being filled in with the actual name. Same bug hit the "already muted" and "already voice muted" messages.

    Escalation

    The #template and escalation: systems were verified. Offense counts advance correctly, levels clamp properly at the max configured level, and durations are applied as configured. 3 new test templates were added to the default config (test-extortion, test-minor-spam, test-grief-ban). Safe to keep or remove.

    Upgrade

    Drop the JAR in plugins/ and restart. No config migration needed. If your ja.yml or ru.yml got overwritten with English by the previous version, delete the file before restarting and a fresh copy will be extracted.
    32 downloads
  8. 5.7Featured request and fixing an issueJun 24, 2026
    1. Bedrock Player UUID Lookup: Fixed PlayerResolver.java so it now gracefully falls back to the local database if FloodgateApi can't find an offline player, fixing the "Player not found" issue when trying to punish Bedrock players. 2. Blocked Commands for Muted Players: Added the blocked-commands feature into config.yml (defaulting to blocking commands like /msg, /w, /me, etc.) and added an interceptor in PlayerChatListener to stop them and show the mute screen. 3. Blocked Signs and Books: Added block-signs: true into the config. If a muted player writes in a book or on a sign, their text will be immediately replaced with [MUTED]. 4. Discord Webhooks: Added the webhook-url setting in the discord block of config.yml. The plugin actually had full built-in support for standard webhooks via IntegrationService.java, but the configuration property was accidentally left out. You can now use standard webhooks without DiscordSRV! 5. Local Punishments Broadcast: Updated NotificationService.java so that it broadcasts punishments locally to all online players and console (using the existing broadcast config toggles) instead of exclusively pushing them out via the Bungee proxy channel.
    45 downloads
  9. 5.6Improvements and emergency fixesJun 22, 2026

    I'm in the hospital by the way :P

    change-logs:

    - revamped the escalation system to be more better and more informative of errors - fixed a weird little bypass with temp voice mute so now they can bypass it - I did some more optimization to the caffeinated database system so hopefully this addresses some weird latency with bans
    24 downloads
  10. 5.5Overhaul punishment GUI & escalationJun 1, 2026

    changelog

    punishment GUI and escalation overhaul

    1. made the gui 10X better 2. escalation overhaul deleted the old system and changed it to the new one. now you can do it like this for templates and escalation automatically (/ban player67 #Hacking) (/tempban Steve193 #extreme-jokes)
    119 downloads
  11. 5.4Extremely needed to do.May 26, 2026
    Changelog: - remove auto mod entirely - fixed performance on the newest version of folia - fixed a potential error on load with velocity
    41 downloads
  12. 5.3Final polishingMay 19, 2026

    🔴 Critical Fixes

    - Fixed main thread blocking from .join() calls in ReportsCommand, NoteCommand, and MyReportsGuiManager. All database operations now use async callbacks with scheduler dispatch. - Fixed synchronous Mojang API lookups in AltsCommand, HistoryCommand, ReportCommand, PunishCommand, and UnvoidJailCommand. Replaced deprecated Bukkit.getOfflinePlayer(String) with async UUID resolution using database cache and UuidUtil fallback. - Fixed ConcurrentModificationException in AltService. Changed HashSet<UUID> to ConcurrentHashMap.newKeySet() for thread-safe alt collection across async database futures. - Fixed offline player unjail trap. Players unjailed while offline are now flagged with pending_unjail in void-jail.yml and automatically teleported to their return location on next login.

    🟠 High Priority Fixes

    - Fixed async Bukkit API call in PunishmentService. Moved Bukkit.getOfflinePlayer() from CompletableFuture.supplyAsync() to scheduler.callSync() to comply with Paper/Folia thread safety rules. - Fixed database thread pool overflow risk. Replaced CallerRunsPolicy with a custom rejection handler that logs a warning and discards tasks instead of executing them on the caller thread (which could be the main server thread). - Fixed fail-open mute bypass in PlayerChatListener. On cache miss, chat messages are now cancelled while the async mute lookup completes. Messages are re-sent only if the player is confirmed unmuted.

    🟡 Medium Priority Fixes

    - Fixed memory leaks in ChatManager and ReportService. Added PlayerQuitEvent listeners to remove disconnected players from lastMessageTime and lastReportTime maps. - Fixed settings GUI triggering full plugin reloads on the main thread. Config save and plugin.reload() now run asynchronously, with GUI reopen dispatched back to the main thread. - Fixed inefficient N+1 subqueries in PunishmentDao. Replaced correlated subqueries (SELECT name FROM controlbans_history WHERE uuid = t.uuid ...) with LEFT JOIN controlbans_history across getRecentPunishments, getPunishmentHistory, getPunishmentById, and getAllPunishments.

    🟢 Low Priority Fixes

    - Fixed void jail command whitelist edge case. Added length check before event.getMessage().substring(1) to prevent issues when a player types only /. - Fixed GUI cooldown feedback ignored in GuiListener. The report GUI now checks the submitReport() return value and displays a cooldown message if the report fails. - Fixed brittle YAML string parsing in ConfigUpdater. Replaced primitive .replace("\"", "\\\"") with proper YAML escaping that handles special characters, multiline strings, booleans, numbers, and lists. - Fixed zero-size pagination inconsistency in HistoryGuiManager. Changed Math.ceil(...) with manual if (maxPage == 0) maxPage = 1 to Math.max(1, (int) Math.ceil(...)) for consistency with AltsGuiManager. - Fixed missing return statement in PlayerJoinListener blacklist check. Added explicit return after event.disallow() to prevent execution continuation and potential future bugs.
    83 downloads
  13. 5.2May 17, 2026
    fixes & additions - added modrinth update checker — staff with controlbans.admin will be notified in-game on join if a new version is available - fixed /unipban and /unipmute now accepting a player name instead of requiring the raw IP address - added missing /unipmute command entirely - fixed IP address being exposed raw in staff alerts — now masked as 192.168.*.* - fixed IP address being broadcast publicly in unban announcements — now staff-only - fixed silent no-op when IP banning a player with no join history — now sends a proper error message - fixed database executor being unbounded — now capped with backpressure to prevent thread storms under load - fixed janitor not cleaning old kicks, warnings, and resolved reports — now purges all types on schedule - fixed MongoDB having no janitor at all — expired records were accumulating forever - fixed /unipban tab completer returning nothing — now suggests player names - fixed premature "Banning..." message sending before the player lookup even completes - fixed stale javadoc in IdUtil still saying 6-character IDs
    43 downloads
  14. 5.15.1 (polishing)May 14, 2026

    fixes

    - fixed database not properly updating the alt service - fixed folia console error - fixed performance on folia - fixed a weird crash on startup with velocity and bungeecord (rare) - fixed the freeze manager not properly unfreezing - fixed the muting system once again
    24 downloads
  15. 5.0-hf1Hotfix #1Apr 11, 2026

    The fix:

    1. a weird issue with discord SRV now fully fixed and logging properly 2. fixed a very rare database error that's pretty much it
    89 downloads
  16. 5.0Full releaseApr 9, 2026
    Please check out 5.0-devbuild to see what I have changed and updated but for this Pacific changlog 1. fix the weird issue where the message duplicates with chat features (lock|slow) 2. Fixed where the mutes won't unmute player after expire or unmute. They would have to relog. So now that is fully fixed.
    24 downloads
  17. 5.0-DevBuildControlBans 5.0-DevBuildApr 9, 2026
    🚀 ControlBans 5.0 - The Reports Update ✨ New Features & Additions: "My Reports" Tracking System: Added a brand new premium paginated GUI. Players can run /reports to seamlessly view all of their previously submitted reports and check if they are actively being handled. Staff Resolutions: Added the /reports resolve <id> <status> command. Staff can now update active reports to PENDING, RESOLVED, or REJECTED, updating the player's personal UI dynamically with color-coded icons! Global Localization Auto-Sync: The new reporting menus natively support all 10+ bundled foreign languages right out of the box—updating cleanly without tearing up your heavily customized translations. 🐛 Bug Fixes & Architecture Refactors: Indestructible Mutes & Locks: Fixed an issue where third-party chat formatting plugins (like EssentialsChat) could override the plugin. ControlBans now executes its Mute and Chat-Lock evaluations at the HIGHEST priority, guaranteeing that blocked chats are halted dead in their tracks. Cleaned up trailing compilation errors involving duplicate command alias registration in ReportsCommand. Congratulations on officially completing version 5.0! Let me know if there are any other plugins or features you want to build next!
    26 downloads
  18. v4.9eeeMar 17, 2026
    What’s new: - Expanded the escalation system with history windows, punishment-type filters, and reason aliases. - Added the missing config sections for anti-spam, anti-caps, voice mute bossbars, and LiteBans import settings. - Improved staff alert flow so important moderation signals are cleaner and more consistent. - Finished wiring more GUI, rollback, AutoMod, and punishment prompts into the language system. Fixes and improvements: - MongoDB storage support is now much more complete and aligned with the main storage contract. - Proxy punishment messages now preserve formatting correctly across supported platforms. - Login checks were improved to avoid unnecessary blocking during slow lookups. - Missing permission nodes were cleaned up for better admin control. - Config and locale files now backfill missing keys automatically, which helps older installs update more safely. Notes: - All bundled locale files are now accounted for, and missing keys fall back cleanly. - New locale entries will default to English until custom translations are added.
    56 downloads
  19. 4.8-hf1ControlBans 4.8-hf1Mar 10, 2026

    v4.8-HF1: Alt-System Data Integrity Hotfix

    This is a critical hotfix that resolves a data cross-contamination issue within the Alternate Account tracking system. All users are strongly advised to update.
    🐛 Bug Fixes
    [CRITICAL] Alt Cross-Contamination:* Fixed an issue where punishing offline players or having a misconfigured proxy (broken IP-forwarding) would log placeholder IPs (such as 0.0.0.0 or 127.0.0.1) into the history table. The Alt GUI previously treated these as valid IPs, falsely linking unrelated players together as alts. * The system now utilizes a strict quarantine filter that completely ignores local, loopback, and placeholder IPs when calculating alternate accounts. Note: No database reset is required. The plugin will automatically ignore any bad IP data already existing in your database, instantly fixing the /alts GUI upon restart.
    32 downloads
  20. 4.8Mar 8, 2026

    v4.8: Shadow Mutes, Staff Rollbacks & Smart AutoMod

    This update introduces highly requested enterprise-grade moderation tools and automated background maintenance to keep your server safe and fast.
    ✨ New Features
    Shadow Mutes (`/shadowmute <player>`):* The ultimate anti-troll weapon. Shadow-muted players can still type in chat and see their own messages, but their messages are completely hidden from everyone else. They are silently ignored without realizing they have been punished. Staff Rollbacks (`/cb rollback <staff> <time>`):* Protect your network from compromised or rogue staff accounts. Instantly revert every action a specific staff member took within a given timeframe (e.g., /cb rollback RogueMod 1h). Expanded AutoMod: Added asynchronous Anti-Spam (prevents message flooding and duplicate messages) and Anti-Caps* (automatically converts ALL CAPS messages into lowercase text, reducing player friction).
    🛠️ Optimizations & Maintenance
    Automated Database Janitor:* Added a silent background thread that runs once every 24 hours. It safely purges temporary punishments that expired more than 30 days ago, preventing long-term database bloat and keeping queries lightning fast. Config Auto-Updater:* The plugin will automatically append the new AutoMod configuration sections to your existing config.yml without overwriting your current settings. Note: To use the new commands, ensure you assign the controlbans.shadowmute and controlbans.admin.rollback permissions to your administrators.
    31 downloads
  21. 4.7Silent killerMar 7, 2026
    30 downloads
  22. 4.6Version 4.6Mar 2, 2026
    There's a lot of stuff that has changed, and I cannot remember 90% of it, but I have done a few things. I reworked the database and how it works entirely, so you may have to actually reload the database entirely. But you can always save it in the JSON thing or the export command, and it should work completely fine. The messages have been updated for each of languages. There's a few things that I just cannot remember, so there may be some edge cases in this version. I'm not going to come back fully, but I will every now and then try to update the plugin as needed and or emergency updates. So sorry for the long wait. Oh, and a few things. This version has support for Bungie and Velocity. Now you don't need multiple plugins to do one simple thing. But if you have any issues with that, you can always contact me on Discord.
    15 downloads
  23. v4.3ControlBans v4.3Jan 5, 2026
    37 downloads
  24. v4.2ControlBans v4.2Dec 30, 2025

    changelog:

    - revamped all language files to be 10 times better and more premium feel. - fixed potential issues and performance hits
    1. potential fix for AI moderation failing during leg spikes, 2. fixed the chat database caching on mute not properly sinking so causing chat to look slow.
    34 downloads
  25. v3.6ControlBans v3.6Dec 23, 2025

    changelog:

    1. Fixed a database issue where it deteriorates over time and causes issues.

    2. Fixed an issue where you're not able to unmute voice chat players. (/voiceunmute)

    3. Enhanced the history and alts GUI.

    70 downloads
  26. v3.5ControlBans v3.5Dec 16, 2025
    straightforward and simple change log: 1. added two new databases h2 and MongoDB 2. fixed most of the language files because they were incomplete or some of them were just old and not correct at all 3. added a new language file nl(Dutch) 4. fixed the ID system having a heart attack and not wanting to comprehend database checks. That is pretty much all I could think of to add to this. I hope you enjoyed the new update. It's been out for a while, but I just forgot to update it on modrinth.
    62 downloads
  27. 3.4v3.4Nov 19, 2025
    New features: 1. Simple voice chat integration You're able to mute players now
    /voicemute
    /voiceunmute
    Fixes: 1. Fixes potential crashes 2. Fixed a memory leak (found by random user) 3. Fixed void jail corrupting its own files so the jail didn't work at all on startup or reload 4. Fixed bedrock users not able to be banned on certain servers. 5. Fixed UuID issue 6. Fixed voice chat service
    68 downloads
  28. 3.0v3.0Nov 11, 2025
    Change log: Fixes Closed a critical issue that caused the display of a generic “database error” instead of “player not found” error messages in cases of punishment attempts either with non-existent player names or with erroneous player names. Fixed an issue with the Void Jail system that would result in its failure during the process of blocking commands due to an internal variable problem. Fixed the issue that was causing the Void Jail to function improperly for those who had logged in while in jail. Corrected the problem with Geyser/Floodgate integration that was utilizing the wrong method to find the player's UUID in Bedrock. Changes The Void Jail has also received an added function to be utilized as a temporary mute within the game's chats. Jailed players are no longer allowed to communicate within public chats and will get a customized message if attempted. New features Cross-Server Punishment Synchronization: A robust messaging component has been established within BungeeCord and Velocity to facilitate communication among servers. If a punishment is made or cancelled on one server, an immediate signal is sent to all other servers to ensure synchronized punishment application. The Void Jail: A significant new psychological punishment gameplay element has been added. /voidjail : Locks the player in an isolated void cell that prevents any movement, action, damage, and most commands. /unvoidjail : This releases the player from jail and returns them to their original position. Skin Ban: A new 'non-public' punishment option has been added. /banskin : Strips the custom skin from the player, making them look like Steve/Alex to every player. The ban is permanent and will stay with them even after logout. /unbanskin : Enables a player's use of his skin by kicking him out of the server to refresh his profile. Geyser/Floodgate Integration: The plugin will now be able to properly punish Bedrock players by checking the prefix (e.g. .Steve).
    52 downloads
  29. 2.8v2.8Nov 9, 2025
    Here's the list of updates to this plugin: 1. cleaned up some of the code 2. made the proxy service fully fledged now 3. Added a new system called voidjail, basically jails, and you can set it within the configuration. 4. fixed a weird desync with Folia
    57 downloads
  30. v2.7Oct 24, 2025
    Added support for multiple languages German, Turkish, Spanish, Russian, added an alt gui added message customizability with discordsrv fixed 14 bugs that was just mad annoying and causing database slowdown improved most of the code.
    26 downloads
  31. v2.6ControlBansOct 20, 2025
    Quality of life changes: - made the screens (ban message mute message etc) 10 times better to look at. - added a GUI system to the history command. - added better support for alt management. - added operator bypass bug fixes: - alt management slash alt checks were not working. - a weird console error with higher versions. - history command was broken
    36 downloads

Similar projects

Plugin →