Commands.yml 介绍
commands.yml 是一个配置文件,用于为 CraftBukkit 服务器定义自定义命令和命令方块覆盖。
命令覆盖系统可强制服务器对特定命令方块使用 Mojang 提供的命令,而别名系统允许管理员定义自定义命令并强制使用特定版本的命令。
命令覆盖系统
Bukkit 在默认情况下提供了一个命令覆盖系统。
优先级
Aliases(自定义命令)> Plugin Commands(插件命令)> Bukkit Commands(Bukkit 命令)> Mojang Commands(Mojang 命令)。
Aliases(定义命令):具有最高优先级,会覆盖所有命令。这意味着如果存在与某个命令匹配的别名,服务器将优先执行该别名所定义的命令。
Plugin Commands(插件命令):如果没有找到匹配的命令,服务器会查找匹配的插件命令并使用它。
Bukkit Commands(Bukkit 命令):如果没有找到匹配的插件命令,服务器将使用 Bukkit 提供的内置命令。
Mojang Commands(Mojang 命令):如果没有找到匹配的 Bukkit 命令,作为最后一个回退选项,服务器将使用 Mojang 提供的内置命令。
每个 fallback 都有相应的权限控制,除插件命令外,Bukkit 命令的权限为 bukkit.command.*,Mojang 命令的权限为 minecraft.command.*
Commands.yml 内容
command-block-overrides: []aliases: icanhasbukkit: - "version $1-"
关于 command-block-overrides 部分
表明当前没有对命令方块的覆盖进行设置。
这个部分的作用是控制命令方块覆盖功能。在 Bukkit 的历史中,曾提供过一些与 Minecraft 原本不同版本的命令。通过这个设置,可以强制服务器专门为命令方块使用 Mojang 提供的版本的命令 (MC 原版命令)。
而在命令方块之外使用的命令,将按照正常情况使用 Bukkit(或插件) 版本的命令。
命令覆盖:
当你需要命令方块执行 Mojang 命令 (MC 原版命令) 而不是被插件覆盖的命令覆盖时,您可以将这个命令加入到 command-block-overrides 中,以下使用 give 命令举例 :
command-block-overrides: - "give"
当在 Essentitals 插件加载时在命令方块中的实现效果将会是 minecraft:give 而不是 essentials:give
当你需要命令方块执行大量 Mojang 命令 (MC 原版命令) 而不被插件等覆盖时,您可以将这个命令加入到 command-block-overrides 中,以下指令会覆盖命令方块中所有的命令使用 MC 原版命令 :
command-block-overrides: - "*"
关于 aliases 部分
在这个配置中,定义了一个自定义命令为 icanhasbukkit 。
对应的命令为"version $1-",这意味着当玩家输入 icanhasbukkit 这个命令时,实际上会执行 version $1- 这个命令
自定义命令:
这一部分允许您为服务器上的命令定义自定义命令。从本质上讲,自定义命令允许您创建可以同时执行多个功能的自定义命令。这是一个强大的工具,允许您为服务器玩家定义更容易记住的命令。
修饰语描述例子$
场景描述命令用法示例配置添加运行 /version 命令的替代方法通过注册一个名为 icanhasbukkit 的自定义命令,在使用该自定义命令时会执行 version 命令,从而提供了一种运行 /version 命令的替代方式。输入 /icanhasbukkitaliases: icanhasbukkit: - "version"删除命令注册一个名为 summon 的自定义命令并将其映射到空列表,以此告诉服务器取消注册该命令,防止其存在和发挥作用。无特定命令输入示例,因为目的是删除命令aliases: summon: - []重命名 /version 命令注册一个名为 icanhasversion 的自定义命令来执行 version 命令,同时创建一个名为“version”的自定义命令并映射到空列表以删除原有的 /version 命令。输入 /icanhasversionaliases: icanhasversion: - "bukkit:version" version: - []需要参数创建一个名为 givedirt 的自定义命令,该自定义命令需要提供一个参数 (这里是玩家的名字) 才能成功运行。输入 /givedirt