PunishPlus
Modern, texture-ready punishment GUI for 1.19–1.21
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Why PunishPlus?
- Gorgeous GUI – hex/gradient titles, clean layout, 16-bit/pack friendly
- Textures everywhere – Nexo IDs or CustomModelData for every icon & button
- Ban Hammer – right-click players to open the GUI instantly
- Fully configurable – categories, reasons, durations, menu sizes (9–54)
- History & SQL – logs to SQLite/MySQL with in-game history viewer
- Per-slot perms – `punishplus.<action>.<key>` (e.g. `punishplus.mute.slurs`)
- Tiny JAR on Paper – auto-downloads DB libs (no bloat)
Commands
Code (Text):
/punish <player>
/punishplus reload
/banhammer
Permissions
Code (Text):
punishplus.open
punishplus.reload
punishplus.banhammer.give
punishplus.banhammer.use
punishplus.<action>.<key> # per-slot, e.g. punishplus.ban.cheating / punishplus.mute.slurs
Nexo & Textures
- Set `provider: nexo` + `id:` for any icon (falls back to material/CMD if Nexo absent)
- Ban Hammer can use a Nexo item or fallback axe automatically
Quick Config Example
Code (YAML):
categories:
mute:
title
:
"<gradient:#f59e0b:#facc15>&lMute • {player}</gradient>"
size
: 45
items:
- slot
: 13
action
: mute
key
: slurs
# auto-permission -> punishplus.mute.slurs
provider
: nexo
id
: pp_mute_slurs
# your Nexo item id
material
: PAPER
# fallback
custom_model_data
: 0
name
:
"<#f59e0b>&lSlurs</#f59e0b>"
reason
:
"Slurs"
duration
:
"7d"
Paper Auto-Libs (tiny jar)
plugin.yml:
Code (YAML):
libraries
:
- org.xerial:sqlite-jdbc:3.45.3.0
- org.mariadb.jdbc:mariadb-java-client:3.4.1
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Support / Requirements
- Server: Paper/Spigot 1.19–1.21 (Paper recommended)
- Java 17+ (works fine on Java 21)
- Using Spigot only? Add JDBC drivers yourself or use the fat jar (if provided)