Installation command
!!MCDR plugin install cfgcmd
Author
Repository
Homepage
Synced at
...
Last update
...
Latest version
Total downloads
26
Back to catalogue
configCommand / cfgcmd
在游戏内使用MCDR命令修改其它插件/Mod的配置!
1.3.1
版本支持在线编辑器!
权限
目前插件对所有配置内允许的玩家允许使用(MCDR 4级权限)。此插件可以修改运行MCDR进程的用户有权修改的所有文件(尤其是root
),因此请控制好权限或者将服务端放入容器运行。
命令
!!cfg env <路径,以MCDR根路径开始,可用绝对/相对路径> <配置文件> [可选: 读写器类型]
: 将执行者修改的目标文件设置为对应文件!!cfg quit
: 清空执行者的目标文件!!cfg write
: 写入目标文件!!cfg reload
: 重载目标文件(会覆盖已经进行的所有修改)!!cfg info
: 查看文件信息
!!cfg set <key> <value>
: 设置键值对,<key>
中.
分割的键将被当做配置树的路径解释(具体见下文示例),此命令的key
不支持..
此类相对路径。类型见下方类型章节!!cfg setTyped <key> <type> <value>
: 具体见下方类型章节。若值无法被解释为指定的类型,则使用STRING
!!cfg rm <key>
: 删除键对应的内容!!cfg mv <sourceKey> <destKey>
: 移动,也可以当重命名使用!!cfg cp <sourceKey> <destKey>
: 复制粘贴!!cfg cd <key>
: 因为配置文件是树状结构,所以就提供一个类似文件系统操作的cd
指令。在读写器为plain
时不可用!!cfg ls [可选: page] [需要前项存在: key]
: 查看当前Object内容。在读写器为plain
时打印全文。每10行算一页!!cfg lsLong [必选: page] [可选: linePerPage] [需要前项存在: key]
: 同上
!!cfg lsDir <路径>
: 以MCDR目录为根目录查看文件列表!!cfg rmFile <文件>
: 删除文件 (无法撤销)!!cfg touchFile <文件>
: 创建空文件
!!cfg editor
: 打开当前文件的在线编辑器,需要配置enableCloud
为true
!!cfg editorApply
: 从云端同步已经修改的配置文件!!cfg editorDelete
: 删除云端的会话
从
1.3.1
版本以下升级过来的,需要手动为配置文件添加enableCloud
为true
才能使用在线编辑器
执行
!!cfg env ...
后,不会占用文件
执行!!cfg info
给出当前文件信息
执行!!cfg ls
打印指针所在Object的内容
读写器根据文件后缀名判断。没有后缀名或者未知后缀名的会选择使用plain
读写器
若读写器为plain
,<key>
参数指定的就是行号
若<key>
包含空格且后面还有参数,用英文双引号把它括住。用\
可以转义。具体见QuotableText
数值类型
setTyped
可以指定数值的类型,以下类型可用,部分类型有特殊的行为:
STRING
: 基本的字符串INT
: 数字,包含浮点数(float
)BOOL
: 布尔值,数值大小写不敏感,但是输入必须为T``True
(解析为真)、F``False
(解析为假)LIST
: 列表OBJECT
: JS的Object
,Python的dict
,YAML的mapping
AUTO
: 用这个类型 = 直接用set
子命令
LIST
与OBJECT
的特殊行为
LIST
它会将输入的值用英文逗号分开,可以使用\
转义逗号避免错误的分割。被分割后的项目会自动进行类型推导并创建一个列表。若值是空的,则创建一个空列表
OBJECT
类似LIST
,它会将输入的值用英文逗号分开,然后再用:
分割键值对。可以使用\
转义逗号避免错误的分割。被分割后的项目会自动进行类型推导(无论是键还是值)并创建一个OBJECT
。若值是空的,则创建一个空OBJECT
实际不推荐使用
setTyped OBJECT ...
,因为它会遇到聊天框输入限制。推荐用于创建空的OBJECT
类型推导
所有被推导的类型共享一个逻辑:
- 判断原先值是否不存在或值为
None
(大小写敏感) ? 开始自动推导 : 原有类型可用则以原有类型继续,否则开始自动推导 - 将数值转换为纯大写后是否为[
T
,TRUE
,F
,FALSE
]中的一项 ? 是布尔值,结束 : 继续 - 包含非数字字符(小数点、负号、双引号除外) ? 是一个字符串,结束 : 是一个数字,跳到第4步
- 判断值被双引号括住 ? 是一个字符串式的数字,且去掉开头与结尾的双引号并进行5步的转换,结束 : 继续判断
- 全是数字(以及可能包含的小数点和开头符号) ? 是数字(小数点取最靠后的那个),结束 : 这是一个字符串
LIST
与OBJECT
不参与此推导过程,因此自动推导不可能推出LIST
与OBJECT
示例
原始配置文件:
1 {
2 "foo": 123,
3 "bar": {
4 "barFoo": "?",
5 "barBar": {
6 "barBarFoo": 456
7 }
8 },
9 "buzz": [
10 "wangyupu","zzfx1166"
11 ]
12 }
命令(有顺序):
!!cfg env "config/foo/" bar.json
: 打开文件!!cfg set foo 1231
: 设置第2行的值为1231!!cfg set bar.barFoo "!"
: 设置第4行的值为"!"!!cfg rm buzz.1
: 删除第10行列表的第二项 (0-based index)!!cfg cd bar.barBar
: 切换目前指针到第5行的Object!!cfg set barBarFoo 789
: 修改第6行的值为789!!cfg write
: 写入文件!!cfg quit
: 离开文件
修改后配置文件:
1 {
2 "foo": 1231,
3 "bar": {
4 "barFoo": "!",
5 "barBar": {
6 "barBarFoo": 789
7 }
8 },
9 "buzz": [
10 "wangyupu"
11 ]
12 }
插件配置
ownerPlayer: 玩家名称
cfgCmdPermission: 4
allowModifyConfig: true
allowOutBound: false
enableLog: true
onlyOwnerPlayer: false
ownerPlayer
指定的玩家绕过所有安全控制措施。将其留空以对所有有权限的玩家进行权限控制
allowModifyConfig
指定是否允许修改本插件(cfgcmd
)的配置
allowOutBound
指定是否允许离开MCDR
根路径,为false
时只能访问MCDR
路径下的文件
enableLog
指定是否启用记录功能,记录保存于MCDR根路径/logs/cfgcmdLogs/<YYYY>-<mm>-<dd>_<COUNT>.log
onlyOwnerPlayer
指定是否只允许被指定的ownerPlayer
才能使用此插件
allowModifyConfig
默认为true
是为了管理员于无法访问后台的情况下也能对插件进行安全配置,建议安装后手动将其改为false
支持的配置文件格式
json
yaml
(yml
)toml
- 纯文本
README source: README.md