
L-Bedwars Proxy
A proxy-supported plugin compatible with L-Bedwars!
Оцените первым
18
0
L-BedWarsProxy
Multi-server proxy plugin for L-BedWars — arena status tracking, player routing, queue system, leaderboard holograms, and cross-server spectate.
Runs on Paper/Spigot 1.19+ (not a BungeeCord plugin) and communicates with game servers via TCP socket with HMAC-authenticated JSON protocol. Uses BungeeCord plugin channels for cross-server player movement.
Features
Arena Status Tracking
- Real-time arena state monitoring via TCP socket connections from game servers
- HMAC-SHA256 signed JSON protocol with configurable authentication token
- IP whitelist with CIDR support for connection security
- Per-IP connection limits with configurable max connections
- Health-check timeout system — automatically marks stale servers as offline
- Protocol version handshake for forward/backward compatibility
Player Routing (/bw join <mode>)
- Smart arena selection algorithm: prefers WAITING lobbies with more players, falls back to STARTING lobbies
- Party-aware join — if player is party leader, all party members are sent to the same server simultaneously
- Rejoin support (
/bw rejoin) — remembers player's last server for reconnection /bw stats [player]— view MySQL-stored stats across all servers
Queue System
- Optional auto-queue when no arena is available for a mode
- Priority permissions for skip-the-line access (configurable permission nodes)
- Automatic connection when an arena slot opens
- Queue position display for players
Admin Commands (/bwa)
- GUI — Paginated arena overview with status-colored wool items; click to join
- Teleport/Spectate —
/bwa tp <player>— cross-server spectate via BungeeCord Forward channel - Leaderboard — Paginated GUI with player heads, sorted by any stat column
- Hologram management —
/bwa hologram set/remove/list— in-game leaderboard hologram placement
Hologram Leaderboard
- ArmorStand-based holograms display top N players for any stat
- Configurable line count and update interval
- Persists to
holograms.yml - Multiple holograms per stat supported
- Automatically updates from MySQL database on a timer
MySQL Stats Database
- HikariCP connection pool for high-performance MySQL access
- Shared
player_statstable with game servers (configurable prefix) - Stats: kills, deaths, final kills, final deaths, wins, losses, beds broken, games played
- Leaderboard queries for any stat column
- Gracefully disabled when database section is omitted from config
PlaceholderAPI Expansion
%lbedwars_kills%,%lbedwars_deaths%,%lbedwars_wins%,%lbedwars_losses%%lbedwars_final_kills%,%lbedwars_final_deaths%%lbedwars_beds_broken%,%lbedwars_games_played%%lbedwars_level%,%lbedwars_xp%,%lbedwars_kdr%%lbedwars_arena_online%(total players across all servers)%lbedwars_arena_count%(total online arena servers)
Party Integration
- Soft dependency on Parties API (alessiodp/parties)
- Party leader's
/bw joinsends all members to the same game server - Graceful fallback when Parties plugin is not installed
Folia Support
- Reflection-based Folia detection
- Dual scheduler (Folia regionized / Bukkit) for all timed tasks
folia-supported: truein plugin.yml
Commands
Player Commands
| Command | Description |
|---|---|
/bw join <solo/duo/trio/quad> | Join a mode (auto-selects best arena, queues if full) |
/bw rejoin | Reconnect to last game server |
/bw stats [player] | View MySQL-stored stats |
Admin Commands
| Command | Permission | Description |
|---|---|---|
/bwa gui [all/solo/duo/trio/quad] | lbedwarsproxy.admin | Open arena status GUI |
/bwa tp <player> | lbedwarsproxy.admin | Cross-server spectate |
/bwa leaderboard [stat] | lbedwarsproxy.admin | Open leaderboard GUI |
/bwa hologram set <stat> | lbedwarsproxy.admin | Place leaderboard hologram |
/bwa hologram remove [id] | lbedwarsproxy.admin | Remove a hologram |
/bwa hologram list | lbedwarsproxy.admin | List all holograms |
Queue Placeholders
| Placeholder | Description |
|---|---|
%lbedwars_arena_online% | Total online players across all arenas |
%lbedwars_arena_count% | Number of online arena servers |
Configuration (config.yml)
language: en
socket-port: 5000
bind-address: 127.0.0.1
socket-token: "change-me"
allowed-ips:
- "127.0.0.1"
max-connections: 50
database:
host: "localhost"
port: 3306
database: "lbedwars"
username: "root"
password: ""
table-prefix: ""
pool-size: 5
health-check:
enabled: true
timeout-seconds: 15
queue:
enabled: false
priority-permissions:
- "lbedwarsproxy.queue.priority"
holograms:
leaderboard:
enabled: false
lines: 10
update-interval: 60
Configuration Sections
| Section | Description |
|---|---|
language | Language for proxy messages (en or tr) |
socket-port | TCP port for game server connections |
bind-address | Socket bind address (0.0.0.0 for all interfaces) |
socket-token | Shared secret for HMAC authentication |
allowed-ips | CIDR whitelist (empty = allow all) |
max-connections | Maximum concurrent socket connections |
database | MySQL connection settings (omit to disable) |
health-check | Timeout detection for stale servers |
queue | Optional queue system settings |
holograms.leaderboard | Leaderboard hologram refresh settings |
Disconnect
- Client disconnect detected via socket timeout
TimeOutTaskmarks server offline aftertimeout-secondsof no updates- Per-IP connection counter decremented on disconnect
Setup
Prerequisites
- Paper/Spigot 1.19+ server (can be a dedicated proxy/lobby server)
- MySQL database (optional, required for stats/leaderboard)
- L-BedWars plugin on each game server with
proxy-mode: true
Installation
- Place
L-BedWarsProxy.jarin your proxy/lobby server'splugins/folder - Restart the server to generate default config
- Edit
config.yml:- Set
socket-tokento a secure random string - Configure
bind-addressandsocket-port(match game server config) - Add game server IPs to
allowed-ips(or leave empty to allow all) - Configure
databasesection for MySQL (stats/leaderboard)
- Set
- On each game server, set
proxy-mode: true,proxy-socket-address: <proxy-ip>:<port>, and matchingsocket-token - Restart proxy server, then game servers
Verifying Connection
- Game server console:
[L-BedWars] Socket connection established to proxy - Proxy console:
[L-BedWarsProxy] Server <name> connected! /bwa guishould show the connected arena
Dependencies
| Dependency | Type | Required |
|---|---|---|
| Paper/Spigot 1.19+ | Server | Yes |
| PlaceholderAPI | Plugin | No (placeholders unavailable) |
| Parties (alessiodp) | Plugin | No (party features disabled) |
Files
| File | Purpose |
|---|---|
config.yml | Main plugin configuration |
holograms.yml | Persisted hologram data (auto-generated) |
languages/messages_en.yml | English language file |
languages/messages_tr.yml | Turkish language file |
Permissions
| Permission | Default | Description |
|---|---|---|
lbedwarsproxy.play | true | Allows joining arenas via /bw |
lbedwarsproxy.admin | op | Allows admin commands via /bwa |
lbedwarsproxy.queue.priority | — | Queue priority (configurable node name) |
Часто задаваемые вопросы
Совместимость
Ссылки
Создатели
Детали
Лицензия:
Опубликован:1 месяц назад
Обновлён:2 недели назад
