CPack是什么

Cpack(Command Pack)是CHelper(Command Helper)的资源包。

CHelper是我的世界基岩版的命令助手。

项目源码: https://github.com/Yancey2023/CHelper-Core

manifest.json

在资源包的根目录里应该存在一个叫做manifest.json的文件用来存储命令包的基本信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
{
"name": "资源包示例",
"description": "CHelper扩展包的官方示例",
"minecraftVersion": "1.20",
"author": "Yancey",
"updateDate": "2023-11-7",
"packID": "ExamplePack-1.20",
"requiredPack": [
"BasicPack-1.20"
],
"versionCode": 1,
"isBasicPack": false
}
名字 类型 含义 备注 必需
name 字符串 资源包的名字 用于显示 否(不建议忽略)
description 字符串 资源包的简介 用于显示
minecraftVersion 字符串 对应的游戏版本 用于显示
author 字符串 作者 用于显示
updateDate 字符串 更新日期 用于显示
packId 字符串 资源包的ID 用于识别资源包
requiredPack 数组 需要依赖的资源包的ID 用于识别资源包的依赖关系 否(默认没有依赖)
versionCode 整数 版本号 用于显示和判断版本
isBasicPack 布尔值 是否是命令基础包 只能同时加载一个命令基础包和多个命令扩展包 否(默认为false)

注意:暂时还不支持命令拓展包,目前只支持命令基础包

命令的注册

在个根目录中,有一个command的文件夹用于存储命令,里面的每个json文件对应一个命令。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
{
"name": [
"ability"
],
"description": "赋予或剥夺玩家的能力",
"start": [
"player"
],
"node": [
{
"type": "TARGET_SELECTOR",
"id": "player",
"description": "要赋予或剥夺能力的玩家",
"isOnlyOne": false,
"isMustPlayer": true,
"isMustNPC": false
},
{
"type": "NORMAL_ID",
"id": "ability",
"description": "要操作的能力",
"ignoreError": false,
"contents": [
{
"name": "worldbuilder",
"description": "给予玩家成为世界建造者的能力"
},
{
"name": "mayfly",
"description": "给予飞行的能力"
},
{
"name": "mute",
"description": "将玩家禁言,聊天时其他人将无法看见或听见目标"
}
]
},
{
"type": "BOOLEAN",
"id": "value",
"description": "此能力是否对玩家可用",
"descriptionTrue": "此能力对玩家可用",
"descriptionFalse": "此能力对玩家不可用"
}
],
"ast": [
["player", "ability", "LF"],
["ability", "value"],
["value", "LF"]
]
}
名字 类型 含义 备注 必需
name 字符串列表 命令的名字 -
description 字符串 命令的介绍 -
node 节点列表 节点列表 列举所有命令参数
start 字符串列表 命令的起始节点 由于节点类型太多,会在后面单独讲
ast 关系列表 关系绑定 存储着多个数组,其中的每个数组第一个ID代表父节点,后面的元素当作子节点

解释:在node节点列表中,每个节点有个ID,在加载好节点列表后,程序再根据后面的start和ast用这个ID来绑定节点的位置。

ID的注册

在个根目录中,有一个id的文件夹用于存储命令,里面的每个json文件对应一种id。

ID 有4种类型:

类型 含义 备注
normal 普通ID -
namespace 带命名空间的ID -
block 方块ID 带有方块状态
item 物品ID 带有物品数据值
  • NormalID
1
2
3
4
5
6
7
8
9
10
11
{
"type": "normal",
"id": "fogs",
"content": [
{
"name": "minecraft:fog_bamboo_jungle",
"description": "竹林"
},
...
]
}
名字 类型 含义 备注 必需
type 字符串 ID类型 -
id 字符串 ID列表的名字 -
content 数组 ID列表 -

每个ID:

名字 类型 含义 备注 必需
name 字符串 ID名字 -
description 字符串 ID介绍 -
  • NamespaceID
1
2
3
4
5
6
7
8
9
10
11
12
{
"type": "namespace",
"id": "entities",
"content": [
{
"idNamespace": "minecraft",
"name": "allay",
"description": "悦灵"
},
...
]
}
名字 类型 含义 备注 必需
type 字符串 ID类型 -
id 字符串 ID列表的名字 -
content 数组 ID列表 -

每个ID:

