ElementSync 群组服系统

Other ElementSync 群组服系统 2.6

Source of resources
Original
Copyright link
#
Language
Chinese(Simplified)
Supported version
  1. The latest version

远古资源,年久失修,源码丢失,请勿下载。

1647355269980.png

ElementSync 群组服系统
©2019-2022 StarElement Dev


跨服聊天、经济同步、物品同步、网页面板、跨服传送、群服互通、QQ绑定、自助白名单、崩服重启、称号系统、排行榜系统、状态监控、数据统计、地图备份、跨服封禁等,总有你喜欢的功能!

欢迎进群交流 点击加入


ElementSync群组服系统可以将您的多个MCBE服务器组合起来,实现数据互通、玩家可自由跨服,并且支持Nukkit、BDS混搭!各服务器间使用DES算法加密通信,以保证数据安全性。ElementSync软件包包含LiteXLoader插件、Nukkit插件、Bedrock Dedicated Server启动器等一系列软件。
此项目最早源自 星元StarElement 服务器于2019年底开发的群服互通程序,起初仅供服务器内部使用,后经过多次迭代重构,功能逐渐完善,现已对外发布!
WaterdogPENemisys等群组服软件不同的是,ElementSync不会转发任何游戏数据包,无法做到无缝跨服,玩家仍需要使用原服务器端口加入游戏,ElementSync只负责游戏内容的同步,可以搭配上述软件使用。



目录
概述

功能
安装与使用
补充说明
其他


文件列表
软件包内包含以下文件/文件夹:

文件名说明
www/面板静态网站文件
ElementServer.jarBDS启动器
ElementSync.jar群组服核心服务器
ElementSync.lxl.jsLiteXLoader插件
ElementSyncNK.jarNukkit插件
go-cqhttp.exego-cqhttp机器人框架


名词解释
在阅读本文前,请先查看以下名词解释,以下词语可能在文中经常提及。

名词说明
群组/群组系统指由众多MCBE服务器组成的服务器群组,包含一个核心服务器和多个节点服务器,群组内聊天、末影箱、存款、称号、白名单等数据互通。
核心服务器指通过ElementSync.jar文件启动的服务,负责对接面板、机器人以及各节点服务器数据中转等,此服务器离线时,群组内聊天等功能将不可用,但服务器不会崩溃。
节点服务器指加入群组系统的各MCBE服务器实例,各节点服务器间聊天、白名单等数据同步。当核心服务器离线或不可用时,节点服务器每10秒尝试发起重连,直到成功建立连接。
服务器名指节点服务器加入群组时使用的名称,由各节点自主设置,必须全局唯一,是各节点服务器间进行区分的唯一标记。
Token指节点服务器加入群组时使用的令牌,同时也是节点间通信的DES密钥,同一群组内token一致,为了安全起见请不定期更换token。
群组白名单指保存在核心服务器上的玩家白名单,将阻止白名单以外的玩家加入任何一个节点服务器。节点服务器自身的白名单优先级高于群组白名单,即不会影响MCBE服务器的原有的白名单。
群组黑名单指保存在核心服务器上的玩家黑名单,将阻止黑名单中的玩家加入任何一个节点服务器。节点服务器自身的黑名单优先级高于群组黑名单,即不会影响MCBE服务器的封禁系统。



简介
ElementSync系统使用传统C/S结构搭建,核心服务器作为服务端,进行数据处理和转发,各MCBE节点服务器作为客户端。各节点只与核心服务器连接,节点间通信由核心服务器转发,当核心服务器离线时,节点将每10秒尝试发起重连。
系统设计之初为StarElement内部使用,目前无开源计划,且API部分设计较为。部分功能为适配服情而设计开发,功能性可能不适合一些服务器的情况。




功能差异
ElementSync群组目前支持BDS与Nukkit服务端,并支持混搭。由于两种核心的特性不同,所以支持的功能也有所不同。在系统设计时,将BDS作为生存服务器使用,Nukkit作为大厅、小游戏服务器使用。具体功能参见下表。

功能BDSNukkit
聊天互通支持支持
经济系统(存款)支持不支持
末影箱互通支持不支持
跨服传送支持支持
次元聊天(群服互通)支持支持
网页控制台支持支持
系统负载监控支持支持
崩服重启支持不支持
群组白名单支持支持
群组黑名单支持支持
在线时长统计支持支持
挖掘数量统计支持不支持
活跃度统计支持支持
称号系统支持支持
天气锁定不支持支持
禁止攻击(打人)不支持支持
模式锁定不支持支持
进服自动回城
不支持支持




