npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

koishi-plugin-mcsmanager-custplugin

v0.2.11

Published

基于Mcsmanager面板的服务器实例管理插件

Downloads

173

Readme

koishi-plugin-mcsmanager-custplugin

npm

基于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

新增

  • 实例白名单命令,拥有如下子命令

    1. 开启
    2. 关闭
    3. 添加 <玩家名称>
    4. 移除 <玩家名称>
    5. 列表
    6. 重载
  • 实例白名单插件相关设置入口

  • 判断实例的白名单是否启用功能

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个插件前端基础信息,均为必填

  1. baseUrl 目标Mcsmanager面板的网址。(一般端口:23333)

  2. remoteUuid ( 也称 DaemonIdGID节点ID ) 目标Mcsmanager面板的守护id。

  3. initUuid ( 也称InstanceIdUID实例ID ) 缺省实例的Uuid。( 需要与下述initServerName对应 )

  4. initServerName 缺省实例的名称。 ( 需要与上述initUuid对应 )

  5. apiKey 管理员 / 用户 的 Token

上述信息均可以通过Mcsmanager面板控制台或者浏览器抓包获得!

额外设置

此外,还包含1个选填的插件自定义启动的命令

  1. custCommandName ( 缺省值:面板 )
>> 面板 列表

>> <custCommandName> 列表

命令设置

此插件为每条指令引入开关与Koishi权限系统 可简单设置指令的开启关闭和使用权限等级

[ 列表 ] 设置

  1. enabledList 是否启用 <列表> 指令。 ( 缺省值:关闭,若要使用请 设定为开启并保存设置 )

~~8. custShowListCmdAlias~~ ~~指令 <列表> 的别名。~~ ~~( 缺省值:列表 )~~

~~9. showListLevel~~ ~~使用指令 <列表> 所需的最低权限等级。~~ ~~( 缺省值:1 )~~

  1. isShowAddress 查看服务器列表时是否显示实例地址 ( 带端口 ) 。 ( 默认 关闭 )

  2. 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
  1. isShowUuid 查看服务器列表时是否显示实例Uuid。 ( 默认 关闭 )

  2. isShowFullUuid 查看服务器列表时是否显示完整实例Uuid。 ( 默认 关闭 :即仅显示 XXXX******XXXX,安全且美观 )

>> 面板 列表
名称:喷气背包猫
版本:1.16.5 [运行]
人数:0 / 10

>> 面板 列表
名称:喷气背包猫
Uuid:b940******88a0
版本:1.16.5 [运行]
人数:0 / 10

>> 面板 列表
名称:喷气背包猫
Uuid:b940295358c943c4844cc9d53fd788a0
版本:1.16.5 [运行]
人数:0 / 10
  1. isShowPlayerCount 查看服务器列表时是否显示服务器人数信息。 ( 默认开启:若服务器在运行,则显示 在线人数 / 最大人数 )
>> 面板 列表
名称:喷气背包猫
Uuid:b940******88a0
版本:1.16.5 [运行]
人数:0 / 10

>> 面板 列表
名称:喷气背包猫
Uuid:b940******88a0
版本:1.16.5 [运行]
  1. isShowPlayerList [ 实验性功能 ] 查看服务器列表时是否显示服务器玩家列表。 ( 默认关闭:若服务器在运行且有玩家在线,尝试显示玩家列表,并计算新在线人数) PS: 这是一种新尝试,尝试模拟RCON,理论上在线人数获取速度和准度均较面板API优越
>> 面板 列表
名称:喷气背包猫
Uuid:b940******88a0
版本:1.16.5 [运行]
人数:2 / 10
玩家:Aegiszhy, huazhongxian
  1. 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

[ 重启 ] 设置

  1. enabledRst 是否启用 <重启> 指令。 ( 缺省值:关闭,若要使用请 设定为开启并保存设置 )

~~18. custRstCmdAlias~~ ~~指令 <重启> 的别名。~~ ~~( 缺省值:重启 )~~