名字 类型 含义 备注 必需
idNamespace 字符串 命名空间 默认为minecraft,如果是minecraft,建议省略
name 字符串 ID名字 -
description 字符串 ID介绍 -
  • blocks
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
{
"id": "blocks",
"type": "block",
"blocks": {
"blockStateValues": [
{
"name": "acacia_button",
"description": "金合欢木按钮",
"properties": [
{
"name": "button_pressed_bit",
"defaultValue": false
},
{
"name": "facing_direction",
"defaultValue": 0
}
]
},
...
],
"blockPropertyDescriptions": {
"common": [
{
"propertyName": "age",
"description": "植物的生长阶段 刚种下或刚生长出的植物方块的该属性值为0 该值随着时间变化不断增长,直到15时可以继续在上方生长出新的植物方块",
"values": [
{
"valueName": 0
},
{
"valueName": 1
},
...
]
},
...
],
"block": [
{
"blocks": [
"creaking_heart"
],
"properties": [
{
"propertyName": "active",
"values": [
{
"valueName": true,
"description": "嘎枝之心处于激活状态"
},
{
"valueName": false,
"description": "嘎枝之心处于未激活状态"
}
]
}
]
},
...
]
}
}
}
名字 类型 含义 备注 必需
id 字符串 ID名字 永远是blocks
type 字符串 ID类型 -
blocks 数组 ID列表 -

blocks:

名字 类型 含义 备注 必需
blockStateValues 数组 所有方块及其方块状态属性名和默认值 -
blockPropertyDescriptions 所有方块状态值及注释 ID类型 -

blockStateValues每个ID:

名字 类型 含义 备注 必需
idNamespace 字符串 命名空间 默认为minecraft,如果是minecraft,建议省略
name 字符串 ID名字 -
description 字符串 ID介绍 -
properties 数组 方块状态 -

properties每个方块状态:

名字 类型 含义 备注 必需
name 字符串 方块状态参数名 -
defaultValue 正整数 默认值是第几个方块状态 暂时没用到

blockPropertyDescriptions:

名字 类型 含义 备注 必需
common 数组 所有方块共用的方块状态 -
block 数组 部分方块特有的方块状态 -

common每个方块状态:

名字 类型 含义 备注 必需
propertyName 字符串 方块状态参数名 -
description 字符串 ID介绍 -
values 数组 方块状态参数值列表 -

values每个方块状态的值:

名字 类型 含义 备注 必需
value 布尔值 / 正整数 / 字符串 方块状态参数值 -
description 字符串 介绍 -

block中的每个值:

名字 类型 含义 备注 必需
blocks 字符串数组 方块ID -
properties 方块状态数组 方块状态 -

properties中的每个方块状态:

名字 类型 含义 备注 必需
propertyName 字符串 方块状态参数名 -
description 字符串 ID介绍 -
values 数组 方块状态参数值列表 -

values每个方块状态的值:

名字 类型 含义 备注 必需
value 布尔值 / 正整数 / 字符串 方块状态参数值 -
description 字符串 介绍 -
  • items
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
"id": "items",
"type": "item",
"items": [
{
"name": "stone_block_slab2",
"description": "红砂岩台阶/紫珀台阶/海晶石台阶/暗海晶石台阶/海晶石砖台阶/苔石台阶/平滑砂岩台阶/红色下界砖台阶",
"descriptions": [
"红砂岩台阶",
"紫珀台阶",
"海晶石台阶",
"暗海晶石台阶",
"海晶石砖台阶",
"苔石台阶",
"平滑砂岩台阶",
"红色下界砖台阶"
]
},
...
]
}
名字 类型 含义 备注 必需
id 字符串 ID名字 永远是items
type 字符串 ID类型 -
items 数组 ID列表 -

每个ID:

名字 类型 含义 备注 必需
namespace 字符串 命名空间 如果是minecraft,建议省略 否(默认为minecraft)
name 字符串 ID名字 -
description 字符串 ID介绍 -
max 正整数 数据值最大值 -
descriptions 字符串列表 每个数据值的介绍(从0开始) -

节点的定义

在前面已经讲了命令是如何注册的,其中每个命令需要在nodes里面写出所有用到的的节点,每个节点的json如何写就是接下来要讲的内容

