指令
指令是用户与 MCDR 交互的最常见方式。 MCDR 将来自服务器的所有控制台输入和玩家聊天信息视为用户输入。对于这类输入,MCDR 将尝试将其视为指令并进行解析
指令可以由 MCDR 本身和插件注册。本页面只介绍来自 MCDR 的指令。关于为 MCDR 插件注册指令的方法,请在 此处 查看
!!MCDR 指令
!!MCDR
指令是用户在控制台或游戏中控制 MCDR 的方式。 这些指令至少需要权限级别 3 (admin) 才能执行
若你已经有控制 MCDR 的权限,那么你可以在控制台或游戏聊天框中输入 !!MCDR
,你将会看到 MCDR 指令的帮助消息
如果你仅拥有权限级别 1 (user),则 !!MCDR
指令将展示 MCDR 的版本
状态显示
!!MCDR status
指令将返回 MCDR 的当前状态。它包括如下内容:
MCDR 的版本
MCDR 的状态
服务端的状态
如果服务器已启动则显示的标志
MCDR 是否会在服务端停止后关闭,也即服务器是自然关闭的还是被 MCDR 停止/杀死
Rcon 的连接状态
已加载插件数量
以下状态只能由具有权限 4 (owner) 的用户查看
服务端 PID。注意,此 PID 是正在运行服务端的终端程序的 PID。除此之外,MCDR 将显示出 PID 树,你可以借此了解你的服务端的进程结构
信息处理队列的负载。若服务端正在刷屏,则该队列可能被填满
当前的线程列表
热重载
!!MCDR reload
子指令可以热重载 MCDR。它也可以缩写为 !!MCDR r
。 执行指令 !!MCDR reload 即可获取热重载指令的帮助信息
以下是一个展示相关指令的表格
指令 |
缩写 |
功能 |
---|---|---|
!!MCDR reload |
!!MCDR r |
显示重载指令的帮助信息 |
!!MCDR reload plugin |
!!MCDR r plg |
重载所有 有变化 的插件 |
!!MCDR reload config |
!!MCDR r cfg |
重新载入配置文件 |
!!MCDR reload permission |
!!MCDR r perm |
重新载入权限文件 |
!!MCDR reload all |
!!MCDR r all |
重载上述所有 |
权限管理
!!MCDR permission
子指令用于操作玩家权限。它的缩写是 !!MCDR perm
。 执行指令 !!MCDR perm 将显示权限操作指令的帮助信息
以下是一个展示相关指令的表格
指令 |
缩写 |
功能 |
---|---|---|
!!MCDR permission |
!!MCDR perm |
显示权限指令帮助信息 |
!!MCDR permission list [<level>] |
!!MCDR perm list [<level>] |
列出所有玩家的权限。在设置了 [<level>] 时,仅列出拥有 [<level>] 权限的玩家 |
!!MCDR permission set <player> <level> |
!!MCDR perm set <player> <level> |
设置 <player> 的权限级别为 <level> |
!!MCDR permission query <player> |
!!MCDR perm q [<player>] |
查询 <player> 的权限级别。如果没有设置 <player>,查询指令发送者的权限级别 |
!!MCDR permission remove <player> |
!!MCDR perm remove <player> |
从权限数据库中删除 <player> |
!!MCDR permission setdefault <level> |
!!MCDR perm setd <level> |
设置默认权限级别为 <level> |
其中,<player> 参数应为一个玩家名
<level> 参数应该是一个表示权限等级的字符串或整数。它可以是权限全名或表示权限等级的整数
例如:
!!MCDR perm list 4
:列出所有权限级别为 4 (owner) 的玩家!!MCDR permission set Steve admin
:将玩家 Steve 的权限级别设置为 3 (admin)!!MCDR permission q Steve
:查询玩家 Steve 的权限级别。其值应为上一条示例设置的 3 (admin)
查看 权限 文档以获取更多关于 MCDR 权限系统的信息
插件管理
!!MCDR plugin
是插件操作指令。它的缩写是 !!MCDR plg
。 执行指令 !!MCDR plg
将显示该指令的帮助信息
以下是一个展示相关指令的表格
指令 |
缩写 |
功能 |
---|---|---|
!!MCDR plugin list |
!!MCDR plg list |
列出所有插件 |
!!MCDR plugin info <plugin_id> |
!!MCDR plg info <plugin_id> |
显示ID为 <plugin_id> 的插件信息 |
!!MCDR plugin load <file_name> |
!!MCDR plg load <file_name> |
加载文件名为 <file_name> 的插件 |
!!MCDR plugin enable <file_name> |
!!MCDR plg enable <file_name> |
启用文件名为 <file_name> 的插件 |
!!MCDR plugin reload <plugin_id> |
!!MCDR plg reload <plugin_id> |
重载 ID 为 <plugin_id> 的插件 |
!!MCDR plugin unload <plugin_id> |
!!MCDR plg unload <plugin_id> |
卸载 ID 为 <plugin_id> 的插件 |
!!MCDR plugin disable <plugin_id> |
!!MCDR plg disable <plugin_id> |
禁用 ID 为 <plugin_id> 的插件 |
!!MCDR plugin reloadall |
!!MCDR plg ra |
加载 / 重载 / 卸载 所有 未禁用的插件 |
<plugin_id> 参数应为操作目标的插件 ID
<file_name> 参数应为要加载或启用插件的文件名
例子:
假设现在有一个 Id 为 my_plugin
的插件已被加载,一个路径为 plugins/another_plugin.py.disabled
的插件被 ID 为 another_plugin
的插件禁用
于是你可以执行以下指令:
!!MCDR plg info my_plugin
!!MCDR plugin reload my_plugin
!!MCDR plugin enable another_plugin.py.disabled
!!MCDR plugin unload another_plugin
!!MCDR plugin load another_plugin.py
这些指令将执行以下操作:
查询内置插件
my_plugin
的信息;重载 ID 为
my_plugin
的插件;启用并加载文件名为
another_plugin.py.disable
的插件。它的 ID 为another_plugin
;卸载 ID 为
another_plugin
的插件;加载文件名为 another_plugin.py 的插件。注意,由于此插件未加载,故你只能使用文件名来指定它
偏好设置
!!MCDR preference
子指令可用于操控 MCDR 的偏好。它仅需要权限等级 1 (user) 即可操作
以下是一个展示相关指令的表格
指令 |
缩写 |
功能 |
---|---|---|
!!MCDR preference |
!!MCDR pref |
显示偏好指令帮助信息 |
!!MCDR preference list |
!!MCDR pref list |
显示偏好列表 |
!!MCDR preference <pref_name> |
!!MCDR pref <pref_name> |
显示偏好 <pref_name> 的详情 |
!!MCDR preference <pref_name> set <value> |
!!MCDR pref <pref_name> set <value> |
设定偏好 <pref_name> 的值为 <value> |
!!MCDR preference <pref_name> reset |
!!MCDR pref <pref_name> reset |
将偏好 <pref_name> 重置为默认值 |
查看 偏好 文档以获取更多关于 MCDR 偏好的信息
例如:
!!MCDR pref set language zh_cn
: 将偏好language
的值设置为zh_cn
检查更新
使用 !!MCDR checkupdate
或 !!MCDR cu
可手动检查来自 github 的更新
它将尝试在 github 中获取最新版本,并检查它是否比当前版本更新。 如果是,它将显示 github 上的更新日志
服务端控制
!!MCDR server
子指令可用于控制被守护的服务端
以下是一个展示相关指令的表格
指令 |
功能 |
---|---|
!!MCDR server |
显示服务端控制指令的帮助信息 |
!!MCDR server start |
启动服务端 |
!!MCDR server stop |
关闭服务端,且 MCDR 会继续运行 |
!!MCDR server stop_exit |
关闭服务端并退出MCDR |
!!MCDR server exit |
退出 MCDR。服务端应已关闭 |
!!MCDR server restart |
重启服务端 |
!!MCDR server kill |
杀死服务端,以及其所有子进程 |
这些指令同时也是 服务端接口 API 的一部分
调试
!!MCDR debug
包含了不少用于调试 MCDR 或 MCDR 插件的实用工具。它们主要是为开发者设计的,因此如果你是一位 MCDR 的用户,你可以跳过这一部分
线程转储
导出所有指定线程的堆栈追踪信息。一个用于快速分析你的线程正在干什么的方式
你可以使用 #all
作为线程名来导出所有线程的信息
格式:
!!MCDR debug thread_dump #all
!!MCDR debug thread_dump <thread_name>
翻译测试
查询给定翻译键的翻译结果,或者导出以给定路径为前缀的所有翻译键
格式:
!!MCDR debug translation get <translation_key>
!!MCDR debug translation dump <json_path>
例子:
!!MCDR debug translation get one.of.my.translation.key
!!MCDR debug translation get server_interface.load_config_simple.succeed
!!MCDR debug translation dump .
!!MCDR debug translation dump mcdr_server
!!MCDR debug translation dump mcdr_server.on_server_stop
指令树展示
使用方法 print_tree()
导出指令树
你可以通过插件 id 或根节点名来过滤指令树
格式:
!!MCDR debug command_dump all
!!MCDR debug command_dump plugin <plugin_id>
!!MCDR debug command_dump node <literal_name>
例子:
!!MCDR debug command_dump plugin my_plugin
!!MCDR debug command_dump node !!MyCommand
!!help 指令
!!help
指令将显示所有指令的帮助消息。它作为着一个包含所有指令的索引
此指令的内容可以由插件注册,所以一个新的用户可以借此轻松浏览所有可用的指令
任何用户都可以使用此指令,MCDR 将列出该用户有权查看的所有指令帮助消息
在无任何插件的情况下,输入 !!help
指令后将返回如下结果:
MCDR command help message list
!!MCDR: MCDR control command
!!help: MCDR command help messages