
Crqzy's Server Selector
A simple, fully configurable server selector for BungeeCord/Velocity networks. Gives players a compass on join that opens a clean GUI to switch servers instantly.
Автор: crqzycat3830обновлён 28 июл. 2026 г.
УправлениеУтилиты
Описание
🧭 Crqzy's Server Selector
A lightweight and fully configurable server selector plugin for BungeeCord/Velocity networks running Paper 1.21.x.
Features
- Compass automatically given to players on join (placed in the configured hotbar slot)
- Clean chest GUI with customizable server entries
- BungeeCord/Velocity plugin messaging for instant server switching
- Fully configurable via
config.yml— items, names, lore, slots, server IDs - Optional drop prevention for the selector compass
/selector reloadcommand for live config reloads
Requirements
- Paper 1.21.x
- BungeeCord or Velocity (modern forwarding supported)
Installation
⚠️ Important: This plugin is installed on your lobby/hub server(s), not on the BungeeCord/Velocity proxy itself. It uses plugin messaging channels to communicate with the proxy, so no proxy-side plugin is required.
- Drop the
.jarinto thepluginsfolder of your lobby/hub Paper server - Restart the server
- Edit the generated
config.ymlto your liking - Reload with
/selector reloador restart the server
Configuration
All settings are in config.yml, which is generated automatically on first launch.
compass:
material: COMPASS
name: "&6&lServer Selector"
lore:
- "&7Right-click to open"
slot: 4 # Hotbar slot (0–8), 4 = center
droppable: false
gui:
title: "&8&lServer Selector"
size: 27
fill-border: true
servers:
lobby:
material: EMERALD
name: "&a&lLobby"
lore:
- "&7The main lobby"
id: lobby
slot: 11
Commands & Permissions
| Command | Permission | Description |
|---|---|---|
/selector | — | Opens the server selector GUI |
/selector reload | serverselector.reload | Reloads the config |
Галерея
Последние версии
Все версии →release
Crqzy's Server Selector 2.0
228 июл. 2026 г.156Minecraft: 26.1, 26.1.1, 26.1.2bukkit, paper, purpur, spigot
Что нового
## Compatibility
- Supports every Paper release from 1.21.11 to 1.21.26.2
- Compiled against `paper-api:1.21.11` (Java 21, `api-version: '1.21'`)
- Added a new `checkLatestApi` Gradle task:
- Recompiles the plugin against the latest Paper API (26.2)
- Runs automatically as part of `check`
- Detects API removals during development instead of at runtime
- Replaced deprecated string-based Bukkit APIs with Adventure Components:
- `ChatColor`
- `ItemMeta#setDisplayName`
- `Bukkit.createInventory(..., String)`
- `InventoryView#getTitle()`
- Materials are now resolved by name with automatic fallback and warning logging
- Verified on:
- Paper 1.21.11 (Build 132)
- Paper 1.21.26.2 (Build 84)
- LuckPerms 5.5.65
## Configurable Commands & Permissions
- Command name, aliases, description and usage are now fully configurable
- All permission nodes are configurable, including their default value (`true` or `op`)
- Commands are registered dynamically at runtime
- Command labels are automatically sanitized:
- Removes leading `/`
- Removes invalid spaces and colons
- Normalizes casing
- Aliases already owned by another plugin are skipped and logged instead of appearing broken
- Permission nodes are registered with Bukkit, allowing `default: true` to work correctly
- Per-server permission nodes:
- Generated automatically from the server key
- Can be overridden individually
- Can be hidden or shown as locked
## Bug Fixes
### Menu & Interaction
- Fixed the menu opening twice because interact events fired for both hands
- Left-clicks no longer prevent normal block breaking while holding the selector
- Menu now uses an `InventoryHolder` instead of comparing inventory titles
- Prevented players from:
- Taking menu items
- Dragging items
- Using number keys
- Swapping with the offhand
- Placing items into item frames
- Eating menu items
### Selector Item
- Selector items are now identified using a `PersistentDataContainer` tag instead of their display name
- Added a display-name fallback for backwards compatibility
- Fixed selector duplication after death and respawn
- Fixed null checks for `ItemMeta`
### Configuration
- Added startup validation for all configuration values
- Invalid configuration entries now generate detailed warnings:
- Unknown materials
- Invalid inventory sizes
- Invalid slots
- Duplicate server slots
- Configuration is now parsed once into an immutable snapshot instead of reading YAML on every event
### Stability
- Fixed a `NullPointerException` when the command was missing from `plugin.yml`
- Fixed open menus remaining after plugin shutdown
- Fixed `unregisterOutgoingPluginChannel(this)` unregistering every outgoing plugin channel instead of only `BungeeCord`
- Removed the Guava (`ByteStreams`) dependency for plugin messaging in favour of the Java standard library
## Additions
- Fully customizable messages section
- Any message can be disabled by setting it to `""`
- Supports:
- Legacy `&` colour codes
- MiniMessage
- Hex colours
- Added `prevent-connect-to-current` to prevent reconnecting players to the server they are already on
- Added new selector item options:
- `enabled`
- `open-on`
- `locked`
- `force-slot`
- `give-on-join`
- `give-on-respawn`
- Added:
- `gui.filler`
- `gui.close-on-click`
- Full backwards compatibility with v1 configurations:
- Missing values automatically fall back to defaults
- `gui.fill-border` is still supported
- Configuration version mismatches are reported in the console
## Notes
> Changing `command.name` requires a full server restart.
> Running `/selector reload` will continue using the previous command label and will notify you in chat instead of pretending the change was applied.
release
Crqzy's Server Selector 1.0
1.027 июл. 2026 г.8Minecraft: 26.1, 26.1.1, 26.1.2bukkit, paper, purpur, spigot
release
Crqzy's Server Selector 1.0
1.011 июн. 2026 г.219Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Что нового
## 1.0.0
- Initial release
- Compass given on join (configurable hotbar slot, default center slot 4)
- Chest GUI with fully configurable server entries
- BungeeCord/Velocity connect via plugin messaging
- Drop prevention for the selector compass (configurable)
- `/selector` and `/selector reload` commands
- Full `config.yml` support — material, name, lore, slot, server ID per entry
