服务器使用量
未统计
服务玩家数
未统计
下载量
21,983
插件详细介绍
简介
本插件应众多玩家需求而开发。它允许你从单个服务器向多个服务器或玩家同步执行命令,即使这些服务器不在同一个 BungeeCord 网络下也能工作。
安装
这是一个由两部分组成的插件。请完整阅读本部分后再进行安装。
- 下载 zip 包并解压。
- 停止你的 BungeeCord 服务器(如果它正在运行)。
- 将
CommandSyncServer.jar放入 BungeeCord 的plugins文件夹。 - 启动 BungeeCord 服务器。
- 再次停止 BungeeCord 服务器。
- 在
<BungeeCord>/plugins/CommandSync/config.txt中设置密码 (pass)。 - 启动 BungeeCord 服务器。
- 停止你的所有 Minecraft 服务器(如果它们正在运行)。
- 将
CommandSyncClient.jar放入每个 Minecraft 服务器的plugins文件夹。这些服务器无需在同一个 BungeeCord 实例下。 - 启动所有 Minecraft 服务器。
- 再次停止所有 Minecraft 服务器。
- 在每个
<MinecraftServer>/plugins/CommandSync/config.txt中,设置一个唯一的标识名称(例如:survival,creative)以及你在CommandSyncServer配置中设置的相同密码 (pass)。 - 启动所有 Minecraft 服务器。
- 完成!
使用方法
以下是一些使用示例
/sync console all broadcast Hi there people!
会让所有服务器的控制台执行命令 broadcast Hi there people!。
/sync console survival broadcast Hey there!
会让标识为 survival 的服务器控制台执行命令 broadcast Hey there!。
/sync console bungee alert Wassup!
会让 BungeeCord 服务器的控制台执行命令 alert Wassup!。
/sync player all me Hey
会让所有在线的玩家(在运行 CommandSyncServer 的 BungeeCord 网络下)执行命令 /me Hey。
/sync player md_5 give YoFuzzy3 cookie 1337
会让玩家 md_5 执行命令 /give YoFuzzy3 cookie 1337。
注意
当让玩家执行命令时,该玩家必须拥有使用该命令的权限。
命令
/sync- 查看帮助菜单。/sync console- 向所有 Minecraft 服务器、单个 Minecraft 服务器或 BungeeCord 服务器发送要执行的命令。/sync player- 向所有玩家或单个玩家发送要执行的命令。
权限
sync.use- 允许使用/sync命令(一个 Bukkit 命令)。默认:OP。
配置
CommandSyncServer 配置
ip=localhost
port=9190
heartbeat=1000
pass=UNSET
debug=falseip- CommandSyncServer 尝试绑定的 IP 地址。port- CommandSyncServer 尝试绑定的端口。heartbeat- 以毫秒为单位,CommandSyncServer 处理数据的频率。pass- 所有客户端必须通过此密码进行验证。(设为UNSET时插件将不工作。)debug- 如果为true,所有调试信息将保存到log.txt文件中。
CommandSyncClient 配置
ip=localhost
port=9190
heartbeat=1000
name=UNSET
pass=UNSET
debug=falseip- CommandSyncClient 尝试连接的 IP 地址。port- CommandSyncClient 尝试连接的端口。heartbeat- 以毫秒为单位,CommandSyncClient 处理数据的频率。name- CommandSyncClient 的唯一标识符,用于/sync console single命令。(设为UNSET时插件将不工作。)pass- 客户端用于向服务器验证的密码。(设为UNSET时插件将不工作。)debug- 如果为true,所有调试信息将保存到log.txt文件中。
强大特性
- 使用 Java 原生网络通信,比插件消息系统更可靠,消除了许多错误。这意味着你可以跨不同 BungeeCord 实例下的 Minecraft 服务器同步命令!
- 如果尝试同步命令时 CommandSyncServer 离线,命令将被放入队列,待其重新上线后执行!
- 如果某个 Minecraft 服务器离线,CommandSyncServer 会等待其重新上线后再向其发送命令!
- 如果尝试为离线玩家同步命令,该命令将暂不执行,直到该玩家上线!
- 所有命令队列在服务器关闭时都会保存到文件中。这意味着即使多个服务器经历长时间停机,每条命令都会被存储并在可能时尽快执行!
- 支持授权验证,确保跨网络连接的安全性!
- 支持调试文件日志记录!
内部原理
这是一个简化的文本描述,说明了命令的流转过程
/sync console all /sync-> 单个 CSC -> CSS -> 所有 CSCs -> MC 控制台 -> 执行/sync console <server> /sync-> 单个 CSC -> CSS -> 指定的 CSC -> MC 控制台 -> 执行/sync console bungee /sync-> 单个 CSC -> CSS -> Bungee 控制台 -> 执行/sync player all /sync-> 单个 CSC -> CSS -> 所有玩家 -> 执行/sync player <name> /sync-> 单个 CSC -> CSS -> 指定的玩家 -> 执行
数据存储说明
CommandSyncClient (CSC) 保存:
- 所有已发送的字符串命令。这些数据从不清除。
- 一个整数值,表示 CSC 已向 CSS 发送命令的进度。此值不清除。
- 这使得 CSC 可以在 CSS 离线时排队命令。
CommandSyncServer (CSS) 保存:
- 所有已接收的字符串命令。这些数据从不清除。
- 为每个 CSC 保存一个整数值,表示 CSS 已向该 CSC 发送命令的进度。这些值从不清除。
- 这使得 CSS 可以在 CSC 离线时排队命令,待其重新上线后执行。当新的 CSC 加入时,存储的命令也可以为其执行。
- 所有为离线玩家排队的命令。这些命令在执行后会被清除。
- 这些命令会在玩家上线时执行。
重要警告
- 删除任何数据(离线玩家命令队列除外)将导致 CSS 和 CSC 不同步,可能导致命令被重复执行。
- 如果 CSS 或 CSC 崩溃导致数据未能保存,也可能发生上述情况。
重置数据
如果你确信所有命令都已成功处理,并希望重置保存的数据,必须:
- 关闭运行 CSS 的 Bungee 服务器和所有运行 CSC 的 MC 服务器。
- 删除以下位置的
data.txt文件:
- `Bungee/plugins/CommandSync/data.txt`- `MC Server/plugins/CommandSync/data.txt`- 启动所有服务器。
更新日志
- 版本 2.3 - 添加了对
/sync命令中空格的支持。在内部检查中添加了版本号。修复了空密码错误。 - 版本 2.2 - 修复了配置文件生成问题。
- 版本 2.1 - 启动时会更新
config.txt,添加了新的身份验证和调试文件日志选项。 - 版本 2.0b - 完全重写!现在使用 Java 网络通信,使其更灵活、可靠和安全。
- 版本 1.0 - 初始版本。功能不完整。
源代码与统计
- 源代码:GitHub。
- 统计:本插件使用 Hidendra 的 MCStats 服务,这意味着它会向 MCStats.org 报告匿名统计数据。
捐赠
如果您欣赏我的开发工作,捐赠总是非常受欢迎并深表感谢!
截至目前收到的捐赠:
- MostFunGuy - 09/12/13 - $50
- MostFunGuy - 09/12/13 - $50
版本分布
基本信息
插件名称
CommandSync
作者
YoFuzzy3
平台
Bukkit / Spigot
支持版本
未标注
点赞数
3
最近版本
暂无数据
-