同步官网文档8m_25d
This commit is contained in:
@@ -31,8 +31,9 @@ selection: true
|
||||
"description": "测试所有配置默认值的参数",
|
||||
"permission_level": "game_directors",
|
||||
"args": [
|
||||
{"name": "浮点数", "type": "float", "default": 12.3},
|
||||
{"name": "浮点数", "type": "float", "default": 123},
|
||||
{"name": "整数", "type": "int", "default": 12},
|
||||
{"name": "布尔值", "type":"bool", "default": true},
|
||||
{"name": "字符串", "type": "str", "default": "hello"},
|
||||
{"name": "目标", "type": "target", "default": "@s"},
|
||||
{"name": "位置", "type": "pos", "default": [2.5, 3.0, 4.4]},
|
||||
@@ -51,42 +52,66 @@ selection: true
|
||||
|
||||
- 以下是代码和说明。
|
||||
|
||||
|键|类型|解释|
|
||||
|:-|:-|:-|
|
||||
|format_version|str|格式版本,请填写0.0.1|
|
||||
|name|str|指令名称,例如gamemode|
|
||||
|description|str|指令描述,支持在语言文件(例如zh_CN.lang)中定义|
|
||||
|键|类型|默认值|解释|
|
||||
|:-|:-|:-|:-|
|
||||
|format_version|str||格式版本,请填写0.0.1|
|
||||
|name|str||指令名称,例如gamemode|
|
||||
|description|str||指令描述,也支持在语言文件(例如zh_CN.lang)中定义|
|
||||
|permission_level|str|权限等级,可选game_directors、admin、host、owner、any,具体含义如下<br>game_directors:任何操作员都可以运行此命令,包括命令方块<br>admin:任何操作员都可以运行此命令,但命令方块不能<br>host:任何服务器主机都可以运行此命令<br>owner:只有专用服务器可以运行此命令<br>any:任何人都可以运行此命令|
|
||||
|
||||
|
||||
- args是一个包含object的列表,定义指令的参数。每个object都代表一个参数,object的顺序决定指令参数的输入顺序,每个object的参数说明如下
|
||||
|
||||
|键|类型|解释|
|
||||
|:-|:-|:-|
|
||||
|name|str|参数名称,会在输入提示中显示|
|
||||
|type|str|参数类型,目前仅支持上面json里的7种类型参数|
|
||||
|type|str|参数类型,具体见<a href="../../../mcdocs/1-ModAPI/事件/世界.html#customcommandtriggerserverevent" rel="noopenner">CustomCommandTriggerServerEvent</a>事件的备注|
|
||||
|default|any|参数默认值,可填写任意json数据格式|
|
||||
|
||||
- 例如配置为`{"name": "浮点数", "type": "float"}`时,输入时会显示
|
||||
|
||||

|
||||
|
||||
|
||||
- default不必和type的类型符合,**含有default的参数必须排在参数列表的尾部**,且在游戏中可以不传。<br>例如配置为`{"name": "浮点数", "type": "float", "default": null}`时,输入时会显示
|
||||
|
||||

|
||||
|
||||
|
||||
## 使用
|
||||
|
||||
- 开发者需要监听<a href="../../../mcdocs/1-ModAPI-beta/事件/世界.html#customcommandtriggerserverevent" rel="noopenner">CustomCommandTriggerServerEvent</a>,为自定义指令编写功能。
|
||||
- 使用<a href="../../../mcdocs/1-ModAPI-beta/接口/世界/指令.html#setcommand" rel="noopenner">SetCommand</a>接口可以触发自定义指令。
|
||||
- 使用<a href="../../../mcdocs/1-ModAPI-beta/事件/世界.html#globalcommandserverevent" rel="noopenner">GlobalCommandServerEvent</a>可以监听所有指令,包括自定义指令。
|
||||
- 开发者需要监听<a href="../../../mcdocs/1-ModAPI/事件/世界.html#customcommandtriggerserverevent" rel="noopenner">CustomCommandTriggerServerEvent</a>,为自定义指令编写功能。
|
||||
- 使用<a href="../../../mcdocs/1-ModAPI/接口/世界/指令.html#setcommand" rel="noopenner">SetCommand</a>接口可以触发自定义指令。
|
||||
- 使用<a href="../../../mcdocs/1-ModAPI/事件/世界.html#globalcommandserverevent" rel="noopenner">GlobalCommandServerEvent</a>可以监听所有指令,包括自定义指令。
|
||||
|
||||
## 配置变体
|
||||
|
||||
写好自定义指令的一套参数后,可以使用args1、args2......args9来额外配置多套参数,加上原来的args,最多能配置10套参数,开发者可以通过<a href="../../../mcdocs/1-ModAPI/事件/世界.html#customcommandtriggerserverevent" rel="noopenner">CustomCommandTriggerServerEvent</a>的variant字段确定玩家发送的是哪一套参数。
|
||||
|
||||
```json
|
||||
{
|
||||
"format_version": "0.0.1",
|
||||
"name": "customtest3",
|
||||
"description": "测试参数变体",
|
||||
"args": [
|
||||
...
|
||||
],
|
||||
"args1": [
|
||||
...
|
||||
],
|
||||
"args2": [
|
||||
...
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
- 注意,配置指令变体时,变体区分处的参数(如首个参数)类型不能相同,例如,如果你注册了`/explode <pos> <float>`和`/explode <float> <pos>`,那么玩家调用/explode 1 1 1 1将无法解析。如果一定要这样设计,建议在前方加一个type为`enum`或`enum_short`的参数用于区分,`enum`的用法具体见示例mod中的`customtest3`指令。
|
||||
|
||||

|
||||
|
||||
## demo说明
|
||||
|
||||
- customCommandDemo实现了三个指令,`customtest`和`customtest2`指令用来给开发者测试各种参数的用法,`explode`指令实现了让指定坐标或实体位置发生爆炸的功能。
|
||||
- customCommandDemo实现了四个指令,`customtest`的三个指令用来给开发者测试用法,`explode`指令实现了让指定坐标或实体位置发生爆炸的功能。
|
||||
|
||||

|
||||
|
||||
- 通过编写两个json文件,注册两次explode,可实现可变参数类型功能,但需要注意这种情况下,你只能根据参数的value去判断,name和type将失效。例如,如果你注册了`/explode <pos> <float>`和`/explode <float> <pos>`,那么玩家调用/explode 1 1 1 1将无法解析。通常情况下不建议重复注册指令,除非你明确知道自己要做什么。
|
||||
- 该指令支持多种调用方式,示例如下
|
||||
```
|
||||
让发送指令的对象爆炸
|
||||
@@ -96,7 +121,7 @@ selection: true
|
||||
让所有鸡爆炸
|
||||
/explode @e[type=chicken]
|
||||
让发送对象的上方8格爆炸,爆炸范围为3,不破坏方块,不产生火焰
|
||||
/explode ~~8~ 3 0
|
||||
/explode ~~8~ 3 false
|
||||
让发送对象爆炸,爆炸范围为3,破坏方块,产生火焰
|
||||
/explode @s 3 1 1
|
||||
```
|
||||
/explode @s 3 true true
|
||||
```
|
||||
Reference in New Issue
Block a user