/rgui, /rmenu, /runebansAll 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:
30m
12h
7d
2w
1mo
/ipban <player|ip> <reason>Permanently bans an IP address instead of a UUID.
Supports:
Player names (automatically grabs their current IP)
Raw IP addresses (192.168.1.1)
/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:
Logged permanently
Stored in punishment history
Not treated as active punishments
/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.
| 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 |
All permissions default to OP only
Console bypasses all permission checks automatically
Non-admin staff cannot punish admins or operators
Staff cannot punish themselves
Opened with /rgui.
The main interface contains 3 sections:
Create reusable punishment presets for:
Bans
Mutes
Kicks
Each preset stores:
Punishment type
Duration
Reason text
Source information
Browse every currently active:
Ban
IP ban
Mute
With full moderation metadata.
Displays all online players as clickable heads.
Selecting a player opens their dedicated punishment interface.
This system allows staff to create reusable moderation presets instead of repeatedly typing commands manually.
Permanent or Temporary
Normal ban or IP ban
Duration selection (if temporary)
Reason input
Permanent or Temporary
Duration selection
Reason input
Reason input only
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.
Displays every active mute with:
Target player
Moderator
Duration
Remaining time
Punishment reason
Punishment source
Whether it was GUI/manual/command block issued
Clicking an entry instantly removes the mute.
Functions similarly to the mute list but additionally displays:
IP ban status
Ban type
Expiry information
Clicking an entry instantly removes the ban.
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.
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
Green side → Confirm
Red side → Cancel
Console execution bypasses confirmations entirely.
Muted players privately receive:
Moderator name
Reason
Duration
No global broadcasts are sent.
When muted players attempt to chat:
Their message is blocked
They receive remaining mute time and reason privately
When temporary punishments expire naturally:
The plugin detects it automatically
Players are notified immediately
Players are privately informed when staff remove their mute.
Disconnected players see:
Punishment reason
Duration
Responsible moderator
Displayed directly on the disconnect screen.
Every punishment stores a verified source type.
Applied through preset menus.
Stores:
Preset name
Moderator
Punishment metadata
Displayed with a green indicator.
Applied directly through typed commands.
Stores:
Full typed reason
Moderator
Timestamp
Displayed with an orange indicator.
Automatically detected when punishment commands execute from command blocks.
Additional protections include:
Attempts to identify the nearest triggering player
Console warning logs
Red warning indicators in punishment history
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.
RuneBans uses an asynchronous SQLite backend.
Database file:plugins/RuneBans/punishments.db
punishmentsStores:
Every punishment ever issued
Moderator
Target
Source type
Expiry timestamps
Active status
IP information
Reasons
History metadata
reasonsStores all saved moderation presets.
All saving happens asynchronously to prevent server lag.
Active punishments load into memory during startup for extremely fast lookups.
Expired temp bans and temp mutes are checked every 10 seconds and removed automatically.
RuneBans includes several moderation integrity protections:
Staff cannot punish themselves
Non-admin moderators cannot target admins or operators
Punishments triggered through command blocks are flagged automatically
GUI clicks have a 200ms cooldown to prevent spam abuse
Chat setup sessions are tied individually to each moderator
Every punishment records exactly how it was created
The goal is to make punishment logs trustworthy and resistant to spoofing, fake executions, and moderation impersonation.