前言

本教程只对部分有疑问或者使用相对麻烦一点的功能做出讲解,其他大部分的功能是很傻瓜式的操作,不过如果您还是有疑惑可以再下方评论区说出来,或者进入用户群:702055554

部署教程

本文章主要讲解使用教程,如果需要部署教程请跳转此文章:

使用教程

1.远程服务器添加

RCON配置步骤

​进入服务器管理系统界面

打开服务器管理系统,点击服务器信息选项。
找到需要配置的服务器,点击“修改”或“新增”按钮。

​填写服务器基本信息
​服务器名称:输入服务器的名称(例如“本地测试”)。
​服务器IP:填写服务器的IP地址(例如127.0.0.1或play.yousb.sbs)。
​启用状态:选择“启用”或“停用”。

​配置RCON相关参数
​RCON地址:填写服务器的IP地址(与“服务器IP”一致)。

注意:如果您的服务器IP使用的SRV隐藏端口号解析,不可以填写在RCON远程地址里,此输入项只支持纯IP解析或者普通域名,比如A类解析 或者 AAAA 或者 CNAME等可以直接ping出地址的解析!

​RCON端口:填写RCON服务的端口号(默认是25575,但可以根据需要修改)。
​RCON密码:设置一个强度较高的密码。
​描述:可选项,填写服务器的描述信息。

RCON配置失败的可能原因及检查方法

如果RCON配置失败,可能是以下原因导致的,请逐一排查:

​RCON服务未启动
确保Minecraft服务器的RCON功能已启用。
检查server.properties文件,确认以下参数已正确设置:

enable-rcon=true
rcon.port=25575
rcon.password=your_password

重启服务器以使配置生效。

网络连接问题
检查服务器与客户端之间的网络连接是否正常。
使用ping命令测试服务器IP地址是否可达。
确保防火墙或路由器未阻止RCON端口(默认25575)。
​IP地址、端口或密码错误

检查输入的IP地址、端口号和密码是否与server.properties文件中的配置一致。
确保密码没有拼写错误,并且区分大小写。
​服务器核心不支持RCON
某些Minecraft服务器核心可能不支持RCON功能。
确保使用的服务器核心(如Paper、Spigot、Bukkit等)支持RCON。

​权限问题
确保当前用户有权限访问RCON功能。
检查服务器日志,查看是否有权限相关的错误信息。

检查方法

点击终端按钮,如果连接成功就会出现以下字样,可以尝试发送命令 seed 查看是否有返回结果。
QQ20250324 014750

2.添加服务器指令

白名单的申请逻辑是 添加远程RCON服务器 -> 玩家前端填写信息 -> 后端管理审核 -> 通过审核发送指令添加并记录.
后台管理审核这一步就引出了一个新的功能项,如果添加好RCON服务器后不可以直接使用白名单审核功能,需要配置以下最为关键的一项,那就是指令管理.
我们都知道白名单添加指令是 whitelist add xxx,那么这是针对正版服务器或者针对官方指令的操作方式,有很大一部分人不是官方服务器或者是离线服务器,正常来讲 whitelist add 这个指令只能针对于正版服,如果是离线是不通用或者是失效的。
这个时候额外的白名单插件、mod 就尤为重要,比如fabric核心或者插件服,可以引入 easywhitelist,这个插件的作用就是让白名单不论在正版或者离线的状态下都判断用户的ID,而不是UUID。
但是很多插件比如easywhitelist他们的白名单指令并不是 whitelist add 这种官方指令,是专属自己的指令,这个时候指令管理就尤其重要,这是百分百兼容所有服务端核心的重要杀手锏!

指令配置方法

左侧菜单栏,选则 指令管理新增
指令管理

这里的指令不需要和我一样,设置你自己服务器的指令即可,如果你就是纯属官方正版服,那么指令示例为:

whitelist add {player}
whitelist remove {player}
ban {player}
pardon {player}

以上四条不管是正版还是离线统一添加上面即可
如果是Fabric端,您可以添加easywhitelist,这个插件可以默认开启 正版/离线 混合服务器,此系统原生支持此插件。

