第一个自定义指令!
现在!我们成功写完了拓展包的信息,接下来我们开始写第一个自定义指令!
首先,我们要了解指令的基本结构
- commands:自定义指令 格式:
指令名:{介绍,……}
这样看肯定是看不懂的,这里给出一个例子:
json
"commands": {
"hello": { // 命令名称
"description": "向玩家发送问候消息",
"patterns": { // 命令的使用模式
"default": { // 默认模式
"params": [ // 参数列表(数组)
// 在这里定义参数
]
}
}
}
}
这个hello是自定义指令名
description
:介绍patterns
:一个命令可以有多种使用方式(模式),default
是最常见的一种。params
:一个数组,包含该模式下所需的所有参数。。
定义参数
参数是指令都要有的东西,他有很多类型,下面列出了所有类型
参数类型 | 作用 | 示例 |
---|---|---|
selector | 选择玩家或实体。 | {"type": "selector", "name": "目标", "target": "player"} |
string | 输入字符串,可带自动补全。 | {"type": "string", "name": "物品ID", "suggestion": "block"} |
int / uint | 输入整数/无符号整数。 | {"type": "int", "name": "数量"} |
float | 输入浮点数。 | {"type": "float", "name": "时间"} |
position | 输入坐标。 | {"type": "position", "name": "位置"} |
enum | 关键类型,从预定义的下拉菜单中选择。 | {"type": "enum", "name": "游戏模式", "list": "gamemode"} |
plain | 显示固定文本(非输入)。 | {"type": "plain", "name": "kill", "prompt": "击杀"} |
rawtext / rawjson | 输入原始文本或JSON文本。 | {"type": "rawtext", "name": "消息"} |
但是,enum,string这些我们暂时还没讲,所以暂时先跳过。
好了,经历了这么多,我们终于可以开始写第一个自定义指令了!
如果你写好了记得在命令助手加载,试试效果!
这里给出一个写好的示例:
json
{
"name": "MyCommandLib", // 这个是拓展包名字
"author": "Mark_CA_Exdook", // 这个是作者
"description": "This is a command library for my game.", // 这个是描述
"uuid": "12345678-1234-123456789012", // 这个是唯一标识符
"version": [1,0,0], // 这个是版本号,1,0,0就是1.0.0
"commands": {
"hello": {
"description": "Says hello to the player.", // 对被选择的玩家说个hello
"patterns": { // 命令的使用模式
"default": { // 默认模式
"params": [ // 参数列表(数组)
{
"type": "selector", // 选择玩家
"name": "target", // 目标
"target": "player" // 目标类型
}
]
}
}
}
}
}
这个指令的作用是:选择一个玩家,然后给他发个hello。
恭喜你,你已经成功写完了第一个自定义指令!
::: INFO
这个params是一个数组,所以可以有多个参数!
:::