类型 含义 示例 备注
BLOCK 方块 minecraft:lever[“open_bit”=true] -
BOOLEAN 布尔值 true -
COMMAND 命令 give @s minecraft:stone -
COMMAND_NAME 命令名 setblock -
FLOAT 小数 1.5 -
INTEGER 整数 2 -
INTEGER_WITH_UNIT 带单位的整数 2L -
ITEM 物品 minecraft:fire_charge 1 12 -
LF 结束节点 - 内置节点,不可使用,但可以使用LF这个ID
NAMESPACE_ID 带命名空间的ID minecraft:stone -
NORMAL_ID 普通的ID creative -
PER_COMMAND 每条命令 - 内置节点,不可使用
POSITION 位置 10.2~-5 -
RELATIVE_FLOAT 相对坐标 ~1.5 -
REPEAT 重复的参数 - 不可在定义JSON数据的时候使用
STRING 字符串 “a a” -
TARGET_SELECTOR 目标选择器 @e[r=5] -
TEXT 文字 score -
RANGE 范围 1..2 -
JSON Json文本 {“rawtext”:[{“text”:”Hello”}]} 不可在定义JSON数据的时候使用
JSON_BOOLEAN Json布尔值 true 只能在定义JSON数据的时候使用-
JSON_ELEMENT Json元素 - 内置节点,不可使用
JSON_ENTRY Json键值对 - 内置节点,不可使用
JSON_FLOAT Json小数 1.5 只能在定义JSON数据的时候使用
JSON_INTEGER Json整数 12 只能在定义JSON数据的时候使用
JSON_LIST Json列表 […, …] 只能在定义JSON数据的时候使用
JSON_NULL Json空值 null 只能在定义JSON数据的时候使用
JSON_OBJECT Json对象 {“…”: …, “…”: …} 只能在定义JSON数据的时候使用
JSON_STRING Json字符串 “…” 只能在定义JSON数据的时候使用
AND 和节点 - 内置节点,不可使用
ANY 任何节点 - 内置节点,不可使用
ENTRY 键值对 - 内置节点,不可使用
EQUAL_ENTRY 可以是不等号的键值对 - 内置节点,不可使用
LIST 数组 - 内置节点,不可使用
OR 或节点 - 内置节点,不可使用
SINGLE_SYMBOL 单个字符 - 内置节点,不可使用
  • BLOCK 方块
1
2
含义:方块ID+方块状态 / 方块ID
例子:minecraft:lever["open_bit"=true]
1
2
3
4
5
6
{
"type": "BLOCK",
"id": "block",
"description": "更改后的新方块",
"nodeBlockType": 0
}
名字 类型 含义 备注 必需
type 字符串 节点类型 -
id 字符串 节点ID -
brief 字符串 简要说明 如果description太长,推荐填写brief
description 字符串 节点介绍 -
nodeBlockType 正整数 0代表方块ID+方块状态,1代表只有方块ID -
  • BOOLEAN 布尔值
1
2
含义:布尔值,只能是true或false
例子:true
1
2
3
4
5
6
7
{
"type": "BOOLEAN",
"id": "lock",
"description": "是否锁定日夜更替",
"descriptionTrue": "锁定昼夜更替",
"descriptionFalse": "不锁定昼夜更替"
}
名字 类型 含义 备注 必需
type 字符串 节点类型 -
id 字符串 节点ID -
brief 字符串 简要说明 如果description太长,推荐填写brief
description 字符串 节点介绍 -
descriptionTrue 字符串 true值得介绍 -
descriptionTrue 字符串 false值得介绍 -
  • COMMAND 命令
1
2
含义:用于命令中嵌套任意命令
例子:give @s minecraft:stone
1
2
3
4
5
{
"type": "COMMAND",
"id": "command",
"description": "命令"
}
名字 类型 含义 备注 必需
type 字符串 节点类型 -
id 字符串 节点ID -
brief 字符串 简要说明 如果description太长,推荐填写brief
description 字符串 节点介绍 -
  • COMMAND_NAME 命令名
1
2
含义:命令名
例子:setblock
1
2
3
4
5
6
{
"type": "COMMAND_NAME",
"id": "command",
"brief": "命令名",
"description": "要提供帮助的命令名称"
}
名字 类型 含义 备注 必需
type 字符串 节点类型 -
id 字符串 节点ID -
brief 字符串 简要说明 如果description太长,推荐填写brief
description 字符串 节点介绍 -
  • FLOAT 小数
