koishi-plugin-mcsmanager-custplugin
v0.2.11
Published
基于Mcsmanager面板的服务器实例管理插件
Downloads
173
Maintainers
Readme
koishi-plugin-mcsmanager-custplugin
基于Mcsmanager 9 面板的服务器实例管理插件 (部分兼容Mcsmanager 10)
CHANGELOG
v0.2.11
修复
- 使用QQ官方机器人时无法发送消息的问题
v0.2.10
新增
- 检测待添加的用户名是否为合法的MC玩家ID
v0.2.9
修复
- 本插件无法在指令管理界面设置别名和等级权限的问题
修改
- 修改触发指令
#服务器
为面板
- 子命令的重命名与等级设置均交予指令管理界面进行设置,仅在插件设置中保留触发命令的别名
- 精简插件设置
v0.2.8
修复
- 插件无法启动的问题(开发环境下没查出来)
v0.2.7
修复
- 添加玩家至全局白名单中的冲突问题
修改
- 数据库表名由
mcsmanager-custplugin.global.whitelist
改为mcsmanager_custplugin.global.whitelist
v0.2.6
修复
- 获取实例白名单时获取不到正确玩家人数和玩家列表的BUG(正则没写全是这样的)
- 执行MC指令时指令前缀缺失的问题
新增
- 全局白名单数据库
- 全局白名单同步到指定实例/全体实例
v0.2.5
修改
- Koishi的权限系统消息提示由自定义消息提示改为官方消息提示
- 完善日志显示(匹配Koishi终端格式,以
mcsm
开头) - 修改操作为子指令,以适配Koishi官方操作
- 修改白名单内部操作为白名单子指令,以适配Koishi官方操作
(均支持
点操作
调用和空格操作
调用) 例如:面板.开启 = 面板 开启 = 服务器 开启 = 服务器.开启
v0.2.4
新增
实例白名单命令,拥有如下子命令
- 开启
- 关闭
- 添加 <玩家名称>
- 移除 <玩家名称>
- 列表
- 重载
实例白名单插件相关设置入口
判断实例的白名单是否启用功能
v0.2.3
新增
- Markdown文档内添加更新日志
修复
- 为兼容Mcsm10舍弃正则表达式导致
列表
命令无法使用 - 实例假死时导致 玩家列表 功能无法正常使用
v0.2.2
新增
- Mcsmanager 10 查询实例列表的 API
- Mcsmanager 10 兼容开关
修改
- 插件描述更改为基于 Mcsmanager 9,部分兼容Mcsmanager 10
- 尝试兼容Mcsmanager 10的实例列表展示功能
- 玩家列表 功能舍弃正则匹配转用简单切片取值
修复
日志
命令输出乱码日志
v0.2.1
修改
- 拆分整个插件为三个部分:设置、工具、插件核心,方便维护
v0.2.0
新增
- 插件设置界面 列表命令时是否显示Uuid
- 插件设置界面 列表命令时是否显示实例IP地址
- 插件设置界面 列表命令时是否显示实例域名地址
v0.1.10
新增
- 插件设置界面 每个二级命令可以设置别名
修复
- 插件设置界面的默认值无法被插件识别造成程序出错
v0.1.9
修改
- 优化插件设置界面
- 插件设置按命令分组
- 每个命令分组具有独立开关,未开启时尝试使用命令将会提示
- 标记 尝试显示玩家列表 功能为实验性功能
v0.1.8
修改
- 启用 尝试显示玩家列表 功能时在线人数和最大人数将与列表同步
v0.1.7
新增
- 尝试显示玩家列表 功能,尝试模拟RCON拉取玩家列表
- 插件设置界面 尝试显示玩家列表,默认关闭
v0.1.6
新增
执行
命令,可对目标实例发起执行指令操作日志
命令,可拉取目标实例的最新的日志,默认10行
v0.1.5
新增
- 引入Koishi权限系统
- 插件设置界面 每个命令添加了默认最小权限等级,可自行调整
v0.1.4
新增
- 插件设置界面 自定义启动命令
- 为列表命令添加了快捷命令
面板列表
v0.1.3
新增
- 插件设置界面 显示实例的完整Uuid开关
- 插件设置界面 显示实例的人数信息开关
v0.1.2
移除
- Jsonpath-plus库
v0.1.1
新增
- 此Markdown文档及其说明
修改
- help的帮助信息
- 支持通过实例名称对服务器实例进行相关操作
v0.1.0
发布
- 支持查询当前的服务器实例列表
- 支持通过uuid对服务器实例进行重启、开启、关闭、强制关闭操作
- 支持插件设置内填入所需参数
Command
HelpMenu
以下是两个帮助示例
面板 -h
>> 面板 -h
指令:面板
别名:面板。
可用的子指令有:
面板 关闭
面板 列表
面板 开启
面板 强制关闭
面板 执行
面板 日志
面板 白名单
面板 重启
面板 白名单 -h
>> 面板 白名单 -h
指令:面板 白名单
别名:面板.白名单,面板 白名单。
目标实例的白名单设置
可用的子指令有:
面板 白名单 关闭
面板 白名单 列表
面板 白名单 开启
面板 白名单 添加
面板 白名单 移除
面板 白名单 重载
Alias -> Cust CommandName
面板 <操作> <实例名称>
<custCommandName> <操作> <实例名称>
( <custCommandName>
缺省值: 服务器 )
>> 面板 重启 喷气背包猫
服务器实例 [喷气背包猫]
于 [2024-06-13 11:45:14]
重启成功
>> 面板 重启 喷气背包猫 // 此时 custCommandName 为 '面板'
服务器实例 [喷气背包猫]
于 [2024-06-13 11:45:14]
重启成功
Alias -> Fast Command
重启服务器
( 快速重启 InitServerName
实例 )
>> 重启服务器
服务器实例 [喷气背包猫]
于 [2024-06-13 11:45:14]
重启成功
面板列表
( 快速查看面板实例列表 )
>> 服务器列表
名称:喷气背包猫
Uuid:b940******88a0
版本:1.16.5 [运行]
人数:0 / 10
Warning
使用插件前,先填写并设置好所需信息
基础设置
以下5个插件前端基础信息,均为必填
baseUrl
目标Mcsmanager面板的网址。(一般端口:23333)remoteUuid
( 也称DaemonId
或GID
或节点ID
) 目标Mcsmanager面板的守护id。initUuid
( 也称InstanceId
或UID
或实例ID
) 缺省实例的Uuid。( 需要与下述initServerName对应 )initServerName
缺省实例的名称。 ( 需要与上述initUuid对应 )apiKey
管理员 / 用户 的Token
。
上述信息均可以通过Mcsmanager面板控制台或者浏览器抓包获得!
额外设置
此外,还包含1个选填的插件自定义启动的命令
custCommandName
( 缺省值:面板 )
>> 面板 列表
>> <custCommandName> 列表
命令设置
此插件为每条指令引入开关与Koishi权限系统 可简单设置指令的开启关闭和使用权限等级
[ 列表 ] 设置
enabledList
是否启用 <列表> 指令。 ( 缺省值:关闭,若要使用请 设定为开启并保存设置 )
~~8. custShowListCmdAlias
~~
~~指令 <列表> 的别名。~~
~~( 缺省值:列表 )~~
~~9. showListLevel
~~
~~使用指令 <列表> 所需的最低权限等级。~~
~~( 缺省值:1 )~~
isShowAddress
查看服务器列表时是否显示实例地址 ( 带端口 ) 。 ( 默认 关闭 )isTryReplaceIp
[ 实验性功能 ] 服务器地址若显示为内外IP,可尝试用域名替换IP。 ( 默认 关闭 )
>> 面板 列表
名称:喷气背包猫
版本:1.16.5 [运行]
人数:0 / 10
>> 面板 列表
名称:喷气背包猫
地址:192.168.1.100:25565
版本:1.16.5 [运行]
人数:0 / 10
>> 面板 列表
名称:喷气背包猫
地址:example.com:25565
版本:1.16.5 [运行]
人数:0 / 10
isShowUuid
查看服务器列表时是否显示实例Uuid。 ( 默认 关闭 )isShowFullUuid
查看服务器列表时是否显示完整实例Uuid。 ( 默认 关闭 :即仅显示 XXXX******XXXX,安全且美观 )
>> 面板 列表
名称:喷气背包猫
版本:1.16.5 [运行]
人数:0 / 10
>> 面板 列表
名称:喷气背包猫
Uuid:b940******88a0
版本:1.16.5 [运行]
人数:0 / 10
>> 面板 列表
名称:喷气背包猫
Uuid:b940295358c943c4844cc9d53fd788a0
版本:1.16.5 [运行]
人数:0 / 10
isShowPlayerCount
查看服务器列表时是否显示服务器人数信息。 ( 默认开启:若服务器在运行,则显示 在线人数 / 最大人数 )
>> 面板 列表
名称:喷气背包猫
Uuid:b940******88a0
版本:1.16.5 [运行]
人数:0 / 10
>> 面板 列表
名称:喷气背包猫
Uuid:b940******88a0
版本:1.16.5 [运行]
isShowPlayerList
[ 实验性功能 ] 查看服务器列表时是否显示服务器玩家列表。 ( 默认关闭:若服务器在运行且有玩家在线,尝试显示玩家列表,并计算新在线人数) PS: 这是一种新尝试,尝试模拟RCON,理论上在线人数获取速度和准度均较面板API优越
>> 面板 列表
名称:喷气背包猫
Uuid:b940******88a0
版本:1.16.5 [运行]
人数:2 / 10
玩家:Aegiszhy, huazhongxian
isCompatibleWithMcsm10
[ 实验性功能 ] 列表显示异常时,且使用的是Mcsmanager10时,可尝试开启。 ( 默认关闭 )
>> 面板 列表 // Mcsm10时列表异常的状态
名称:FORGE_1.20.1
地址:未设置相关地址
Uuid:7665******7038
版本:无法获取 [未运行]
人数:-1 / -1
>> 面板 列表 // 尝试兼容Mcsm10的结果
名称:FORGE_1.20.1
地址:未设置相关地址
Uuid:7665******7038
版本:未知 (MCSM10?) [运行]
人数:2 / 20
玩家:Aegiszhy, huazhongxian
[ 重启 ] 设置
enabledRst
是否启用 <重启> 指令。 ( 缺省值:关闭,若要使用请 设定为开启并保存设置 )
~~18. custRstCmdAlias
~~
~~指令 <重启> 的别名。~~
~~( 缺省值:重启 )~~
~~19. restartLevel
~~
~~使用指令 <重启> 所需的最低权限等级。~~
~~( 缺省值:1 )~~
[ 开启 ] 设置
enabledStart
是否启用 <开启> 指令。 ( 缺省值:关闭,若要使用请 设定为开启并保存设置 )
~~21. custStartCmdAlias
~~
~~指令 <开启> 的别名。~~
~~( 缺省值:开启 )~~
~~22. startLevel
~~
~~使用指令 <开启> 所需的最低权限等级。~~
~~( 缺省值:2 )~~
[ 关闭 ] 设置
注意:使用此命令时请将Mcsmanager内的 关闭实例命令
设置为^C否则当前实例会变成假关闭并卡死,需要手动去Mcsmanager才能操作
enabledStop
是否启用 <关闭> 指令。 ( 缺省值:关闭,若要使用请 设定为开启并保存设置 )
~~24. custStopCmdAlias
~~
~~指令 <关闭> 的别名。~~
~~( 缺省值:关闭 )~~
~~25. stopLevel
~~
~~使用指令 <停止> 所需的最低权限等级。~~
~~( 缺省值:2 )~~
[ 强制关闭 ] 设置
enabledKill
是否启用 <强制关闭> 指令。 ( 缺省值:关闭,若要使用请 设定为开启并保存设置 )
~~27. custKillCmdAlias
~~
~~指令 <强制关闭> 的别名。~~
~~( 缺省值:强制关闭 )~~
~~28. killLevel
~~
~~使用指令 <强制停止> 所需的最低权限等级。~~
~~( 缺省值:2 )~~
[ 执行 ] 设置
enabledExec
是否启用 <执行> 指令。 ( 缺省值:关闭,若要使用请 设定为开启并保存设置 )
~~30. custSendCmdAlias
~~
~~指令 <执行> 的别名。~~
~~( 缺省值:执行 )~~
~~31. sendCmdLevel
~~
~~使用指令 <执行> 所需的最低权限等级。~~
~~( 缺省值:4 )~~
[ 日志 ] 设置
enabledLog
是否启用 <日志> 指令。 ( 缺省值:关闭,若要使用请 设定为开启并保存设置 )
~~33. custCmdLogAlias
~~
~~指令 <日志> 的别名。~~
~~( 缺省值:日志 )~~
~~34. cmdLogLevel
~~
~~使用指令 <日志> 所需的最低权限等级。~~
~~( 缺省值:2 )~~
cmdLogLine
使用指令 <日志> 的默认输出行数。 ( 缺省值:10 )
[ 白名单 ] 设置 [ 实验性功能 ]
enabledWhiteList
是否启用 <白名单> 指令。 ( 缺省值:关闭,若要使用请 设定为开启并保存设置 )
~~33. custWhiteListAlias
~~
~~指令 <白名单> 的别名。~~
~~( 缺省值:白名单 )~~
~~34. whiteListLevel
~~
~~使用指令 <白名单> 所需的最低权限等级。~~
~~( 缺省值:4 )~~
isCheckWListStatus
[ 实验性功能 ] 是否显示子命令列表
的检测白名单状态。 ( 缺省值:关闭 )
[ 全局白名单 ] 设置 [ 实验性功能 ]
~~36. enabledGlobalWhite
~~
~~是否启用 <全局白名单> 指令。~~
~~( 缺省值:关闭,若要使用请 设定为开启并保存设置 )~~
~~37. custGlobalWhiteAlias
~~
~~指令 <全局白名单> 的别名。~~
~~( 缺省值:日志 )~~
globalWhiteLevel
使用指令 <全局白名单> 所需的最低权限等级。 ( 缺省值:1 )dbAdministrator
必填 使用指令 <全局白名单> 的管理员账户。writeMode
同步白名单数据库至实例的模式。 ( 缺省值:增量模式 )
Usage
列表 命令
面板 列表
查看当前面板所有的服务器实例信息
显示实例的信息如下:
- 实例名称
- 实例地址 [ 实验性功能:域名替换 ]
- 实例Uuid
- 实例运行版本
- 实例运行状态
- 实例内人数
- 实例玩家列表 [ 实验性功能 ]
>> 面板 列表
名称:乌托邦探险之旅3.1
地址:example.com:25565
Uuid:a281******f07b
版本:1.20.1 [运行]
人数:0 / 20
名称:喷气背包猫
地址:example.com:25566
Uuid:b940******88a0
版本:1.16.5 [运行]
人数:2 / 10
玩家:Aegiszhy, huazhongxian
名称:月亮工厂
地址:example.com:25567
Uuid:2516******7610
版本:无法获取 [未运行]
重启 命令
面板 重启 <实例名称>
针对目标实例发起 重启 操作
( 缺省值:initServerName
)
>> 面板 重启
服务器实例 [喷气背包猫]
于 [2024-06-13 11:45:14]
重启成功
>> 面板 重启 乌托邦探险之旅3.1
服务器实例 [乌托邦探险之旅3.1]
于 [2024-06-13 11:45:20]
重启成功
开启 命令
面板 开启 <实例名称>
针对目标实例发起 开启 操作
( 缺省值:initServerName
)
>> 面板 开启
服务器实例 [喷气背包猫]
于 [2024-06-13 11:45:14]
开启成功
>> 面板 开启 乌托邦探险之旅3.1
服务器实例 [乌托邦探险之旅3.1]
于 [2024-06-13 11:45:20]
开启成功
关闭 命令
面板 关闭 <实例名称>
针对目标实例发起 关闭 操作
( 缺省值:initServerName
)
>> 面板 关闭
服务器实例 [喷气背包猫]
于 [2024-06-13 11:45:14]
关闭成功
>> 面板 关闭 乌托邦探险之旅3.1
服务器实例 [乌托邦探险之旅3.1]
于 [2024-06-13 11:45:20]
关闭成功
强制关闭 命令
面板 强制关闭 <实例名称>
针对目标实例发起 强制关闭 操作
( 缺省值:initServerName
)
>> 面板 强制关闭
服务器实例 [喷气背包猫]
于 [2024-06-13 11:45:14]
强制关闭成功
>> 面板 强制关闭 乌托邦探险之旅3.1
服务器实例 [乌托邦探险之旅3.1]
于 [2024-06-13 11:45:20]
强制关闭成功
执行 命令
面板 执行 <实例名称> <...命令>
针对目标实例发起 执行命令 操作
( 注意:此指令无实例名称缺省,必须指定实例名称 ) ( 注意:此指令无命令缺省,必须指定待发送命令 )
>> 面板 执行 喷气背包猫 say hello
服务器实例 [喷气背包猫]
于 [2024-06-13 11:45:14]
执行命令成功
日志 命令
面板 日志 <实例名称> <输出行数>
针对目标实例发起 获取日志 操作
( 输出行数 -> 缺省值: 10 )
( 注意:此指令无实例名称缺省,必须指定实例名称 )
>> 面板 日志 喷气背包猫 20
>
[11:18:48] [Server thread/INFO] [sereneseasons/]: Season time skipped by 20038250 in minecraft:overworld
> weather clear
[11:18:56] [Server thread/INFO] [minecraft/DedicatedServer]: Set the weather to clear
> say hello
[11:45:13] [Server thread/INFO] [minecraft/DedicatedServer]: [Server] hello
> say hello
[11:45:14] [Server thread/INFO] [minecraft/DedicatedServer]: [Server] hello
>
[12:53:41] [Server thread/WARN] [minecraft/Connection]: handleDisconnection() called twice
>
[12:53:47] [Server thread/WARN] [minecraft/Connection]: handleDisconnection() called twice
>
白名单 命令
开启 子命令
面板 白名单 开启 <实例名称>
针对目标实例发起 开启白名单 操作
>> 面板 白名单 开启 喷气背包猫
服务器实例 [喷气背包猫]
于 [2024-07-09 11:45:14]
白名单 [开启] 成功
>> 面板 白名单 开启 喷气背包猫
请勿重复开启白名单
关闭 子命令
面板 白名单 关闭 <实例名称>
针对目标实例发起 关闭白名单 操作
>> 面板 白名单 关闭 喷气背包猫
服务器实例 [喷气背包猫]
于 [2024-07-09 11:45:14]
白名单 [关闭] 成功
>> 面板 白名单 关闭 喷气背包猫
请勿重复关闭白名单
添加 子命令
面板 白名单 添加 <实例名称> <玩家名称>
针对目标实例发起 添加玩家至白名单中 操作
>> 面板 白名单 添加 喷气背包猫 Steve
服务器实例 [喷气背包猫]
于 [2024-07-09 11:45:14]
白名单 [添加 Steve] 成功
>> 面板 白名单 添加 喷气背包猫 Steve
玩家Steve已存在
移除 子命令
面板 白名单 移除 <实例名称> <玩家名称>
针对目标实例发起 从白名单中移除玩家 操作
>> 面板 白名单 移除 喷气背包猫 Steve
服务器实例 [喷气背包猫]
于 [2024-07-09 11:45:14]
白名单 [移除 Steve] 成功
>> 面板 白名单 移除 喷气背包猫 Steve
玩家Steve不存在
列表 子命令
面板 白名单 列表 <实例名称>
针对目标实例发起 查看白名单玩家列表 操作
>> 面板 白名单 列表 乌托邦探险之旅3.1
名称:乌托邦探险之旅3.1
白名单状态:开启 (共 6 人)
白名单列表:Player1, Player2, Player3, Player4, Player5, Player6
>> 面板 白名单 列表 喷气背包猫
名称:喷气背包猫
白名单状态:关闭 (共 0 人)
白名单列表:[ 无玩家列表 ]
>> 面板 白名单 列表 喷气背包猫
名称:喷气背包猫
白名单列表:[ 无玩家列表 ]
重载 子命令
面板 白名单 重载 <实例名称>
针对目标实例发起 重载白名单 操作
>> 面板 白名单 喷气背包猫 重载
服务器实例 [喷气背包猫]
于 [2024-07-09 11:45:14]
白名单 [重载] 成功
全局白名单 命令
应甲方要求,需要增加一个数据库用于管理群组上的MC玩家(QQ与MCID绑定),并可以使用该功能将数据库内玩家ID同步到一个至多个实例当中。 此功能支持增量同步(已有白名单中进行追加)和覆盖同步(覆盖已有白名单) !!! 此功能为实验性功能,如非必要无需开启 !!!
列表 子命令
面板 全局白名单 列表
>> 面板 全局白名单 列表
群组来源:#
绑定个人:Alice
绑定玩家:Steve
群组来源:#
绑定个人:Bob
绑定玩家:Alex
……
添加 子命令
面板 全局白名单 添加 <玩家名称>
>> 面板 全局白名单 添加 Steve
此功能暂仅支持群聊模式
>> 面板 全局白名单 添加 Steve
添加玩家 [Steve] 成功
>> 面板 全局白名单 添加 Steve
玩家 [Steve] 已被 [Alice] 添加过了
移除 子命令
面板 全局白名单 移除 <玩家名称>
>> 面板 全局白名单 移除 Steve
此功能暂仅支持群聊模式
>> 面板 全局白名单 移除 Steve
移除玩家 [Steve] 成功
>> 面板 全局白名单 移除 Steve
移除玩家 [Steve] 失败
同步 子命令
面板 全局白名单 同步 [实例名称]
>> 面板 全局白名单 同步
正在同步所有实例 [增量模式]……
已同步至所有实例
>> 面板 全局白名单 同步
正在同步所有实例 [覆盖模式]……
已同步至所有实例
>> 面板 全局白名单 同步 喷气飞机猫
正在同步当前实例 [增量模式]……
已同步至当前实例
>> 面板 全局白名单 同步 喷气飞机猫
正在同步当前实例 [覆盖模式]……
已同步至当前实例
End
都看到这了不得去试一下? -- Aegiszhy