同步官网文档8m_25d

This commit is contained in:
kwiilh
2025-08-25 18:36:29 +08:00
parent 4dc0ecf18d
commit 9e8855eeb4
5089 changed files with 8798 additions and 4799 deletions

View File

@@ -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"}`时,输入时会显示
![avatar](./picture/custom_command3.png)
- default不必和type的类型符合**含有default的参数必须排在参数列表的尾部**,且在游戏中可以不传。<br>例如配置为`{"name": "浮点数", "type": "float", "default": null}`时,输入时会显示
![avatar](./picture/custom_command4.png)
## 使用
- 开发者需要监听<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`指令。
![avatar](./picture/custom_command6.png)
## demo说明
- customCommandDemo实现了个指令,`customtest`和`customtest2`指令用来给开发者测试各种参数的用法,`explode`指令实现了让指定坐标或实体位置发生爆炸的功能。
- customCommandDemo实现了个指令,`customtest`的三个指令用来给开发者测试用法,`explode`指令实现了让指定坐标或实体位置发生爆炸的功能。
![avatar](./picture/custom_command5.png)
- 通过编写两个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
```