1
2
含义:小数
例子:1.5
1
2
3
4
5
6
7
8
{
"type": "FLOAT",
"id": "fadeInSeconds",
"brief": "淡入时间",
"description": "相机视角的淡入时间",
"min": 0,
"max": 10
}
名字 类型 含义 备注 必需
type 字符串 节点类型 -
id 字符串 节点ID -
brief 字符串 简要说明 如果description太长,推荐填写brief
description 字符串 节点介绍 -
min 小数 最小值 -
max 小数 最大值 -
  • INTEGER 整数
1
2
含义:整数
例子:2
1
2
3
4
5
6
{
"type": "INTEGER",
"id": "page",
"brief": "页码",
"description": "要展示的命令列表的页码(小于1的数字会被视为1,大于总页数会被默认为展示最后一页)"
}
名字 类型 含义 备注 必需
type 字符串 节点类型 -
id 字符串 节点ID -
brief 字符串 简要说明 如果description太长,推荐填写brief
description 字符串 节点介绍 -
min 整数 最小值 -
max 整数 最大值 -
  • INTEGER_WITH_UNIT 带单位的整数
1
2
含义:带单位的整数
例子:2L
1
2
3
4
5
6
7
8
9
10
11
12
{
"type": "INTEGER_WITH_UNIT",
"id": "amount",
"brief": "经验值数量",
"description": "给予玩家的经验值数量",
"units": [
{
"name": "L",
"description": "一个经验等级"
}
]
}
名字 类型 含义 备注 必需
type 字符串 节点类型 -
id 字符串 节点ID -
brief 字符串 简要说明 如果description太长,推荐填写brief
description 字符串 节点介绍 -
units 数组 单位列表 -

每个单位:

名字 类型 含义 备注 必需
name 字符串 单位名 -
description 字符串 介绍 -
  • ITEM 物品
1
2
含义:物品
例子:minecraft:fire_charge 1 12
1
2
3
4
5
6
{
"type": "ITEM",
"id": "item",
"description": "要给予实体的物品",
"nodeItemType": 0
}
名字 类型 含义 备注 必需
type 字符串 节点类型 -
id 字符串 节点ID -
brief 字符串 简要说明 如果description太长,推荐填写brief
description 字符串 节点介绍 -
nodeItemType 正整数 0代表<物品ID> <物品数量> <附加值> [物品组件],1代表<物品ID> <附加值> <物品数量> -
  • NAMESPACE_ID 带命名空间的ID
1
2
含义:带命名空间的ID
例子:minecraft:stone
1
2
3
4
5
6
7
8
{
"type": "NAMESPACE_ID",
"id": "entityType",
"brief": "实体类型",
"description": "要被召唤的实体类型",
"key": "entities",
"ignoreError": true
}
名字 类型 含义 备注 必需
type 字符串 节点类型 -
id 字符串 节点ID -
brief 字符串 简要说明 如果description太长,推荐填写brief
description 字符串 节点介绍 -
key 字符串 id的键值,用于在id列表索引id key和contents至少存在一个
ignoreError 布尔值 如果用户输入的内容与id列表不一致时是否报错,默认为false -
contents 数组 id列表 key和contents至少存在一个

contents每个ID:

名字 类型 含义 备注 必需
idNamespace 字符串 命名空间 默认为minecraft,如果是minecraft,建议省略
name 字符串 ID名字 -
description 字符串 ID介绍 -
  • NORMAL_ID 普通的ID
1
2
含义:普通的ID
例子:creative
1
2
3
4
5
6
7
8
{
"type": "NORMAL_ID",
"id": "hud_element",
"brief": "HUD元素",
"description": "将被修改的HUD元素",
"key": "hudElement",
"ignoreError": true
}
名字 类型 含义 备注 必需
type 字符串 节点类型 -
id 字符串 节点ID -
brief 字符串 简要说明 如果description太长,推荐填写brief
description 字符串 节点介绍 -
key 字符串 id的键值,用于在id列表索引id key和contents至少存在一个
ignoreError 布尔值 如果用户输入的内容与id列表不一致时是否报错,默认为false -
contents 数组 id列表 key和contents至少存在一个

contents每个ID:

名字 类型 含义 备注 必需
name 字符串 ID名字 -
description 字符串 ID介绍 -
  • POSITION 位置
