RuneBans — Full Feature Breakdown
Commands
/rgui, /rmenu, /runebans
All three commands open the exact same main moderation GUI. They exist purely as aliases for convenience.
/ban <player> <reason>
Permanently bans a player.
If executed by a player, a confirmation GUI appears before the punishment is applied.
Console execution bypasses confirmation entirely.
/tempban <player> <time> <reason>
Issues a temporary ban that automatically expires after the specified duration.
Supported formats include:
/ipban <player|ip> <reason>
Permanently bans an IP address instead of a UUID.
Supports:
/tempipban <player|ip> <time> <reason>
Temporary version of an IP ban.
/mute <player> <reason>
Prevents a player from sending chat messages permanently while still allowing gameplay.
/tempmute <player> <time> <reason>
Temporary mute with automatic expiry handling.
/kick <player> <reason>
Immediately disconnects a player with a fully customizable kick screen.
Kicks are:
/unban <player>
Removes an active ban.
If executed by a player, a confirmation GUI appears first.
/unmute <player>
Removes an active mute with the same confirmation system as /unban.
Permissions
| Permission |
Description |
runebans.admin |
Full access to every RuneBans feature |
runebans.ban |
Access to bans, tempbans, IP bans, and temp IP bans |
runebans.mute |
Access to mute and tempmute |
runebans.kick |
Access to kicking players |
runebans.unban |
Access to unbanning |
runebans.unmute |
Access to unmuting |
runebans.manage |
Access to the reasons editor and punishment management GUI |
Permission Behavior
-
All permissions default to OP only
-
Console bypasses all permission checks automatically
-
Non-admin staff cannot punish admins or operators
-
Staff cannot punish themselves
Main GUI
Opened with /rgui.
The main interface contains 3 sections:
Reasons & Times Editor
Create reusable punishment presets for:
Each preset stores:
-
Punishment type
-
Duration
-
Reason text
-
Source information
Punishments List
Browse every currently active:
With full moderation metadata.
Player Punishment Menu
Displays all online players as clickable heads.
Selecting a player opens their dedicated punishment interface.
Reasons & Times Editor
This system allows staff to create reusable moderation presets instead of repeatedly typing commands manually.
Preset Creation Flow
Ban Presets
-
Permanent or Temporary
-
Normal ban or IP ban
-
Duration selection (if temporary)
-
Reason input
Mute Presets
-
Permanent or Temporary
-
Duration selection
-
Reason input
Kick Presets
-
Reason input only
Chat Input System
All setup input happens privately through chat interception.
Features:
-
Messages never appear publicly
-
Each session is isolated per-player
-
cancel safely aborts setup at any time
-
Sessions clean themselves up automatically
Right-clicking a preset deletes it instantly.
Punishments List
Muted Players Menu
Displays every active mute with:
Clicking an entry instantly removes the mute.
Banned Players Menu
Functions similarly to the mute list but additionally displays:
-
IP ban status
-
Ban type
-
Expiry information
Clicking an entry instantly removes the ban.
Player Punishment Menu
A paginated 54-slot interface displaying all online players.
Clicking a player opens:
-
Ban presets
-
Mute presets
-
Kick presets
Selecting a preset applies the punishment instantly.
No confirmation GUI is required because the moderator intentionally selected a predefined punishment.
Confirmation GUI
Manual punishments executed through commands trigger a confirmation screen.
Applies to:
-
/ban
-
/mute
-
/kick
-
/unban
-
/unmute
The GUI displays:
-
Target player
-
Punishment type
-
Duration
-
Reason
-
Action summary
Controls
-
Green side → Confirm
-
Red side → Cancel
Console execution bypasses confirmations entirely.
Notification System
Mute Notifications
Muted players privately receive:
-
Moderator name
-
Reason
-
Duration
No global broadcasts are sent.
Chat Blocking
When muted players attempt to chat:
Automatic Expiry Detection
When temporary punishments expire naturally:
Unmute Notifications
Players are privately informed when staff remove their mute.
Ban & Kick Screens
Disconnected players see:
-
Punishment reason
-
Duration
-
Responsible moderator
Displayed directly on the disconnect screen.
Punishment Source Tracking
Every punishment stores a verified source type.
GUI Reason
Applied through preset menus.
Stores:
-
Preset name
-
Moderator
-
Punishment metadata
Displayed with a green indicator.
Manual Command
Applied directly through typed commands.
Stores:
-
Full typed reason
-
Moderator
-
Timestamp
Displayed with an orange indicator.
Command Block
Automatically detected when punishment commands execute from command blocks.
Additional protections include:
This exists specifically to prevent fake moderation logs created through /execute as.
A major weakness in systems like AdvancedBan is that punishments can appear legitimate even when spoofed through command execution chains. RuneBans explicitly tracks and exposes the true execution source.
Storage System
RuneBans uses an asynchronous SQLite backend.
Database file:
plugins/RuneBans/punishments.db
Tables
punishments
Stores:
reasons
Stores all saved moderation presets.
Performance
Async Database Writes
All saving happens asynchronously to prevent server lag.
In-Memory Active Cache
Active punishments load into memory during startup for extremely fast lookups.
Automatic Cleanup
Expired temp bans and temp mutes are checked every 10 seconds and removed automatically.
Protection & Anti-Abuse Systems
RuneBans includes several moderation integrity protections:
Self-Protection
Admin Protection
Command Block Detection
GUI Spam Protection
Session Isolation
Source Verification
The goal is to make punishment logs trustworthy and resistant to spoofing, fake executions, and moderation impersonation.