跨服聊天
玩家可以与在不同节点服务器上的玩家无缝交流,服务器内的聊天内容会被自动同步到群组内所有节点服务器。




次元聊天
启用QQ机器人功能后,在服务器内发送以"~"开头的聊天内容,将会被机器人转发到QQ群中,同样,在QQ群中发送以"~"开头的消息将被转发到服务器中。这个名字源自 星元StarElement 服务器早期的群服互通程序,沿用至今。
1642084649569.png

1642084623348.png

注意事项:

  • 无需区分全角符号" ~ "与半角符号" ~ "。
  • 在群内发送次元消息需绑定Xbox ID。详情见下文QQ机器人


经济系统
ElementSync的经济同步以银行存款的形式实现,基于LLMoney经济核心。可以在服务器中打开银行界面,进行存款操作,并可以在任意节点服务器上进行提款。只有银行存款会计入经济排行榜。此功能只能在BDS服务器上使用。
命令:

  • /bank (打开银行UI界面)
1642084285470.png



跨服传送
支持全GUI操作的跨服传送系统,玩家可以在群组中各个节点服务器间自由传送。并且,每个节点服务器支持配置多个连接地址。
命令:

  • /tran (打开节点服务器列表)
  • /tran <服务器名> (打开服务器连接地址列表,如果目标服务器有且仅有一个连接地址,将直接发起传送)
1642084331011.png

1642084492392.png



称号系统
支持同步的玩家称号系统,玩家称号将在聊天、次元聊天时显示。给予玩家称号须在网页面板进行操作。



物品同步
由于系统设计时目标为星元服务器内部使用,所以根据星元服情物品同步使用跨服末影箱实现。群组中的所有BDS服务器的末影箱均可互通。
注意事项:

  • 如果在旧存档启用末影箱同步功能,存档原末影箱中的物品将消失。


排行榜
游戏中计入统计的数据共有3个榜单:在线时长、存款、挖掘方块数量。可通过QQ机器人查看榜单,详情参见QQ机器人



以下内容为群组服系统内各个软件的安装与使用,笔者默认您掌握安装和使用各种核心、加载器、插件的能力,以及知道如何运行Java程序和网站。涉及到以上的基础操作,本文中不再赘述。

注意事项: 2.5版本更新加密算法为AES256,在部分Linux系统上(如CentOS)由于jvm默认的熵池可能会因缺少系统噪声而阻塞进程,导致服务器间通信延迟极高。因此在Linux系统上运行时建议添加 -Djava.security.egd=file:/dev/urandom 启动参数。例如: java -jar -Djava.security.egd=file:/dev/urandom ElementSync.jar


核心服务器 ElementSync
ElementSync服务是整个群组服系统的核心,负责存储玩家部分数据、转发节点服务器信息等,并连接网页面板和QQ机器人。该服务离线时群组内服务器将无法交换数据,面板和QQ机器人将不可用,但不会引发崩服。

运行环境:

  • Java8_166或更高版本
主体文件:
  • ElementSync.jar
配置文件:
  • config.ini
使用方法:
  • 首次启动时将生成配置文件并解压面板网站文件。需关闭服务端修改配置文件后再次启动。配置文件中带有详细的注释,按照说明填写即可。
注意事项:
  • 首次启动时软件将尝试调用系统命令自动解压网站文件,如果系统缺失相关命令将自动解压失败,此时需要手动将www/文件夹复制到核心服务器根目录。
  • 上条中的解压命令在Windows系统时为tar,在Linux系统时为unzip。
  • 如果主机带宽较低,访问面板可能有较大延迟,面板可配合CDN使用。
文件结构:
文件名称说明
active/记录每日活跃玩家数据的文件夹
data/保存玩家存款、在线时长、称号等数据的文件夹
enderChest/保存玩家末影箱数据的文件夹
logs/系统日志
panel/面板用户数据
www/面板网页文件
config.ini主配置文件
xbox.json玩家Xbox与QQ号的绑定数据



BDS启动器 ElementServer
通过ElementServer启动器使用BDS,可以远程查看控制台并输入命令,并支持监控系统负载、备份地图、崩服重启。需搭配ElementSync-LXL插件使用。

运行环境:

  • Java8_166或更高版本
主体文件:
  • ElementServer.jar
配置文件:
  • config.ini
  • address.ini
