• 周年纪念勋章活动已圆满结束,如有已购买但仍未申请的用户,可以通过对应勋章的下载链接申请~
CoordinationWss - WS协调服务端 - 基岩版跨服同步群组服原版wsserver

LSE CoordinationWss - WS协调服务端 - 基岩版跨服同步群组服原版wsserver 5.0.0

版权类型
原创
版权链接
https://gitee.com/wn1027/lse-coordination-wss
语言支持
中文(简体)
前置组件
GMLIB(MineBBS) - https://www.minebbs.com/resources/gmlib.6636/
GMLIB-LegacyRemoteCallApi(MineBBS) - https://www.minebbs.com/resources/gmlib-legacyremotecallapi-gmlib-remotecallapi.7159
GMLIB(GitHub) - https://github.com/GroupMountain/GMLIB-Release/releases/
GMLIB-LegacyRemoteCallApi(GitHub) - https://github.com/GroupMountain/GMLIB-LegacyRemoteCallApi/releases
适配版本(基岩)
  1. 最新版本
# 作者:Wn1027
# 不要在评价区反馈bug,反馈bug请到讨论/反馈区
# 本插件反馈QQ群: 311860068
# 旧版本: SyncWS - WS协调服务端

一、 插件功能


这是WS协调服务端的重构版本,模块化路由化,提高了可持续维护性。

以基岩版原版wsserver api为模板,架设WS服务端,实现跨服跨存档聊天,BDS玩家数据同步,可用于开资源服、群组服。
跨服同步为中心同步,需要设置一个主服,其他均为副服。登录副服时,需要从主服获取玩家背包数据。
计划下一步补充实现地图像素画功能(旧版的应该不能用了)

二、插件安装(版本升级请查看对应更新内容)

  1. 安装前置插件GMLIB0.13.5及GMLIB-LegacyRemoteCallApi0.13.3以上。
  2. 安装WS协调服务端(CoordinationWss):
    - (二选一)独立运行:电脑安装 `nodejs` , 在插件目录使用cmd命令 `node s.js` 启动WS协调服务端。
    - (二选一)作为LSE插件运行:将 `CoordinationWss` 文件夹放到主服plugins目录下。
  3. 安装WS协调客户端(CoordinationWsc):
    将 `CoordinationWsc` 文件夹放到主服和副服plugins目录下(所有服都要装,所有BDS都将作为WS客户端连接到WS协调服务端)。
  4. 启动BDS, 自动生成配置文件(见插件目录data文件夹下)。
  5. 修改配置,指定主服(参考下文配置文件说明)
    - 打开主服的./plugins/CoordinationWsc/data/WSClientConfig.json
    - 修改 `Websocket` 项目下的连接地址及其他配置
    - 修改 `SyncType` 一项为 `main`(指定此服为主服)
    - 打开副服的./plugins/CoordinationWsc/data/WSClientConfig.json
    - 修改 `Websocket` 项目下的连接配置,及其他配置
  6. 开放WS协调服务端(CoordinationWss)所在服务器的公网tcp9001端口。
  7. 重启所有服务器。
三、插件使用
  • `/sync transfer` : 打开菜单, 传送到同步服务器
  • `/sync transfer <ip> <port>` : 传送到某个服务器
  • `/sync list` : 列出协调服务端在线玩家
  • `/sync list num` : 返回协调服务端在线玩家人数
  • `/sync debug true|false` : 打开/关闭 debug模式
  • WS协调服务端独立运行时, 输入控制台命令 `help` 查看帮助
  • 单人存档使用命令 /connect ws://127.0.0.1:9001/?key=FlySteve 连接
  • 注册了PAPI变量:在线玩家数量:%onlinePlayersNum% 在线玩家列表:%onlinePlayersNames%
  • 开发者调用请看Gitee仓库:插件架构思路及开发者指南
四、配置文件说明

