服务器使用量
未统计
服务玩家数
未统计
下载量
4,734
插件详细介绍
BungeeBridge 是一款用于在 Spigot 服务器与 BungeeCord 代理之间建立通信的 API。它允许运行在 Spigot 端的插件通过一系列预定义的数据包与 BungeeCord 进行交互,实现跨服功能,如获取玩家信息、发送消息、执行命令等。请注意,您必须在 Spigot 和 BungeeCord 两端安装对应版本的组件,并确保版本一致。
重要须知
- 本插件是一个通信 API,单独安装不会有任何效果,需要依赖它的插件才能发挥作用。
- 版本必须一致:请务必在 Spigot 端和 BungeeCord 端使用相同版本的 BungeeBridgeC(客户端)和 BungeeBridgeS(服务器端)。
- 即将更新:开发者正在开发 BungeeBridge2,当前版本 1.6.3 将很快被弃用,可能无法获得完整支持。
安装指南
- 从本页面下载
BungeeBridge.zip。 - 解压文件,将
BungeeBridge_Client.jar复制到 Spigot 服务器的plugins/目录下,将BungeeBridge_Server.jar复制到 BungeeCord 的plugins/目录下。 - 启动您的 BungeeCord 和 Spigot 服务器。
- 关闭您的 BungeeCord 和 Spigot 服务器。
- 检查 Spigot 和 BungeeCord 的
plugins文件夹,确认插件已生成配置文件。 - 根据需要编辑生成的
config.yml文件。 - 安装完成!现在您可以寻找并使用依赖此 API 的插件了。
开发者快速入门
基础教程:检查玩家是否在线
以下代码演示了如何检查指定玩家是否在网络的任一服务器上。
PacketIsPlayerOnline packet = new PacketIsPlayerOnline("dommi2212");
Object obj = packet.send();
IsOnlineResult isOnline = (IsOnlineResult) obj;
if(isOnline == IsOnlineResult.ONLINE) {
System.out.println("Yeah! Dommi is online!");
}步骤解析:
- 创建一个
PacketIsPlayerOnline数据包,参数为玩家名 "dommi2212"。 - 发送数据包。
packet.send()方法返回一个Object。 - 将返回的
obj转换为IsOnlineResult类型(每个数据包的描述中都会注明返回类型)。 - 处理结果(此示例中,如果 "dommi2212" 在线,则在控制台输出信息)。
注意: 通常建议异步运行 packet.send() 以避免阻塞主线程。
高级教程:自定义数据包 (PacketCustom)
关于如何使用 PacketCustom 发送自定义主题和数据的详细教程,已移至 BungeeBridge Wiki。
专家教程:事件 API (自 v1.6.0)
BungeeBridge 提供了事件 API,允许 Spigot 端在 BungeeCord 端触发事件。这需要您对 Java、Spigot、BungeeCord 和 BungeeBridge 有深入的了解。
工作原理简述:
- 调用者 (Spigot):监听某个动作(如 Spigot 事件、命令等),创建一个包含包装事件的
PacketFireEvent并发送给 BungeeBridgeS。 - BungeeBridgeS:接收数据包,提取包装事件,并在其数据库中查找已注册的匹配事件。
- 事件触发:如果找到匹配事件,BBS 会调用数据包中的
toEvent()方法,并在 BungeeCord 端触发该事件。
实现示例:将 Spigot 的聊天事件广播到 BungeeCord
在 Spigot 端:
- 注册
AsyncPlayerChatEvent监听器并发送PacketFireEvent。 - 创建
WrappedAsyncPlayerChatEvent类来包装原始事件数据。
在 BungeeCord 端:
- 将包装事件注册到数据库:
PacketFireEventHandler.registerEvent(instance, WrappedAsyncPlayerChatEvent.class); - 创建同名的
WrappedAsyncPlayerChatEvent类,并实现toEvent()方法来返回一个在 BungeeCord 端定义的、继承了Event的AsyncPlayerChatEvent。 - 之后,您就可以在 BungeeCord 端监听
AsyncPlayerChatEvent了。
常见陷阱:
PacketFireEvent没有返回值,您无法设置事件的返回结果。- 包装事件类中必须声明一个
private static final long serialVersionUID,且 Spigot 端和 BungeeCord 端的值必须相同。 - 必须在 BungeeCord 端创建一个解包后的事件类,并通过包装事件的
toEvent()方法返回。 - 必须将包装事件注册到 BungeeCord 端的数据库中。
数据包列表
以下是 BungeeBridge 提供的所有数据包及其简要说明。
PacketChat (自 v1.6.0)
- 描述:以玩家身份发送聊天消息或执行命令。
- 返回值:无
- 构造函数:
new PacketChat(UUID uuid, String message);
PacketConnectPlayer (自 v1.0.0)
- 描述:将玩家连接到指定服务器。
- 返回值:
ConnectResult result - 构造函数:
new PacketConnectPlayer(UUID uuid, String server);
PacketCustom (自 v1.2.0)
- 描述:发送自定义主题和数据。
- 返回值:您的 BungeeCord 插件的应答
- 构造函数:
new PacketCustom(String channel, Object subject); - 请参考 PacketCustom 教程。
PacketFireEvent (自 v1.6.0)
- 描述:在 BungeeCord 端触发一个事件。
- 返回值:无
- 构造函数:
new PacketFireEvent(WrappedEvent event); - 请参考事件 API 教程。
PacketGetMOTDServer (自 v1.1.0)
- 描述:获取指定服务器的 MOTD。
- 返回值:
String MOTD - 构造函数:
PacketGetMOTDServer(String bungeename);
PacketGetOnlineCountGlobal (自 v1.0.0)
- 描述:获取整个网络的在线玩家数量。
- 返回值:
int onlinecount - 构造函数:
new PacketGetOnlineCountGlobal();
PacketGetOnlineCountServer (自 v1.0.0)
- 描述:获取指定服务器的在线玩家数量。
- 返回值:
int onlinecount - 构造函数:
PacketGetOnlineCountServer(String server);
PacketGetPlayerIP (自 v1.0.0)
- 描述:获取玩家的 IP 地址。
- 返回值:
InetSocketAddress address - 构造函数:
new PacketGetPlayerIP(UUID uuid);
PacketGetPlayerName (自 v1.0.0)
- 描述:通过 UUID 获取玩家的名称。
- 返回值:
String name - 构造函数:
new PacketGetPlayerName(UUID uuid);
PacketGetPlayersGlobal (自 v1.0.0)
- 描述:获取网络所有在线玩家的 UUID 列表。
- 返回值:
List<UUID> uuids - 构造函数:
new PacketGetPlayersGlobal();
PacketGetPlayersServer (自 v1.0.0)
- 描述:获取指定服务器上所有在线玩家的 UUID 列表。
- 返回值:
List<UUID> uuids - 构造函数:
new PacketGetPlayersServer(String server);
PacketGetPlayerUUID (自 v1.0.0)
- 描述:通过玩家名获取其 UUID。
- 返回值:
UUID uuid - 构造函数:
new PacketGetPlayerUUID(String name);
PacketGetServerByPlayer (自 v1.2.0)
- 描述:获取玩家当前所在的服务器的名称。
- 返回值:
String bungeename - 构造函数:
new PacketGetServerByPlayer(UUID uuid);
PacketGetServerIP (自 v1.0.0)
- 描述:获取指定服务器的 IP 地址。
- 返回值:
InetSocketAddress address - 构造函数:
new PacketGetServerIP(String server);
PacketGetServers (自 v1.0.0)
- 描述:获取所有服务器的名称列表。
- 返回值:
List<String> servers - 构造函数:
new PacketGetServers();
PacketGetSlotsServer (自 v1.5.1)
- 描述:获取指定服务器的玩家槽位数量。
- 返回值:
int slots - 构造函数:
new PacketGetSlotsServer(String bungeename);
PacketIsPlayerOnline (自 v1.0.0)
- 描述:检查玩家是否在线。
- 返回值:
IsOnlineResult result - 构造函数:
- `new PacketIsPlayerOnline(UUID uuid);`- `new PacketIsPlayerOnline(String name);`PacketIsServerOnline (自 v1.2.0)
- 描述:检查服务器是否在线/可响应。
- 返回值:
boolean result - 构造函数:
new PacketIsServerOnline(String bungeename);
PacketKickAllPlayers (自 v1.0.0)
- 描述:踢出网络中的所有玩家。
- 返回值:无
- 构造函数:
new PacketKickAllPlayers(String message);
PacketKickPlayer (自 v1.0.0)
- 描述:从网络中踢出一名指定玩家。
- 返回值:无
- 构造函数:
new PacketKickPlayer(UUID uuid, String message);
PacketMessageAllPlayers (自 v1.0.0)
- 描述:向网络中的所有玩家发送一条消息。
- 返回值:无
- 构造函数:
new PacketMessageAllPlayers(String message);
PacketMessagePlayer (自 v1.0.0)
- 描述:向指定玩家发送一条消息。
- 返回值:无
- 构造函数:
new PacketMessagePlayer(UUID uuid, String message);
PacketRunCommand (自 v1.5.1)
- 描述:在 BungeeCord 控制台执行命令。
- 返回值:无
- 构造函数:
new PacketRunCommand(String... commands);
PacketSendActionbar (自 v1.4.0)
- 描述:向指定玩家发送一条动作栏消息。
- 返回值:无
- 构造函数:
new PacketSendActionbar(UUID uuid, String actionbar);
PacketSendAllTitle (自 v1.5.0)
- 描述:向所有玩家发送一个标题。
- 返回值:无
- 构造函数:
new PacketSendTitle(PackedTitle title);
PacketSendTitle (自 v1.4.0)
- 描述:向指定玩家发送一个标题。
- 返回值:无
- 构造函数:
new PacketSendTitle(UUID uuid, PackedTitle title);
PacketStopProxy (自 v1.0.0)
- 描述:停止 BungeeCord 代理。
- 返回值:无
- 构造函数:
- `new PacketStopProxy();`- `new PacketStopProxy(String message);`PacketTellraw (自 v1.6.2)
- 描述:向玩家发送一条 JSON 或 "Tellraw" 格式的消息。可以使用 Spigot 的 ChatAPI 中的
ComponentSerializer#toString(BaseComponent)轻松获取 JSON 字符串。 - 返回值:无
- 构造函数:
new PacketTellraw(UUID uuid, String jsonString);
PacketWriteConsole (自 v1.0.0)
- 描述:向控制台写入一条消息。
- 返回值:无
- 构造函数:
- `new PacketWriteConsole(String message);`- `new PacketWriteConsole(String message, Level level);`开源与资源
- 许可证:BungeeBridge 项目基于 MIT 许可证开源。
- 源代码:请访问 GitHub 仓库。
- Wiki:查看 BungeeBridge Wiki(尚未完成)。
- API 文档:
- [客户端 (BungeeBridgeC) 文档](https://ci.dommi2212.de/job/BungeeBridge/javadoc/index.html?de/dommi2212/bungeebridge/client/package-summary.html)- [服务器端 (BungeeBridgeS) 文档](https://ci.dommi2212.de/job/BungeeBridge/javadoc/index.html?de/dommi2212/bungeebridge/server/package-summary.html)- 贡献:欢迎通过提交 Issue 或 Pull Request 来帮助改进项目。
- 设计鸣谢:界面设计由 NitroFox0 完成,请访问他的个人主页以示支持。
版本分布
基本信息
插件名称
BungeeBridge
作者
dommi2212
平台
Bukkit / Spigot
支持版本
未标注
点赞数
1
最近版本
暂无数据
-