Skip to content

更多参数类型/详细介绍及示例

以前我们学习过这个参数类型列表:

参数类型作用示例
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": "消息"}

除了这些参数类型,还有一些参数类型,让我们全部都详细介绍一下吧!

通用参数

  • optional: 可选参数,表示这个参数可以被省略,例如gamemode的目标选择器可以省略,默认为自己

具体参数

selector: 选择玩家或实体, 例如:

json
{
  "type": "selector",
  "name": "玩家(参数名)",
  "target": "player" // 在ReFogrged中被废弃,可以不写
}

会让用户写目标选择器

uint: 无符号整数(人话:非负整数), 例如:

json
{   
  "type": "uint",
  "name": "数量(参数名)"
}

他会让用户输入一个无符号整数,例如:012等。

int : 整数,例如:

json
{
  "type": "int",
  "name": "数量(参数名)"
}

他会让用户输入一个整数,例如:123456等。

float: 浮点数(小数),例如:

json
{
  "type": "float",
  "name": "参数名"
}

他会让用户输入一个浮点数,例如:3.142.50.01等。

plain : 固定的字符串,例如:

json
{
  "type": "plain",
  "name": "参数名",
  "prompt": "提示文本"
}

他会让用户输入一个文本

relative : 相对位置,例如:

json
{
  "type": "relative",
  "name": "参数名"
}

他会让用户输入一个相对位置,例如:~2 ~2 ~3等。

  • 显示<参数名:数值>

position : 绝对位置,例如:

json
{
  "type": "position",
  "name": "参数名"
}

他会让用户输入一个绝对位置,例如:12 46 -89等。

  • 显示<参数名:x y z>

string : 字符串,例如:

json
{
  "type": "string",
  "name": "参数名"
}

他会让用户输入一个字符串,例如:helloworld等。

  • <参数名:文本>

enum : 枚举,例如:

json
{
  "type": "enum",
  "name": "游戏模式",
  "list": "gamemode"
}

他会让用户从预定义的下拉菜单中选择一个选项,例如:creativesurvival等。

custom:自定义参数,一个正则表达式,例如:

json
{
  "type": "custom",
  "name": "等级",
  "vtype":"数值",
  "input": "^(\\+|-)?(\\d+[Ll]?)?",
  "finish": "^(\\+|-)?\\d+[Ll]"
}

他会让用户输入一个自定义的字符串,例如:+100-50100L等。

::: tips
正则表达式是什么?
正则表达式(Regular Expression)是一种文本模式匹配的工具,它能帮助你方便的检查一个字符串是否与某种模式匹配
:::

text:文本

文本没有任何补全,这是一个示例:

json
{
    "type": "text",
    "name": "内容"
}

rawtext: 原始文本,例如:

json
{
  "type": "rawtext",
  "name": "参数名"
}

他会让用户输入一个原始文本,例如:{"text": "hello"}等。

  • 显示<参数名:文本 JSON>

nbt: NBT数据,例如:

json
{
  "type": "nbt",
  "name": "参数名",
  "component": "..."
}

他会让用户输入一个NBT数据

  • 显示<参数名:JSON>

component:是NBT组件名