指南
如何制作 BungeeCord 插件
更新于 2026年10月18日
BungeeCord 插件运行在位于你各个服务器前面的代理端上,而不是游戏服务器上。它能看到玩家连接、切换服务器和离开,所以适合做全网聊天、管理工具、维护模式、MOTD,以及在服务器之间传送玩家。它没有世界或方块:玩法应该放在后端服务器的插件里。
把命令改成适合你群组服的。
用 Codexe 生成这个分步说明
1.确认你使用的代理端
BungeeCord(或 Waterfall 这样的分支)和 Velocity 是不同的 API。BungeeCord 插件不能在 Velocity 上运行,反过来也一样。
2.创建项目
一个 Maven 或 Gradle 项目,带
provided作用域的bungeecord-api依赖。运行时由代理端提供它。3.编写主类
一个继承
net.md_5.bungee.api.plugin.Plugin的类,在onEnable()中通过getProxy().getPluginManager()注册命令和监听器。4.在 bungee.yml 中描述插件
name、version、main和author。BungeeCord 也会读取plugin.yml,但用bungee.yml可以避免和 Spigot 插件混淆。命令在代码中注册,而不是写在文件里。5.编写命令和监听器
命令继承
Command;监听器实现Listener,用@EventHandler方法处理PostLoginEvent或ServerSwitchEvent等事件。6.需要时与后端服务器通信
代理端看不到物品栏或世界。如果需要,就在每个后端服务器上放一个小的配套插件,与代理端插件交换插件消息。
7.安装到代理端
把 .jar 放进代理端的
plugins/文件夹,然后重启代理端,而不是后端服务器。
常用的代理端事件
| 事件 | 触发时机 | 典型用途 |
|---|---|---|
ProxyPingEvent | 客户端刷新服务器列表 | MOTD、玩家人数、维护提示 |
PostLoginEvent | 玩家已加入代理端 | 加入消息、加载玩家数据 |
ServerConnectEvent | 玩家即将连接到某个服务器 | 把玩家送到大厅、屏蔽某些服务器 |
ServerSwitchEvent | 玩家切换到了另一个服务器 | 全网的“加入了服务器”消息 |
PlayerDisconnectEvent | 玩家离开了群组服 | 保存数据、通知管理员 |
ChatEvent | 玩家发送聊天消息或命令 | 全网聊天、过滤器、管理员聊天 |
正确配置群组服
- 在代理端的
config.yml中开启ip_forward,并在每个 Spigot 或 Paper 服务器的spigot.yml中设置bungeecord: true,这样玩家名称和 UUID 才会被传递过去。 - 把后端服务器设为
online-mode=false,并确保它们无法从互联网直接访问,只能通过代理端进入。 - 插件消息只在有玩家连接到该后端服务器时才能传递,所以发往空服务器的消息不会送达。
描述示例
“一个名为 NetUtils 的 BungeeCord 1.21 代理端插件。/lobby 把玩家送到大厅服务器。/staffchat <message>(别名 /sc)把消息发给任何服务器上拥有 netutils.staff 的所有人。/maintenance on|off 显示维护 MOTD,并踢出没有 netutils.bypass 的玩家。管理员切换服务器时,在管理员聊天中发送一条加入消息。服务器名称、MOTD 和消息在 config.yml 中。”
用 Codexe
选择 BungeeCord/Velocity 类型,并写明你用的是哪个代理端,因为它们的 API 不同。Codexe 用 Maven 编译插件,并在标记为就绪之前检查 .jar 的描述文件是否正确;需求中没有写版本时,使用 BungeeCord API 1.21。如果你需要后端配套插件,请把它作为一个单独的 Spigot/Paper 项目来要求。
“立即试用”暂时还不支持代理服务器,所以请在你自己的群组服,或者带一个后端服务器的本地代理上测试代理端插件。另见 BungeeCord 插件生成器。
常见问题
BungeeCord 插件能修改方块或物品栏吗?
不能,代理端只处理连接和消息。玩法请用后端插件,如果两者需要配合,就用插件消息。
它能在 Velocity 上运行吗?
不能。Velocity 有自己的 API 和 velocity-plugin.json。如果两个都用,就做两个项目。
聊天功能用代理端插件还是后端插件?
如果聊天消息必须送达每个服务器上的玩家,就用代理端插件。如果聊天只在一个服务器内,就用后端插件。
为你的群组服制作插件
这条提示词打开后即可直接发送:
“一个名为 NetUtils 的 BungeeCord 1.21 代理端插件:/lobby 把玩家送到大厅服务器,/staffchat(别名 /sc)把消息发给任何服务器上拥有 netutils.staff 的所有人,/maintenance on|off 显示维护 MOTD 并踢出没有 netutils.bypass 的玩家,管理员切换服务器时在管理员聊天中通报,服务器名称、MOTD 和消息在 config.yml 中。”
用 Codexe 生成这个