使用方法:
  • 将主体文件放入BDS服务器根目录后启动。
  • 首次启动时将生成配置文件,需关闭启动器修改配置文件后再次启动。配置文件中带有详细的注释,按照说明填写即可。address.ini的编写方式请参考 配置文件: address.ini
注意事项:
  • 启动器支持在安装了wine的Linux系统上启动Windows版BDS,此时需要将config.ini文件中的启动命令修改为wine命令。
  • 备份功能使用系统命令tar实现,如果系统中缺失该命令,备份功能将不可用。
  • 关服时不要直接点击X关闭窗口,否则内部BDS进程不会结束。

文件结构:
文件名称说明
backups/保存地图备份的文件夹
config.ini主配置文件
address.ini跨服传送地址配置文件

命令系统:
命令说明
backup备份地图数据,只能在BDS关闭时使用
start启动BDS
exit退出启动器
  • 其他命令会被直接输入到BDS控制台


LXL插件 ElementSync-LXL
此插件负责BDS端游戏内容的同步,如聊天、末影箱、存款等,需搭配ElementServer启动器使用。

运行环境:

  • LiteXLoader 0.5.8或更高版本
主体文件:
  • ElementSync.lxl.js
配置文件:
  • 无,相关设置通过ElementServer获取,无需手动设置。
使用方法:
  • 放入BDS的plugins/文件夹,将插件安装即可。
注意事项:
  • 需配合ElementServer启动器使用,单独安装无效果。


Nukkit插件 ElementSync-NK
此插件负责NK端游戏内容的同步,如聊天、末影箱、存款等。可单独使用。
运行环境:

  • Java8_166或更高版本
  • Nukkit API 1.0.0或更高版本
主体文件:
  • ElementSyncNK.jar
配置文件:
  • config.ini
  • address.ini
使用方法:
  • 放入NK端plugins/文件夹即可。首次启动时将生成配置文件,需关闭服务器修改配置文件后再次启动。配置文件中带有详细的注释,按照说明填写即可。address.ini的编写方式请参考 配置文件: address.ini


网页面板 ElementSync-Panel
可以通过网页面板来同一管理游戏数据、监控运行状态、修改玩家信息,并支持网页访问服务器控制台,无需登录远程桌面或SSH即可管理群组内所有服务器。
截图:
1641990751087.png

1642084809429.png

运行环境:

  • ElementSync 2.0及更高版本或任意WEB程序。
主体文件:
  • www/
配置文件:
  • www/include/auth.js
使用方法:
  • ElementSync服务器内置http服务,在配置文件中开启http功能即可。
访问面板:
  • http://[ElementSync核心服务器IP]:[http端口]/login.html
面板账户:
  • 面板的账户数据保存在ElementSync服务器根目录的panel/文件夹中。
  • 创建用户:在文件夹中新建'用户名.usr'文件,并在文件内写入密码。
  • 默认所有的用户都是管理员,拥有操作面板的所有权限。
注意事项:
  • 如果ElementSync服务修改了端口号(非默认),同样需要修改www/include/auth.js文件中第4行的端口。


QQ机器人
运行环境:

  • 支持onebot11标准的机器人框架。
主体文件:
  • 软件包内带有Winodws版本的go-cqhttp框架,用户可以自行选择其他版本或兼容onebot11标准的机器人框架。
安装方法:
  • 机器人的安装使用方法请自行搜索。
  • 编辑ElementSync核心服务器的配置文件,将机器人地址修改为已搭建好的机器人的正向WebSocket服务器地址。
注意事项:
  • 将ElemetSync系统连接到机器人前,请先检查机器人的可用性(是否正确登录、账号是否被风控、机器人是否在群里,是否开启了正向WebSocket服务)。
  • 由于腾讯可能随时暗改协议,无法保证此包内机器人框架的可用性,如果无法使用请自行下载最新版本。
功能:
在群内发送对应的关键词,即可使用相关功能

