Skip to content
服务器插件与终端接口

旧联机版源码案例导读

根目录 sc2.2network/Plugins 已包含可编译案例,比脱离版本的代码片段更适合学习。下面只概括设计,不转载闭源仓库代码。

示例目录可以学习什么阅读重点
ChestLock箱子锁与持久化事件注册、按世界保存 JSON、玩家交互校验
BaseAntiCheatPlugin组合式反作弊多个事件接口、配置拆分、校验职责边界
AntiXrayPlugin服务端信息隐藏区块/方块数据处理及性能成本
TerritoryAntiCheatPlugin区域保护放置、破坏与交互事件如何共同形成权限边界
ServerOutputEnhancePlugin终端增强提示与状态 Provider 的注册方式
WatchDogPlugin进程监控内存观察、异常恢复与重启策略
ChatSyncPlugin聊天同步消息事件和外部通信的线程/失败处理
ServerSwitchPlugin服务器切换玩家状态与网络交互边界

推荐阅读顺序

  1. 先查看每个 .csprojnet10.0 与服务端项目引用。
  2. 找到 ServerPlugin 子类,记录 InitializeLoadSaveUpdate 各自职责。
  3. 搜索 RegisterEvent 一类调用,沿事件接口查看触发时机和返回值。
  4. 检查配置和数据写到哪里,是否会随世界切换。
  5. 最后再看反作弊与网络插件,因为它们更依赖旧联机版内部实现。

编写命令

独立命令可继承 AbstractProcessCmd。需要实现的核心成员包括 CmdIntroduceAuthLevelDisplayProcessCmd,并可通过 GetSuggestions 提供补全。输出时要区分服务端终端与客户端消息,权限判断必须放在服务端执行。

迁移价值判断

  • ChestLock 一类业务规则可以迁移“数据模型与校验思路”,但事件注册需要重写。
  • 反作弊、网络切换和同步插件高度依赖旧联机内部数据,应视为重做项目。
  • 终端 Provider 只有在插件联机版提供对应宿主能力时才能迁移。
  • 无源码 DLL 无法可靠适配新程序集;长期服应优先使用有源码、许可清楚的插件。

公开示例还可查看 SC-SPM/sc-server-plugin。使用前务必对照目标服务端版本和许可。

玩家共建文档 · 原版、插件版、联机版与插件联机版请注意区分