1
2
含义:位置
例子:~1~0.2~-5
1
2
3
4
5
6
{
"type": "POSITION",
"id": "position",
"brief": "方块位置",
"description": "要被更改方块的位置"
}
名字 类型 含义 备注 必需
type 字符串 节点类型 -
id 字符串 节点ID -
brief 字符串 简要说明 如果description太长,推荐填写brief
description 字符串 节点介绍 -
  • RELATIVE_FLOAT 相对坐标
1
2
含义:相对坐标
例子:~1.5
1
2
3
4
5
6
7
{
"type": "RELATIVE_FLOAT",
"id": "xRot",
"brief": "rx",
"description": "相机视角绕Y轴旋转的旋转角度(-180.0表示北,-90.0表示东,0.0表示南,90.0表示西)",
"canUseCaretNotation": false
}
名字 类型 含义 备注 必需
type 字符串 节点类型 -
id 字符串 节点ID -
brief 字符串 简要说明,用于显示命令结构 如果description太长,推荐填写brief
description 字符串 节点介绍 -
canUseCaretNotation 布尔值 是否可以使用局部坐标 -
  • REPEAT 重复的参数
1
2
含义:重复的参数
例子:-
1
2
3
4
5
6
{
"type": "REPEAT",
"id": "executeParam",
"description": "子命令",
"key": "execute"
}
名字 类型 含义 备注 必需
type 字符串 节点类型 -
id 字符串 节点ID -
brief 字符串 简要说明,用于显示命令结构 如果description太长,推荐填写brief
description 字符串 节点介绍 -
key 字符串 键值,用于在repeat中进行索引 -
  • STRING 字符串
1
2
含义:字符串
例子:"a a"
1
2
3
4
5
6
7
8
{
"type": "STRING",
"id": "trackName",
"brief": "播放音乐名",
"description": "必须为音乐名或record.<music_name>或music.game.<music_name>",
"canContainSpace": true,
"ignoreLater": false
}
名字 类型 含义 备注 必需
type 字符串 节点类型 -
id 字符串 节点ID -
brief 字符串 简要说明 如果description太长,推荐填写brief
description 字符串 节点介绍 -
canContainSpace 布尔值 是否可以包含空格,也就是说是否支持使用双引号 -
ignoreLater 布尔值 是否忽略后面的东西,也就是说是否把后面的所有文字都当作字符串 -
  • TARGET_SELECTOR 目标选择器
1
2
含义:目标选择器
例子:@e[r=5]
1
2
3
4
5
6
7
8
9
{
"type": "TARGET_SELECTOR",
"id": "target",
"description": "被给予物品的玩家",
"isOnlyOne": false,
"isMustPlayer": true,
"isMustNPC": false,
"isWildcard": false
}
名字 类型 含义 备注 必需
type 字符串 节点类型 -
id 字符串 节点ID -
brief 字符串 简要说明 如果description太长,推荐填写brief
description 字符串 节点介绍 -
isOnlyOne 布尔值 是否只能选择1个对象 -
isMustPlayer 布尔值 是否只能选择玩家 -
isMustNPC 布尔值 是否只能选择NPC -
isWildcard 布尔值 是否可以使用* -
  • TEXT 文字
1
2
含义:文字
例子:score
1
2
3
4
5
6
7
8
9
{
"type": "TEXT",
"id": "play",
"description": "播放音乐",
"data": {
"name": "play",
"description": "播放音乐"
}
}
名字 类型 含义 备注 必需
type 字符串 节点类型 -
id 字符串 节点ID -
brief 字符串 简要说明 如果description太长,推荐填写brief
description 字符串 节点介绍 -
data 数组 内容 -

data:

名字 类型 含义 备注 必需
name 字符串 ID名字 -
description 字符串 ID介绍 -
  • RANGE 范围
1
2
含义:范围
例子:1..2
1
2
3
4
5
{
"type": "RANGE",
"id": "range",
"description": "分数范围"
}
名字 类型 含义 备注 必需
type 字符串 节点类型 -
id 字符串 节点ID -
brief 字符串 简要说明 如果description太长,推荐填写brief
description 字符串 节点介绍 -
  • JSON Json文本
