BanMenu

BanMenu is a powerful Minecraft moderation plugin featuring a GUI, ticket system, Discord integration, and comprehensive punishment management for Spigot and Paper

329

BanMenu

# BanMenu – The Ultimate Minecraft Moderation Plugin

BanMenu – The Ultimate Minecraft Moderation Plugin

Geyser / Bedrock cross-platform servers is a powerful, modular moderation plugin for Geyser / Bedrock cross-platform servers and fully supports Geyser / Bedrock cross-platform servers.

It provides a complete all-in-one moderation solution including punishments, tickets, Discord integration, role synchronization, security systems and detailed logging — all configurable and scalable.

1.4.2 1.4.2

---

🎯 Main Features

✅ Moderation System

- Ban, Mute & Kick (temporary & permanent) - Flexible ID-based punishment system - Automatic expiration for temporary punishments - Undo actions (Unban / Unmute) - Admin & bypass permissions

🎨 GUI Menu

- Modern, user-friendly moderation GUI - Visual player overview - Fast moderation without command spam

🎫 Ticket System

- GUI-based ticket creation & management - Cooldown system to prevent abuse - Ticket states: Open, Closed, Reopened - Discord notifications for staff

---

## 🤖 Discord Integration (Extended in 1.4.0)

📜 Discord Rules Bot

- Quiz runs directly in the Rules channel (no DMs) - Ephemeral questions & final summary only - Verified users skip the quiz automatically - Multilingual messages (DE / EN) - Fully configurable via `discord_rules_bot.yml`

🏷️ Discord Role Management

- Role management via Discord Slash Commands - Admin / Moderator permission groups - Configurable role permissions - New config: `discord_role-permissions.yml` - Slash Commands: - `/role give` - `/role remove` - Minecraft command: - `/discord-role`

🔄 Role Synchronization

- Bidirectional sync: Minecraft ↔ Discord - Priority modes: `minecraft`, `discord`, `both` - Manual sync command: - `/dc-sync` - `/dc-sync <player>` - Fully configurable sync messages

📝 Discord Slash Commands

- All Rules Bot commands available as Slash Commands - Channel-restricted execution - Commands registered even if modules are disabled - Multi-line embedded help messages

---

🛡️ Security Features

- IP tracking (alt account detection) - Optional automatic IP bans - Optional VPN detection - Chat filter with blacklist & regex - Chat delay / anti-spam system

---

📊 History & Statistics

- Full punishment history per player - Detailed stats (bans, mutes, kicks, tickets) - Deletable history with reasons - Complete logging of moderation actions

---

🔧 Technical Features

- Geyser / Bedrock compatible support - Full proxy support (BungeeCord / Velocity) Geyser / Bedrock compatible - Geyser / Bedrock compatible - PlaceholderAPI integration - LuckPerms & GroupManager support - Multi-language (EN / DE) - Modular system (disable unused features) - YAML-based configuration - Hot-reload without restart

---

📋 Commands

| Command | Description | |-------|------------| | `/banmenu` | Main command (reload, update, stats) | | `/ban <player> <ID>` | Ban a player | | `/unban <player>` | Unban a player | | `/mute <player> <ID>` | Mute a player | | `/unmute <player>` | Unmute a player | | `/kick <player> [reason]` | Kick a player | | `/check <player>` | Player information | | `/history <player>` | Punishment history | | `/gui` | Open GUI | | `/ticket` | Ticket system | | `/dc-verify <code>` | Link Discord account | | `/dc-unverify` | Remove Discord link | | `/dc-sync` | Sync own roles | | `/dc-sync <player>` | Sync other players | | `/discord-role` | Manage Discord roles | | `/maintenance on` | Start Maintenance Mode Fix | | `/maintenance on <time>` | Start Maintenance Mode with Timer | | `/maintenance off` | Stop Maintenance Mode |

---

🔐 Permissions

🔐 Permissions

Main Permissions

| Permission | Description | Default | |------------|-------------|---------| | `banmenu.*` | All BanMenu permissions | op | | `banmenu.banmenu` | Use main command `/banmenu` | op | | `banmenu.reload` | Reload plugin | op | | `banmenu.checkupdate` | Check for updates | op |

---

Ban System

| Permission | Description | Default | |------------|-------------|---------| | `banmenu.ban.*` | All ban permissions | op | | `banmenu.ban.all` | Ban players | op | | `banmenu.ban.admin` | Perform admin bans | op | | `banmenu.ban.ID` | Use specific ban ID (e.g. `banmenu.ban.1`) | op | | `banmenu.ban.bypass` | Ban bypass | op | | `banmenu.unban.*` | All unban permissions | op | | `banmenu.unban.admin` | Unban players | op | | `banmenu.unban.ID` | Use specific unban ID | op |

---

Mute System

| Permission | Description | Default | |------------|-------------|---------| | `banmenu.mute.*` | All mute permissions | op | | `banmenu.mute.admin` | Perform admin mutes | op | | `banmenu.mute.ID` | Use specific mute ID | op | | `banmenu.mute.bypass` | Mute bypass | op | | `banmenu.unmute.*` | All unmute permissions | op | | `banmenu.unmute.admin` | Unmute players | op | | `banmenu.unmute.ID` | Use specific unmute ID | op |