~~19. restartLevel~~ ~~使用指令 <重启> 所需的最低权限等级。~~ ~~( 缺省值:1 )~~

[ 开启 ] 设置

  1. enabledStart 是否启用 <开启> 指令。 ( 缺省值:关闭,若要使用请 设定为开启并保存设置 )

~~21. custStartCmdAlias~~ ~~指令 <开启> 的别名。~~ ~~( 缺省值:开启 )~~

~~22. startLevel~~ ~~使用指令 <开启> 所需的最低权限等级。~~ ~~( 缺省值:2 )~~

[ 关闭 ] 设置

注意:使用此命令时请将Mcsmanager内的 关闭实例命令 设置为^C否则当前实例会变成假关闭并卡死,需要手动去Mcsmanager才能操作

  1. enabledStop 是否启用 <关闭> 指令。 ( 缺省值:关闭,若要使用请 设定为开启并保存设置 )

~~24. custStopCmdAlias~~ ~~指令 <关闭> 的别名。~~ ~~( 缺省值:关闭 )~~

~~25. stopLevel~~ ~~使用指令 <停止> 所需的最低权限等级。~~ ~~( 缺省值:2 )~~

[ 强制关闭 ] 设置

  1. enabledKill 是否启用 <强制关闭> 指令。 ( 缺省值:关闭,若要使用请 设定为开启并保存设置 )

~~27. custKillCmdAlias~~ ~~指令 <强制关闭> 的别名。~~ ~~( 缺省值:强制关闭 )~~

~~28. killLevel~~ ~~使用指令 <强制停止> 所需的最低权限等级。~~ ~~( 缺省值:2 )~~

[ 执行 ] 设置

  1. enabledExec 是否启用 <执行> 指令。 ( 缺省值:关闭,若要使用请 设定为开启并保存设置 )

~~30. custSendCmdAlias~~ ~~指令 <执行> 的别名。~~ ~~( 缺省值:执行 )~~

~~31. sendCmdLevel~~ ~~使用指令 <执行> 所需的最低权限等级。~~ ~~( 缺省值:4 )~~

[ 日志 ] 设置

  1. enabledLog 是否启用 <日志> 指令。 ( 缺省值:关闭,若要使用请 设定为开启并保存设置 )

~~33. custCmdLogAlias~~ ~~指令 <日志> 的别名。~~ ~~( 缺省值:日志 )~~

~~34. cmdLogLevel~~ ~~使用指令 <日志> 所需的最低权限等级。~~ ~~( 缺省值:2 )~~

  1. cmdLogLine 使用指令 <日志> 的默认输出行数。 ( 缺省值:10 )

[ 白名单 ] 设置 [ 实验性功能 ]

  1. enabledWhiteList 是否启用 <白名单> 指令。 ( 缺省值:关闭,若要使用请 设定为开启并保存设置 )

~~33. custWhiteListAlias~~ ~~指令 <白名单> 的别名。~~ ~~( 缺省值:白名单 )~~

~~34. whiteListLevel~~ ~~使用指令 <白名单> 所需的最低权限等级。~~ ~~( 缺省值:4 )~~

  1. isCheckWListStatus [ 实验性功能 ] 是否显示子命令 列表 的检测白名单状态。 ( 缺省值:关闭 )

[ 全局白名单 ] 设置 [ 实验性功能 ]

~~36. enabledGlobalWhite~~ ~~是否启用 <全局白名单> 指令。~~ ~~( 缺省值:关闭,若要使用请 设定为开启并保存设置 )~~

~~37. custGlobalWhiteAlias~~ ~~指令 <全局白名单> 的别名。~~ ~~( 缺省值:日志 )~~

  1. globalWhiteLevel 使用指令 <全局白名单> 所需的最低权限等级。 ( 缺省值:1 )

  2. dbAdministrator必填 使用指令 <全局白名单> 的管理员账户。

  3. 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