1
2
含义:Json文本
例子:{"rawtext":[{"text":"Hello"}]}
1
2
3
4
5
6
7
{
"type": "JSON",
"id": "raw json message",
"brief": "JSON文本",
"description": "要发送的消息",
"key": "rawtext"
}
名字 类型 含义 备注 必需
type 字符串 节点类型 -
id 字符串 节点ID -
brief 字符串 简要说明 如果description太长,推荐填写brief
description 字符串 节点介绍 -
key 字符串 键值,用于在json中进行索引 -
  • JSON_BOOLEAN Json布尔值
1
2
含义:Json布尔值
例子:true
1
2
3
4
5
6
7
{
"type": "JSON_BOOLEAN",
"id": "lock",
"description": "是否锁定日夜更替",
"descriptionTrue": "锁定昼夜更替",
"descriptionFalse": "不锁定昼夜更替"
}
名字 类型 含义 备注 必需
type 字符串 节点类型 -
id 字符串 节点ID -
brief 字符串 简要说明 如果description太长,推荐填写brief
description 字符串 节点介绍 -
descriptionTrue 字符串 true值得介绍 -
descriptionTrue 字符串 false值得介绍 -
  • JSON_FLOAT Json小数
1
2
含义:Json小数
例子:1.5
1
2
3
4
5
{
"type": "JSON_FLOAT",
"id": "score",
"description": "分数"
}
名字 类型 含义 备注 必需
type 字符串 节点类型 -
id 字符串 节点ID -
brief 字符串 简要说明 如果description太长,推荐填写brief
description 字符串 节点介绍 -
min 小数 最小值 -
max 小数 最大值 -
  • JSON_INTEGER Json整数
1
2
含义:Json整数
例子:12
1
2
3
4
5
{
"type": "JSON_INTEGER",
"id": "SCORE_VALUE",
"description": "可选。如果存在此值,则无论分数是多少,都将使用此值。"
}
名字 类型 含义 备注 必需
type 字符串 节点类型 -
id 字符串 节点ID -
brief 字符串 简要说明 如果description太长,推荐填写brief
description 字符串 节点介绍 -
min 整数 最小值 -
max 整数 最大值 -
  • JSON_LIST Json列表
1
2
含义:Json列表
例子:[..., ...]
1
2
3
4
5
6
{
"type": "JSON_LIST",
"id": "WITH",
"description": "translate使用的聊天字符串参数的列表。",
"data": "STRING"
}
名字 类型 含义 备注 必需
type 字符串 节点类型 -
id 字符串 节点ID -
brief 字符串 简要说明 如果description太长,推荐填写brief
description 字符串 节点介绍 -
data 字符串 数据类型 -
  • JSON_NULL Json空值
1
2
含义:Json空值
例子:null
1
2
3
4
5
{
"type": "JSON_NULL",
"id": "null",
"description": "空值"
}
名字 类型 含义 备注 必需
type 字符串 节点类型 -
id 字符串 节点ID -
brief 字符串 简要说明 如果description太长,推荐填写brief
description 字符串 节点介绍 -
  • JSON_OBJECT Json对象
1
2
含义:Json对象
例子:{"...": ..., "...": ...}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"type": "JSON_OBJECT",
"id": "BLOCKS",
"description": "方块类型",
"data": [
{
"key": "blocks",
"description": "方块类型",
"value": [
"BLOCK_ID_LIST"
]
}
]
}
名字 类型 含义 备注 必需
type 字符串 节点类型 -
id 字符串 节点ID -
brief 字符串 简要说明 如果description太长,推荐填写brief
description 字符串 节点介绍 -
data 数组 键值对 -

data中的每个键值对:

名字 类型 含义 备注 必需
key 字符串 -
description 字符串 介绍 -
value 字符串数组 值的ID -
  • JSON_STRING Json字符串
1
2
含义:Json字符串
例子:"..."
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
"type": "JSON_STRING",
"id": "TARGET_SELECTOR",
"description": "目标选择器",
"data": [
{
"type": "TARGET_SELECTOR",
"id": "TARGET_SELECTOR",
"description": "目标选择器",
"isMustPlayer": false,
"isOnlyOne": false,
"isMustNPC": false,
"isWildcard": false
},
{
"type": "TEXT",
"id": "ALL_TARGET",
"description": "目标选择器",
"data": {
"name": "*",
"description": "选择全部实体"
}
}
]
}
名字 类型 含义 备注 必需
type 字符串 节点类型 -
id 字符串 节点ID -
brief 字符串 简要说明 如果description太长,推荐填写brief
description 字符串 节点介绍 -
data 数组 字符串文本的节点 -