McLists一周年快乐
服务器已经添加了详细介绍信息板块
服主可以在管理后台来提交自己服务器介绍信息。
服务器介绍信息提交后,管理人员会进行审核
审核通过后会在服务器详细页面进行显示
提交服务器介绍信息会让新玩家更好的了解你的服务器哦~
添加图片信息,也会让百度等搜索引擎更好的收录您的服务器哦~
管理平台地址:传送门
BungeeBridge

BungeeBridge - 跨服通信插件

[API] 让您的Bukkit服务器与BungeeCord通信!
Bukkit / Spigot 作者 dommi2212 支持版本 未标注
服务器使用量
未统计
服务玩家数
未统计
下载量
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 端定义的、继承了 EventAsyncPlayerChatEvent
  • 之后,您就可以在 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
最近版本
暂无数据 -

友情链接: 网易我的世界 | 泰拉瑞亚 | ocent云计算 | 米饭Minecraft插件文档 | 友链合作

历史访问人次:3,102,058  |  今日访问人次:10,222  |  昨日访问人次:22,124

独立 IP:19,250  |  最近24小时独立访客:19,296

Copyright © 2019-2026 我的世界服务器列表站. All rights reserved.

Powered by GermMC 京ICP备17023959号-6