Voxel Shop beta is live. Expect occasional bugs. Learn more
A modern, high-performance, and network-ready punishment system.
[1] Your backends connect to MySQL now. The plugin was trying to create its tables with a line MySQL doesn't support, so the whole setup crashed and the punishments table never got made. That's why every join said "table doesn't exist." Fixed.
[2] There's a full punishment menu now. Type /punish <player> and you click what you want (ban, temp-ban, IP-ban, mute, IP-mute, shadow-mute, warn or kick), then pick a reason and a length and confirm. The head up top tells you if they're already banned or muted, their warning count and how many alts they have. There's a silent toggle, an IP toggle, and a button to flip a ban into a mute without starting over. It does the same thing the commands do, just clickable.
[3] Run /punish on its own and it shows everyone who's online. Click a head to punish them instead of typing the name.
[4] New /justbans data screen. It's the full log of every punishment on the server: who did it, the exact time, the reason, the length, whether it's still active, and if it was lifted, which staff member lifted it. Search by a player's name or a staff name, click any entry for the details, and a Back button puts you right back on the page you were on. Admins only.
[5] /editban <player> opens a list of that player's active bans and mutes. Click one to change its reason or its length. /editban <id> <reason|duration> <value> still works if you'd rather type it, and it's the only way from console.
[6] You can jump straight from someone's /check history to punishing them. There's a Punish button in the bottom-right. It only shows if you have permission.
[7] "Custom reason" and "custom duration" ask you to type it in chat now instead of opening an anvil. The anvil never worked on 1.21.11 so that button used to look dead. Now it just closes the menu, you type it, done. Type cancel to back out.
[8] /unwarn works now. Warnings were getting saved as already-expired the instant you gave them, so /unwarn could never find one and told you "this player is not muted," which made no sense for a warning. Warnings now last as long as warnings.expire_after says (30 days by default) and /unwarn has its own message. One thing: warnings from before this update are already dead, so give a fresh one to test.
[9] IP bans stick across the network now. They were tied to the banned player's current IP, so the second that player logged in from somewhere else, the IP you banned quietly stopped being blocked and their alts could walk right back in. Now it sticks to the IP you actually banned, on the proxy and the backends both, so that address stays blocked for everyone on it.
[10] You can punish offline players from any server on the network now. Banning, muting or warning someone who's in the database but never joined the exact server you're standing on used to fail with a "not found" message, even though they showed up in tab-complete. It now looks them up in the database (and Mojang as a last resort), so it works no matter which backend you run it from.
[11] You can edit the network ban screen now. The "You are banned from this network!" message the proxy shows was locked in the code before. It's in messages.yml as network_ban_screen now, and on Velocity it uses MiniMessage like everything else (colors, gradients, hex). Edit it in your proxy's plugins/justbans/messages.yml. On BungeeCord it falls back to plain colors since Bungee has no MiniMessage.
[12] No more invisible item stuck to your cursor after jumping between menus, like going from History to Punish.
[13] Warns and kicks don't tack "(N/A)" onto the end of the confirmation anymore. There's no duration on them, so it just leaves it off.
[14] Player heads don't show that odd "Dynamic" line under the name anymore. (If you still see "minecraft:player_head" or "X component(s)" lines, those are your own client's advanced tooltips. Hit F3 + H to turn them off. Players never see them.)
[15] The menus look a lot nicer, with fresh icons and shorter, cleaner text. Everything in them (titles, slots, icons, wording) lives in the new configs/gui.yml, and you can switch off any punishment you don't want showing in the menu right there.
[16] /justbans help got a cleaner look and lists every command now.
[17] Your config updates itself on the first start and keeps anything you changed. To get the new look on a setup you already have, delete configs/gui.yml and configs/messages.yml and let them regenerate.
[18] Works on Paper 1.21.11, 26.1.x, Folia, Spigot and BungeeCord/Velocity.