EasyWhitelist百科:https://www.mcmod.cn/class/9265.html

格式示例:

whitelist add {player}
easywhitelist add {player}
ban {player}
easyban {player}

含义解释:这里的 {player} 作为系统占位符,用来替换指令的玩家ID
系统服务层替换逻辑代码:

        // 使用 Map 存储命令映射关系
        Map<String, CommandReplacer> commandMap = new HashMap<>();
        commandMap.put(Command.WHITELIST_ADD_COMMAND,
                (cmd) -> onlineFlag ? info.getOnlineAddWhitelistCommand() : info.getOfflineAddWhitelistCommand());
        commandMap.put(Command.WHITELIST_REMOVE_COMMAND,
                (cmd) -> onlineFlag ? info.getOnlineRmWhitelistCommand() : info.getOfflineRmWhitelistCommand());
        commandMap.put(Command.BAN_ADD_COMMAND,
                (cmd) -> onlineFlag ? info.getOnlineAddBanCommand() : info.getOfflineRmBanCommand());
        commandMap.put(Command.BAN_REMOVE_COMMAND,
                (cmd) -> onlineFlag ? info.getOnlineRmBanCommand() : info.getOfflineRmBanCommand());

        boolean isMatch = false;
        for (Map.Entry<String, CommandReplacer> entry : commandMap.entrySet()) {
            if (command.startsWith(entry.getKey())) {
                isMatch = true;
                String player = command.substring(entry.getKey().length()).trim();
                String template = entry.getValue().replace(command);
                command = template.replace("{player}", player);
                log.info("替换命令成功:{} -> {}", key, command);
                break;
            }
        }

以上为此功能大致介绍,如果你的服务器使用的不是easywhitelist,只需要替换成你自己使用的对应离线验证白名单的插件、mod 的指令内容即可。

3.QQ群机器人添加

注意:本管理系统项目目前适配的机器人框架只有 NapCat ,虽然这个也是基于OneBot协议,但是他的WS通讯消息格式并不通用,后面会适配其他框架。

关于NapCat使用及安装请移步:

如果上面已安装部署完成,进入Napcat后台管理界面,默认token是napcat,进入后在左侧 网络配置 分别添加一个 HTTP服务器 以及 WebSocket服务器

image

image

image

WS服务器的消息格式必须选则String类型,默认Array,WS与HTTP服务器的token秘钥必须一致!

添加完成之后需要和RCON一样必须确保30003001端口防火墙对外开放!如果你设置的其他端口一个道理。
接着去管理后天的机器人管理添加一个机器人

QQ20250324 015310

HTTP服务器和WS服务器需要携带 http://ws:// 协议头,命令前缀可以自定义,就是跟机器人对话的前缀,不能为空!例如 /help

3.高阶功能

白名单同步

如果添加了新的服务器,或者由于网络和服务器各种问题导致的白名单添加失败,这个时候同步白名单的功能就发挥重要的作用,作为后备容余功能。
如何配置?
在左侧菜单依次选则 系统监控->定时任务
定时任务

这里系统自带了很多定时任务,切记!除了白名单同步,其他的如果你不知道自己在做什么 不要动!不要动! 不要动!

如果你有且仅有一个服务器,那么选则同步功能,点击修改:
白名单同步任务
后面的 ('3') 这里的3指的是你添加的远程服务器的ID,如何知道自己的服务器ID?

服务器ID

知道了你的ID之后,定时任务方法里的('3') 数字3更改为你自己的服务器ID即可,比如你的ID是5那么就是 ('5')
如果你有多个服务器?重点来了!

新增一个定时任务
任务名称可以自定义,分组默认即可,重点是调用方法:
和上面的一样,直接复制下来:

whiteListTask.syncWhitelistByServerId('3')

后面的数字3改成你的服务器ID即可,CRON表达式可以跟上面的错开1分钟,比如上面是 30 1 0/1 ? 新的可以写 30 2 0/1 ?
意思就是每1个小时的第2分第30秒执行,当然你可以自定义让他执行频率更高,但是这个地方不可以是整数!

最后修改:2025 年 04 月 10 日
如果觉得我的文章对你有用,请随意赞赏