GeyserMenu-Companion
作者:rebot | 分类:模组
Minecraft 版本: 1.20 1.20.1 1.20.2 1.20.3 1.20.4 1.20.5 1.20.6 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.11
平台: bukkit paper purpur spigot
GeyserMenu Companion
The server-side half of the GeyserMenu stack.
Connects to the GeyserMenu Geyser extension over TCP and exposes a clean Java API for
registering menu buttons, sending native Bedrock forms, and listening to Bedrock player events —
on both Spigot/Paper and Velocity.
How It Works
Once connected to the GeyserMenu extension, your plugins use the companion API to register
buttons that appear in the Bedrock menu. When a player clicks a button, the event is
forwarded to your plugin's handler. You can also send forms directly to any Bedrock player
at any time.
Features
- Button registration API — register buttons with icons, priorities, and click handlers
- Form builder API — send simple, modal, and custom forms to Bedrock players
- Permission-based visibility — conditionally show buttons based on player permissions
- Bedrock player events — listen for Bedrock join/leave, check if a player is Bedrock
- Multi-platform — supports Spigot/Paper and Velocity from a single codebase
- Auto-reconnect — automatically reconnects to the GeyserMenu extension on disconnect
- Command buttons — register buttons that execute commands without writing click handlers
Requirements
- Spigot/Paper 1.20.4+ or Velocity 3.3.0+
- Java 21+
- Floodgate
- GeyserMenu extension running on Geyser
Installation
- Download the JAR for your platform —
SpigotorVelocity - Place it in your
plugins/folder - Start the server once to generate
config.yml - Set the
host,port, andsecret-keyto match your GeyserMenu extension config - Restart — the plugin will connect and sync buttons automatically
Configuration
extension:
host: "localhost"
port: 19133
secret-key: "your-secret-key-here"
connection:
auto-reconnect: true
reconnect-delay: 5
server:
identifier: "lobby"
Quick API Example
GeyserMenuAPI api = GeyserMenuAPI.getInstance();
api.registerButton(MenuButton.builder()
.id("myplugin-main")
.text("My Plugin")
.imageUrl("https://example.com/icon.png")
.priority(50)
.onClick((player, session) -> openMenu((Player) player))
.build());
Full API documentation is available on the GitHub repository.
Links
请登录后举报
暂无评论,抢个沙发吧~