更好的自定义命令

更好的自定义命令

A fabric服务器端模组,用于创建自定义命令并修改现有命令

Melius Commands

Discord

一个用于创建自定义命令并修改现有命令的 Fabric 服务端模组

自定义命令

要添加自定义命令,请在 ./config/melius-commands/commands 中创建一个 json 文件。 示例文件请参见 examples/commands!在游戏内运行 /reload 来应用你的更改。

JSON 格式

Json 格式包含注释以便说明(不要在你的文件中复制 //)

命令节点(literal / argument)

查看在线生成器来快速轻松地创建你的自定义命令!这还会确保你的语法有效。

根节点必须始终是一个 literal 节点。

{
  "id": "...",
  // 命令 id(literal 命令节点的命令名称)(必需)
  "type": "...",
  // 参数类型,见下文。(仅 argument 节点,必需)
  "executes": [
    // 命令节点执行列表,见下文。
  ],
  "require": {
    // 更多信息请参见 <a href="https://github.com/Patbox/PredicateAPI/" target="_blank" rel="nofollow">https://github.com/Patbox/PredicateAPI/</a>。
    // 如果对于某个命令源此表达式求值为 true,则该命令源将可以访问此命令节点!
  },
  "literals": [
    // literal 子节点列表
  ],
  "arguments": [
    // argument 子节点列表
  ],
  "redirect": "..."
  // 如果指定,命令将复制指定节点的执行、要求和子节点。
  // 这实际上可以为另一个命令创建别名
}

执行

这可以是一个简单的字符串,将以静默方式、以控制台身份并以 op 等级 4 执行;也可以手动配置如下:

{
  "command": "...",
  // 将要执行的命令(可以使用 ${id} 引用参数值)
  "silent": false,
  // 如果设置为 true,则禁用命令输出
  "as_console": false,
  // 此命令是否应作为控制台命令源执行
  "op_level": 4
  // 命令源的运算符等级(可选)(可能的值:0 - 4)
}

command 执行值可以使用命令参数中的占位符以及全局占位符,格式为 ${PLACEHOLDER},其中 PLACEHOLDER 可以是参数 id,也可以是像 player:name 这样的全局占位符。

参数类型

有关所有参数类型的完整列表,请参阅 ARGUMENTS。 某些参数类型需要额外的参数,必须以空格分隔追加。

命令修改器

要添加命令要求,请在 ./config/melius-commands/modifiers 中创建一个 json 文件。 示例文件请参见 examples/modifiers!

JSON 格式

查看在线生成器来快速轻松地创建你的自定义命令修改器!这还会确保你的语法有效。

Json 格式包含注释以便说明(不要在你的文件中复制 //)

命令修改器

语法取决于你选择的修改器类型。最重要的一点是,有两种类型的命令匹配器:

  • 节点匹配器将根据其路径匹配命令节点(brigadier 内部用于表示命令的结构)(例如 teleport.location,将匹配任何像 /teleport 0 100 0 这样的命令)
  • 命令匹配器将匹配命令执行期间使用的字符串(例如 warp end 将匹配 /warp end)

这两种类型都有三种不同的风格:

  • strict 修改器只会应用于那个确切的节点 / 那个确切的命令输入
  • starts_with 修改器将应用于指定的节点 / 命令以及任何比它“更长”的内容
  • regex 修改器将应用于所有匹配正则表达式的内容

节点匹配器有一个额外的字段叫做 requirement_modifier,它允许你修改节点的要求,这将从不满足要求的玩家 / 命令源中完全移除该命令!

命令节点路径

你可以使用 /melius-commands path &lt;cmd&gt; 命令来确定任何命令的命令节点路径。 示例:要检查 /tp DrexHD 0 100 0(将实体传送到一个方块位置)的路径,你输入 /melius-commands path tp DrexHD 0 100 0,将收到 teleport.targets.location,你可以在命令修改器中使用它。

占位符

  • %melius-commands:cooldown [id]% / %melius-commands:cooldown [id] [formatting]% - 玩家命令冷却。
    • [id] 是冷却修改器中指定的 id。
    • [formatting] 是持续时间格式化,请确保正确转义。

调试异常

如果你在执行命令时收到 An unexpected error occurred trying to execute that command 消息,你可以执行 /melius-commands debug-command-exceptions 来切换命令异常调试器。当此模式激活时,遇到此类错误时会向控制台记录额外的调试信息。