---

Kick System

| Permission | Description | Default | |------------|-------------|---------| | `banmenu.kick.*` | All kick permissions | op | | `banmenu.kick.admin` | Kick players | op | | `banmenu.kick.bypass` | Kick bypass | op |

---

General Commands

| Permission | Description | Default | |------------|-------------|---------| | `banmenu.check` | View player information | op |

---

History System

| Permission | Description | Default | |------------|-------------|---------| | `banmenu.history.*` | All history permissions | op | | `banmenu.history.show` | View history | op | | `banmenu.history.delete` | Delete history | op |

---

GUI System

| Permission | Description | Default | |------------|-------------|---------| | `banmenu.gui` | Open GUI menu | op | | `banmenu.gui.*` | All GUI permissions | op | | `banmenu.gui.ban` | Open ban GUI | op | | `banmenu.gui.mute` | Open mute GUI | op | | `banmenu.gui.kick` | Open kick GUI | op | | `banmenu.gui.unban` | Open unban GUI | op | | `banmenu.gui.unmute` | Open unmute GUI | op |

---

Logs System

| Permission | Description | Default | |------------|-------------|---------| | `banmenu.logs.*` | All log permissions | op | | `banmenu.logs.show` | View logs | op | | `banmenu.logs.clear` | Clear logs | op |

---

Notifications

| Permission | Description | Default | |------------|-------------|---------| | `banmenu.notify` | Receive team notifications | op |

---

Chat Features

| Permission | Description | Default | |------------|-------------|---------| | `banmenu.bypasschatfilter` | Bypass chat filter | op | | `banmenu.bypasschatdelay` | Bypass chat delay | op | | `banmenu.bypassadvertising` | Bypass anti-link / advertising | op |

---

Ticket System

| Permission | Description | Default | |------------|-------------|---------| | `banmenu.ticket.*` | All ticket permissions | op | | `banmenu.ticket.use` | Create tickets | false | | `banmenu.ticket.team` | Manage tickets | op | | `banmenu.ticket.admin` | Delete tickets | op | | `banmenu.ticket.bypass` | Cannot be reported | op | | `banmenu.ticket.delaybypass` | Bypass ticket cooldown | op | | `banmenu.ticket.notify` | Receive ticket notifications | op |

---

Custom Commands

| Permission | Description | Default | |------------|-------------|---------| | `banmenu.customcommand` | See/use custom command in player GUI | op | | `banmenu.use.customcommand` | Execute custom command | false |

---

Discord Integration

| Permission | Description | Default | |------------|-------------|---------| | `banmenu.discord.verify.use` | Link Discord account | false | | `banmenu.discord.verify.delete` | Delete player’s Discord verification | op | | `banmenu.discord.unverify` | Delete own Discord verification | false | | `banmenu.discord.role.sync.use` | Sync own Discord ↔ Minecraft roles | false | | `banmenu.discord.role.sync.other` | Sync roles for other players | op | | `banmenu.discord.role.use` | Use `/discord-role` command | op |

---

Statistics

| Permission | Description | Default | |------------|-------------|---------| | `banmenu.stats.all` | View all statistics | op |

---

🚧 Maintenance Permissions

| Permission | Description | Default | |------------|-------------|---------| | `banmenu.maintenance.use` | Enable and disable maintenance mode | op | | `banmenu.maintenance.join` | Join the server during maintenance | false | | `banmenu.maintenance.countdown.info` | View maintenance Admin countdown information | false | | `banmenu.maintenance.bossbar.show` | See the maintenance bossbar | false | | `banmenu.maintenance.cooldownbypass` | Bypass cooldowns for maintenance commands | op |

---

⚙️ Requirements

- Java 17+ - Java 17+ - Optional: - LuckPerms / GroupManager - PlaceholderAPI - JDA (for Discord features)

---

🚀 Installation

1. Download the plugin 2. Place it into `/plugins` 3. Restart the server

⚙️ Configurations

4. The following configuration files and folders will be created in `plugins/BanMenu/`:

```text plugins/BanMenu/ ├── Discord-Configs/ │ ├── discord.yml │ ├── discord_rules_bot.yml │ └── discord_role-permissions.yml ├── languages/ │ ├── de_DE.yml │ └── en_GB.yml ├── punishment/ │ ├── ban_id_config.yml │ ├── mute_config.yml │ ├── kick_config.yml │ ├── unban_config.yml │ └── unmute_config.yml ├── banmenu.db ├── chat.yml ├── config.yml ├── history.yml ├── maintenance.yml ├── motd.yml ├── stats.yml ├── ticket.yml ├── bungee.yml #only by BungeeCord └── velocity-plugin.json #only by Velocity ```

---

📚 Support

## Discord Support ## Website ## Forum

---

Version 1.4.2 Version 1.4.2

ADS