CA-reforged 命令库文件格式说明
INFO
由 南鸢晨星 根据代码进行的整理,可能存在错误
基本信息
- name:拓展包名字,标识该命令库的主题或用途。
- author:作者,制作该命令库的个人或团队。
- description:描述,简要说明该命令库的内容和特点。
- uuid:唯一标识符,用于区分不同的命令库。
- version:版本号,表示该命令库的当前版本。
- require:依赖项,列出该命令库依赖的其他资源或扩展。
- minSupportVer:最小支持版本,表示该命令库支持的最低游戏版本。
- targetSupportVer:目标支持版本,表示该命令库主要支持的游戏版本。
载荷
数据
commands:命令集合,包含该命令库定义的所有命令及其参数。
idlist:ID列表,列举了该命令库包含的各类ID类型及其对应的名称。
enums: ID枚举,与前面的ID列表配套
selectors: 选择器枚举
json:命令中会用到的json格式,例如 物品组件
help:wiki链接
版本包
- versionPack:一样是包含 数据 的内容,但是进行版本控制
- idtable:用于管理游戏中不同实体ID的结构
- 版本号:用于控制不同版本的命令
大致框架:
{ // 基本信息
"name": "拓展包名字 默认命令库",
"author": "作者... CA制作组",
"description": "描述... 该命令库基于Minecraft PE ... 的命令,大部分由CA制作组成员ProjectXero整理。",
"uuid": "acf728c5-dd5d-4a38-b43d-7c4f18149fbd",
"version": [
1,
0,
0
],
"require": [
"acf728c5-dd5d-4a38-b43d-7c4f18149fbd"
],
"minSupportVer": "0.7.4",
"targetSupportVer": "1.18.0.23",
// 数据
"commands": {},
"idlist": [
{
"name": "方块",
"list": "block"
}
],
"enums": {
"block": {
"command_block": "命令方块"
}
},
"selectors": {
"m": {
"type": "enum", //类型
"name": "游戏模式", //名字
"list": "gamemode", //id枚举
"hasInverted": true //可反选?
}
},
"rawtext": {
"rawtext": {
"type": "object",
"children": {
"text": {
"type": "array",
"name": "要发送的文本",
"children": {
"type": "string"
}
},
"score": {
"type": "array",
"name": "没有写完...",
"children": {
"type": "string"
}
}
}
}
},
"json": {
"block_selector": {
"type": "object",
"children": {
"blocks": {
"type": "array",
"name": "方块列表",
"children": {
"type": "string",
"suggestion": "block"
}
}
}
},
"item_component": {
"type": "object",
"name": "物品组件",
"children": {
"minecraft:can_place_on": {
"name": "冒险模式下仅能放置于……方块上",
"extends": "block_selector" // 引用之前定义的block_selector
}
}
}
},
"help": {
"command": "https://zh.minecraft.wiki/%E5%91%BD%E4%BB%A4"
},
// 版本包
"versionPack": {
"idtable": {
"mode": "overwrite",
"maxSupportVer": "1.1.*",
"enums": {
"item": {},
"block": {},
"entity": {}
}
},
"0.16.0": {
"commands": {
"say": {
"description": "向所有在线玩家广播信息",
"patterns": {
"default": {
"params": [
{
"type": "text",
"name": "信息"
}
]
}
},
"help": "https://zh.minecraft.wiki/%E5%91%BD%E4%BB%A4/say"
}
}
}
}
}
命令部分
INFO
可能需要补充,欢迎大家来完善文档
绝对不是我现在在写命令部分才写这个的qwq
这里指的是 commands
部分
参数格式
这是一个命令的基础格式
"camera": {
"description": "修改玩家的相机视角",
"patterns": {
// 这里是不同的参数格式
"camera_clear": {
"description": "修改玩家的相机视角", // 这里是说明
"params": [
// 这里是参数
]
// ...
},
"camera_fade": {
"description": "使玩家视角逐渐变为黑色,维持一段时间后逐渐恢复", // 这里是说明
"params": [
// 这里是参数
]
// ...
},
// ...
"help": "https://zh.minecraft.wiki/w/%E5%91%BD%E4%BB%A4/camera"
}
}
alias
- 重定向
可用于重定向命令,比如 /teleport
命令和 /tp
命令是同一个命令
"tp": {
"alias": "teleport"
}
description
- 命令说明
命令的说明,描述该命令的功能和用途
显示在命令列表中camera - 修改玩家的相机视角
"camera": {
"description": "修改玩家的相机视角"
}
params
- 命令参数
命令的参数列表,包含不同类型的参数
详情见语法参数部分
help
- 命令帮助链接
命令的帮助链接,指向该命令的详细说明页面,比如wiki页面
"camera": {
"help": "https://zh.minecraft.wiki/w/%E5%91%BD%E4%BB%A4/camera"
}
语法参数
下面是一个简单的参数示例
你会看到两个选项
第一个是玩家选择器
第二个是clear - 清除
选项
"params": [
{
"type": "selector",
"name": "玩家"
},
{
"type": "plain",
"name": "clear",
"prompt": "清除"
}
]
通用参数
- optional:可选,表示该参数可以省略,通常以
[参数]
形式表示/give
命令中的[数量:正整数]
参数可省略,默认值为1
{
"type": "uint",
"name": "数量",
"optional": true
}
- suggestion:可选,补全建议,用于提供参数的补全列表,与
enum
的list
是一样的,均可传入 ID 或 对象/give
命令中的<物品ID:文本>
参数(类型为string
)可补全物品 ID
{
"type": "string",
"name": "物品ID",
"suggestion": "item"
}
selector
- 选择器
实体选择器, 拥有两个参数:
name
显示在顶部提示<玩家:实体>
target
限制选择器的补全列表,比如不能选择非玩家,在Reforged中废弃了
{
"type": "selector",
"name": "玩家",
"target": "player" // 在Reforged中废弃了,可不写
}
uint
- 非负整数(正整数)
我不到啊,@ProjectXero 写的是正整数
,但是实际上是非负整数,比如0
,
拥有一个参数:
name
显示在顶部提示<持续时间:正整数>
{
"type": "uint",
"name": "持续时间"
}
int
- 整数
可含正负号的数,比如-1
、+1
、1
, 拥有一个参数:
name
显示在顶部提示<物品特殊值:整数>
{
"type": "int",
"name": "物品特殊值"
}
float
- 浮点数
可含正负号的整数或小数,比如-1
、+1.1
、1.2
, 拥有一个参数:
name
显示在顶部提示<音量:数值>
{
"type": "float",
"name": "音量"
}
plain
- 固定字符串
固定的选项,比如/scoreboard players
中的players
, 拥有两个参数:
name
显示顶部和选项players
prompt
用于在列表提示players - 管理对象的记分项分数
{
"type": "plain",
"name": "players",
"prompt": "管理对象的记分项分数"
}
relative
- 相对坐标
单个坐标值,比如~1
,~-1.1
,+1.2
, 拥有一个参数:
name
显示在顶部提示<水平旋转值:数值>
{
"type": "relative",
"name": "水平旋转值"
}
position
- 三维坐标
三维坐标值,支持相对坐标和绝对坐标,如~1 ~2 ~3
、-1 +2 3
、~-1 ~2 3
等, 拥有一个参数:
name
显示在顶部提示<位置:x y z>
{
"type": "position",
"name": "位置"
}
string
- 字符串文本
文本,优先按" "
然后是空格匹配,
拥有一个参数:
name
显示在顶部提示<名称:文本>
{
"type": "string",
"name": "名称"
}
enum
- 预定义枚举值
预定义的枚举值,
拥有三个参数:
name
显示在顶部提示<结构ID:列表>
list
指定枚举列表的 ID 或 对象
{
"type": "enum",
"name": "结构ID",
"list": "structure"
}
或者
{
"type": "enum",
"name": "维度",
"list": {
"overworld": "主世界",
"nether": "下界",
"the_end": "末地"
}
}
custom
- 自定义类型
自定义类型,使用正则表达式判断,
拥有四个参数:
name
显示在顶部提示<等级:数值>
vtype
显示在顶部提示类型<等级:数值>
input
用于判断匹配的正则表达式finish
用于匹配完成的正则表达式
{
"type": "custom",
"name": "等级",
"vtype": "数值",
"input": "^(\\+|-)?(\\d+([Ll])?)?",
"finish": "^(\\+|-)?\\d+[Ll]"
}
---
command
- 命令
命令,直接补全命令,
拥有一个参数:
name
显示在顶部提示<命令>
{
"type": "command",
"name": "命令"
}
subcommand
- 子命令
带前缀的命令,例如 execute
中的子命令,如as
、at
、run
等, 拥有两个参数:
name
显示在顶部提示<子命令>
mainCommand
指定的命令前置
{
"type": "subcommand",
"name": "子命令",
"mainCommand": "execute"
}
text
- 文本
文本,匹配剩余所有部分,不带有任何补全机制,
拥有一个参数:
name
显示在顶部提示<内容:文本>
{
"type": "text",
"name": "内容"
}
rawjson
- 原始 JSON 文本
最后的文本,匹配剩余全部输入,不带有任何补全机制,
拥有一个参数:
name
显示在顶部提示<标题:文本 JSON>
{
"type": "rawjson",
"name": "标题"
}
nbt
- NBT 数据
NBT 数据,匹配剩余全部输入,提供 "插入JSON" 菜单按钮(与json
类型一致,只是提示不同),
拥有一个参数:
name
显示在顶部提示<数据:数据标签>
component
可选,指定 JSON 组件的 ID,这里省略
{
"type": "nbt",
"name": "数据",
"component": "..."
}
json
- JSON 数据
JSON 数据,匹配剩余全部输入,提供 "插入JSON" 菜单按钮, 拥有两个参数:
name
显示在顶部提示<数据:JSON>
component
可选,指定 JSON 组件的 ID,例如这里是item_component
物品组件
{
"type": "json",
"name": "数据标签",
"component": "item_component"
}