本帖最后由 Fan___ 于 2025-1-26 23:00 编辑
前言
Commandant是一款强大的命令拦截与处理插件,它允许服务器管理员通过灵活的配置,定义各种规则来拦截、修改或增强玩家输入的命令。利用该插件,你可以轻松实现命令别名、黑名单、权限控制、动态命令等高级功能。  核心特性
- 灵活的拦截规则:通过正则表达式、权限检查、世界限定、自定义脚本等多种条件,精准匹配需要处理的命令。、
- 强大的动作系统:拦截命令后,你可以执行取消命令、输出日志、替换命令、执行脚本等多种动作,甚至可以组合多个动作实现复杂逻辑。、
- Kether 脚本集成: 充分利用 Kether 脚本的强大功能,编写自定义条件和动作,实现无限可能
 安装与配置
1. 将插件文件放入服务器的 plugins 文件夹。 2. 启动服务器,插件将自动生成配置文件 `plugins/Commandant/interceptors.yml`。 3. 编辑 `interceptors.yml` 文件,根据你的需求配置拦截器。
4. 使用 `/commandant reload` 命令重载配置,使修改生效。 interceptors.yml配置文件: - interceptors:
- block_ops:
- enabled: true
- priority: 100
- condition:
- type: "any"
- rules:
- - type: "regex"
- pattern: "^/give .* diamond$"
- actions:
- - type: "log"
- format: "黑名单命令拦截: {player} -> {command}"
- - type: "script"
- script: |-
- tell 你使用了黑名单命令
- cancel_cmd_event
- has_perm_check:
- enabled: true
- priority: 50
- condition:
- type: "all"
- rules:
- - type: "regex"
- pattern: "/home"
- - type: "has_permission"
- permission: "myhome.use"
- actions:
- - type: "script"
- script: |-
- tell 你拥有myhome.use权限
- no_perm_check:
- enabled: true
- priority: 50
- condition:
- type: "all"
- rules:
- - type: "regex"
- pattern: "/home"
- - type: "no_permission"
- permission: "myhome.use"
- actions:
- - type: "script"
- script: |-
- tell 你没有myhome.use权限
复制代码 条件(Condition): 条件用于判断是否触发拦截器。支持以下几种条件类型:
| 条件类型 | 描述 | 参数 | | regex | 使用正则表达式匹配命令 | pattern: 正则表达式字符串 | | all | 必须满足所有子条件 | rules: 子条件列表,每个子条件也是一个完整的条件配置 | | any | 满足任意一个子条件即可 | rules: 子条件列表,每个子条件也是一个完整的条件配置 | | has_permission | 玩家拥有指定权限 | permission: 权限节点 | | no_permission | 玩家没有指定权限 | permission: 权限节点 | | world | 玩家位于指定世界 | worlds: 世界名称列表 | | script | 使用 Kether 脚本进行条件判断。脚本需要返回一个布尔值 | script: Kether 脚本代码。可以使用 @command 变量获取当前命令 |
动作(Action): 动作定义了拦截器触发后执行的操作。支持以下几种动作类型:
| 动作类型 | 描述 | 参数 | | cancel | 取消命令的执行 | | | log | 记录到日志文件 | format: 日志格式,可以使用 {player} 和 {command} 占位符 | | replace | 替换命令并执行 | command: 替换后的命令,可以使用 {player}占位符 | | script | 执行 Kether 脚本 | script: Kether 脚本代码 |
进阶使用
- 组合多个条件和动作: 你可以根据需要组合多个条件和动作,创建更加复杂的拦截规则。例如,你可以先检查玩家是否拥有权限,然后检查玩家是否位于指定世界,最后再执行替换命令或执行脚本等操作。
- 利用 Kether 脚本: Kether 脚本提供了无限的可能性。你可以使用 Kether 脚本实现各种复杂的逻辑
黑名单对应拦截器展示 
有问题请在QQ群1026156463中联系
|