关键词示例功能说明所需权限
在线在线机器人将返回群组服内在线玩家的信息,包括当前在线总人数、所在的节点服务器、在线玩家的名称。群员
绑定 + Xbox ID绑定 Ruok2333将玩家的QQ号与Xbox ID绑定,已经绑定过的Xbox ID或QQ号禁止重复绑定群员
以"~"开头的聊天内容~OK兄弟们,全体目光向我看齐奥。此聊天内容将被发送到群组服内,所有节点服务器内的全部玩家都可以读到此条信息。在游戏内使用此方法,同样可以将服内信息转发到群里已绑定账号的群员
个人信息个人信息机器人将返回玩家信息,包括Xbox ID、在线时长、存款、肝帝指数、称号等已绑定账号的群员
经济榜经济榜、土豪榜机器人将返回玩家存款排行榜的前10位玩家群员
时长榜时长榜、摸鱼榜机器人将返回玩家在线时长排行榜的前10位玩家群员
挖掘榜挖掘榜、肝帝榜机器人将返回玩家挖掘数量排行榜的前10位玩家群员
解绑解绑解除玩家Xbox ID与QQ号的绑定,并移出群组白名单已绑定账号的群员
退群动作解除玩家Xbox ID与QQ号的绑定,移出群组白名单,并将退群信息发送到群里群员
状态状态机器人将返回各节点服务器的在线人数、运行状态、系统负载等信息在聊天转发群中的群员



配置文件 address.ini
此文件中保存了节点服务器的连接信息,是从其他节点传送到此节点的时使用的游戏地址集合,以ini/properties的键值对格式编写(key=value),连接名=连接地址。考虑到存在NAT、内网穿透等多个连接地址第情况,所以支持填写多个地址。存在多个地址时每行一个。
示例:
INI:
电信A线=dx1.example.com:19132
电信B线=dx2.example.com:19133
联通C线=lt.example.com:25565
BGP多线=bgp.example.com:65535

注意事项:

  • 键(连接名)可以使用§颜色代码,但 值(连接地址)不可以。
  • 应确保所有的连接地址都可以正常加入游戏。
  • 应确保所有的连接地址都指向此节点服务器。


Q/A
A:可以,网页面板全部为静态文件,可以使用任意的WEB程序且无需在同一主机上。需要注意的是,使用其他WEB程序时需要修改include/auth.js中第4行的连接地址为核心服务器地址。
A:每个节点只与核心服务器通信,节点间数据通过核心服务器转发,所以除了必要的游戏端口外,无需开放其他端口。
A:可以,只要网络能连接到核心服务器即可,甚至无需公网IP。
A:不可以,BDS服务端只安装ElementSync-LXL插件是没有任何效果的,需要配套使用。
A:在任何操作系统上配置文件都是以UTF-8编码的,请尝试用UTF-8保存所有的配置文件,如果问题仍然存在,再尝试使用其他编码格式。
A:不可以,软件设计之初并未考虑这种情况,服务器必须通过ElementSync服务来连接面板和机器人,只有一个服务器使用仍然需要搭建群组系统。
A:和使用Nukkit一样,下载并安装Java,使用java -jar 文件名 启动软件。
A:这大概率是由于WebSocket没有连接导致的,可以按F12查看控制台上的具体报错信息。需要注意的是,如果你修改了核心服务器的端口(非默认2233),或者端口是通过映射/内网穿透暴露在公网上的,需要按照上文中面板注意事项中的方法修改网页文件。
A:可以使用任意节点服务器的地址进入游戏,哪个服务器作为大厅使用,取决于您告知玩家们哪个服务器的地址。


技术支持
作者对正常使用、BUG等问题提供免费指导帮助。如需代替部署、安装更新等请见增值服务


License


私货
1642417907567.png
Author
Ruok
Downloads
1,333
Views
7,236
First release
Last update
Rating
5.00 star(s) 13 ratings

Resource team

More resources from Ruok

Share this resource

Latest updates

  1. 2.6更新(2.22/7/26)

    修复minecraft 1.19.x版本频繁断线的问题
  2. 2.5更新(2022/5/22)

    ALL 修改加密算法为AES256 支持最新版本Java 取消支持1.8_161以下版本Java ElementServer.jar 修复了无法打印BDS的标准错误流(Stderr)的问题。
  3. 2.4更新(2022/3/15)

    ElementSync.jar 修复了某些情况下QQ机器人状态指令失效的问题. ElementSyncNK.jar 修复了玩家传送时控制台报错的问题.

Latest reviews

非常好用!
食用方法很少有作者写得那么详细了
并跳转不了QQ群
能不能出一个保姆级教程,小白表示不会用qwq
如何添加玩家QAQ,网页上没有找到入口
Ruok
Ruok
需要玩家自己在QQ群里通过机器人绑定
功能齐全的群组服系统!稳定易用!
所以说在哪下载外链没有啊
Ruok
Ruok
外链下载有啊,不跳转的话用这个http://bpm2.cn-sh2.ufileos.com/ElementSync-v2.4.zip