服务器使用量
未统计
服务玩家数
未统计
下载量
5,209
插件详细介绍
关于 CommandSync
CommandSync 是一款功能强大的跨服务器命令同步插件。它允许你从一个 Minecraft 服务器向其他服务器、BungeeCord/Velocity 代理,甚至特定玩家发送并执行命令。本插件基于 Java 网络通信,比传统的插件消息系统更可靠,并支持跨不同代理实例的服务器集群。
支持的平台
代理端 (必需)
- Velocity (插件版本 2.8+)
- BungeeCord
- WaterFall
- 其他 BungeeCord 分支
服务端 (Minecraft 服务器)
- SpongeVanilla / SpongeForge (API 7/8+)
- Bukkit, Spigot, PaperSpigot 等
- 理论上支持 ForgeBukkit 服务器 (未测试)
- Fabric (需要 Cardboard mod)
重要提示:插件在仅提供 1 个连接端口的托管服务上很可能无法正常工作!为实现完整功能,需要 VDS/VPS 或独立服务器。
安装指南
请完整阅读以下步骤后再进行安装。
- 下载插件
- 下载 `CommandSync.jar` 文件。- 安装到代理端 (BungeeCord/Velocity)
- 停止你的 BungeeCord/Velocity 服务器。- 将 `CommandSync.jar` 放入代理服务器的 `plugins` 文件夹。- 启动代理服务器,然后再次停止它。- 编辑 `<代理端目录>/plugins/CommandSync/config.txt`,设置 `pass` (密码) 字段。- 启动代理服务器。- 安装到服务端 (Minecraft 服务器)
- 停止你的所有 Minecraft 服务器。- 将 `CommandSync.jar` 放入每个 Minecraft 服务器的 `plugins` (或 `mods`) 文件夹。这些服务器可以不属于同一个代理网络。- 启动所有 Minecraft 服务器,然后再次停止它们。- 编辑每个服务器的配置文件:- Bukkit系: `<服务器目录>/plugins/CommandSync/config.txt`- Sponge系: `<服务器目录>/config/commandsync/config.txt`- 在每个配置文件中,设置一个**唯一的** `name` (标识名,例如:survival, creative) 以及和代理端配置中相同的 `pass` (密码)。- 启动所有 Minecraft 服务器。完成!现在插件应该可以正常工作了。
使用方法与命令
基础命令格式
所有命令均在 Minecraft 服务器内执行。
/sync- 查看帮助菜单。/sync console <目标> <命令...>- 向控制台发送命令。/sync player <目标> <命令...>- 使玩家执行命令。/proxysync <参数>- 在代理服务器上执行,功能与/sync类似。
命令示例
向所有服务器控制台发送命令:
/sync console all broadcast 大家好!
向特定标识的服务器控制台发送命令:
/sync console survival broadcast 生存服玩家好!
向代理服务器控制台发送命令:
/sync console bungee alert 注意!
使所有在线玩家执行命令:
/sync player all me 打了个招呼
使特定玩家执行命令:
/sync player Steve give Steve diamond 1
注意:当使玩家执行命令时,该玩家必须拥有执行该命令的权限。
核心特性
- 基于 Java 网络:比插件消息系统更可靠,消除了许多错误,支持跨不同代理网络的服务器同步命令。
- 智能队列:
- 如果 CommandSyncServer 离线,命令会被保存并在其恢复在线后执行。- 如果目标 Minecraft 服务器离线,命令会等待其上线。- 如果目标玩家离线,命令会等待其上线再执行。- 数据持久化:所有命令队列在服务器关闭时都会保存到文件,确保即使经历长时间停机,命令也能在恢复后尽快执行。
- 安全授权:通过密码进行安全认证,保障跨网络连接。
- 调试日志:可启用调试模式,将日志记录到
log.txt文件。
配置说明
CommandSyncServer (代理端配置)
文件位置:<代理端>/plugins/CommandSync/config.txt
ip- CommandSyncServer 尝试绑定的 IP 地址。port- CommandSyncServer 尝试绑定的端口。heartbeat- 处理数据的频率(毫秒)。pass- 所有客户端必须使用的授权密码。设置为UNSET时插件不工作。debug- 设为true时,所有调试信息将保存到log.txt。removedata- 设为true时,将删除data.txt文件。lang- 选择插件使用的语言。你可以基于现有文件创建自己的语言文件。
CommandSyncClient (服务端配置)
文件位置:<服务端>/plugins/CommandSync/config.txt 或 <服务端>/config/commandsync/config.txt
ip- CommandSyncClient 尝试连接的 IP 地址。port- CommandSyncClient 尝试连接的端口。heartbeat- 处理数据的频率(毫秒)。name- 客户端的唯一标识符,用于/sync console <标识>命令。设置为UNSET时插件不工作。pass- 客户端用于向服务器授权的密码。必须与代理端pass一致。设置为UNSET时插件不工作。debug- 设为true时,所有调试信息将保存到log.txt。removedata- 设为true时,将删除data.txt文件。lang- 选择插件使用的语言。
内部机制与数据管理
工作原理简图
/sync命令在单个 CSC (客户端) 上执行。- 该 CSC 将命令发送到 CSS (服务器端)。
- CSS 根据命令目标,将命令转发给:
- 所有 CSC (`all`)- 特定的 CSC (`<server>`)- 代理控制台 (`bungee`)- 在线玩家数据文件 (`data.txt`)
插件使用 data.txt 来跟踪命令队列和同步状态。
- CSC 保存:
- 所有已发送的字符串命令(永不清除)。- 一个表示发送命令进度的整数值。- CSS 保存:
- 所有接收到的字符串命令(永不清除)。- 每个 CSC 的命令进度值(永不清除)。- 为离线玩家排队的命令(执行后清除)。警告:删除任何数据(离线玩家队列除外)都可能导致 CSS 和 CSC 不同步,造成命令重复执行。如果服务器崩溃导致数据未保存,也可能发生此情况。
安全重置数据
如果你确信所有命令都已成功处理,并想重置保存的数据,请按以下步骤操作:
- 关闭运行 CSS 的 Bungee 服务器和所有运行 CSC 的 MC 服务器。
- 删除所有
data.txt文件,位置通常在:
- `Bungee/plugins/CommandSync/data.txt`- `Bukkit Server/plugins/CommandSync/data.txt`- `Sponge Server/config/CommandSync/data.txt`- 启动所有服务器。
权限
sync.use- 授予使用/sync命令的权限。默认:OP(管理员)。
更新日志摘要
- v2.8.2: 修复了
sync console player命令的消息问题;修复了 SpongeForge 上语言文件保存的问题。 - v2.8.1: 修复了 SpongeForge 上的日志消息。
- v2.8: 新增 Velocity 支持;移除了不必要的代码;修复了从代理服务器发送命令时玩家不执行命令的 Bug。
- v2.7: 将支持的 SpongeAPI 版本改为 8。
- v2.6: 新增按玩家昵称发送命令的筛选功能;为代理服务器添加了
proxysync命令。 - v2.5: 统一为单个 JAR 文件;更改了 Sponge API 上的插件 ID;修复了权限和本地化错误。
- 更早版本: 增加了 Sponge 支持、本地化选项,并进行了完全重写,改用 Java 网络。
---
原始插件链接:https://www.spigotmc.org/resources/commandsync.27014/
如果你在特定版本上成功运行了本插件,请向开发者反馈。
测试支持版本
版本分布
基本信息
插件名称
CommandSync
作者
glavrak
平台
Bukkit / Spigot
支持版本
1.8 - 1.20.6
点赞数
12
最近版本
暂无数据
-