JavaScript:
// ./plugins/CoordinationWss/data/WSServerConfig.json
let defaultConfig = {
    "CONFIG": "此为Websocket协调服务端配置文件",
    "Websocket": {
        "ServerName": "WS协调服务端", // WS协调服务端名称
        "Port": 9001,               // WS协调服务端Websocket端口
        "ConnectKey": "FlySteve",   // WS协调服务端Websocket连接密钥
        "Debug": false,
    },
    "Chat": {
        "ConsoleDisplay": true,                   // WS协调服务端控制台聊天显示
        "ChatLog": true,                          // 聊天日志, 记录所有玩家聊天日志到./log/chatwss/PlayerChat/
        "ChatHeader": "",                         // 聊天前缀, 玩家在聊天内容开头添加此字符进行云端聊天。
        "TipHeader": "§d『§b${ServerName}§d』§r",  // 聊天显示头衔, ${ServerName} 替换为WS协调服务端名称。
    }
};

JavaScript:
// ./plugins/CoordinationWsc/data/WSClientConfig.json
let defaultConfig = {
  "CONFIG": "此为Websocket客户端配置文件",
  // Websocket网络
  "Websocket": {
      "ConnectUrl": "ws://127.0.0.1:9001",  // WS协调服务端Websocket连接地址(优先局域网地址)
      "ConnectKey": "FlySteve",             // WS协调服务端Websocket连接密钥
      "ServerName": "资源世界",              // BDS名称 (默认为存档名) & 提示信息前缀
      "BDSUuid": "123abv323",       // BDS唯一识别名(每个服务器一个, 不能重复, 不可擅自修改")
      "BDSIp": "114.5.14.1",               // 此BDS的公网IP地址
      "BDSPort": 19132,                   // 此BDS的公网端口
      "Debug": false,
  },

  // 聊天配置
  "Chat": {
      "ConsoleDisplay": true,           // WS控制台聊天显示
  },

  // 玩家数据同步配置
  "SyncConfig":{
      "Enabled": true,                            // 同步功能总开关
      "SyncType": 'sub',                          // 同步类型, 用于玩家数据同步, 副服: 'sub' 主服: 'main', 玩家数据以主服数据为准。
      "AutoSyncCycle": 30000,                     // 自动同步周期(ms)
      "AllowCreateNewPlayer": false,              // 是否允许存档新建玩家(默认新玩家从副服登录时将自动传送到主服)
      "SyncOption": {                             // 玩家数据同步选项(这里是本服作为同步数据接收方的同步项开关)
          "syncInventory": true,                  // 跨服背包(非实时同步)
          "syncLLMoney": true,                    // 跨服LLMoney(实时同步)
          "syncScoreboard": [],                   // 跨服计分板(非实时同步)填入想要同步的计分项
          "syncTags": true,                       // 跨服Tag
          "syncEnderChest": true,                 // 跨服末影箱
          "syncLevel": true,                      // 跨服经验等级
          "syncEffects": false,                   // 跨服药水效果
          "syncCmd": ["allowlist", "whitelist"]   // 同步执行的命令(主服执行,则其他服也同步执行);
      }
  }
};

五、注意事项
  • 关服操作:请使用sync stop命令先踢出玩家,让玩家都同步后再关闭服务器,否则会让玩家处于意外退出状态,此时为保证同步,玩家只能先登录到此服务器。
  • 任何数据敏感操作前务必备份存档。推荐我的背包备份导入导出插件:WnBagBackup
  • WS协调服务端(CoordinationWss)下的playerSyncTemp.json是玩家同步状态缓存,如果WS协调服务端启动时无意外退出的玩家,那么说明所有玩家都已同步到主服。在有需要时,此文件可酌情删除,甚至可以安全卸载本跨服插件。
synclogic.png

wss.png


wsc.png
  • 喜欢
反馈: ender的罗小黑
作者
10_27
价格
240金粒
下载
36
查看
1,298
首次发布
最后更新

评分

0.00 星 0 次评分

10_27 的其他资源

后退
顶部 底部