- 版权类型
- 原创
- 插件中文名称
- 命令守卫
- 插件英文名称
- Commandant
- 支持的核心(服务端)
- Spigot
- Paper
- 语言支持
- 中文(简体)
- 适配版本(Java)
- 1.21
- 1.20
- 1.19
- 1.18
- 1.17
- 1.16
- 1.15
- 1.14
- 1.13
- 1.12
[MD]
Commandant是一款强大的命令拦截与处理插件,它允许服务器管理员通过灵活的配置,定义各种规则来拦截、修改或增强玩家输入的命令。利用令行者,你可以轻松实现命令别名、黑名单、权限控制、动态命令等高级功能
### 核心特性
* **灵活的拦截规则:** 通过正则表达式、权限检查、世界限定、自定义脚本等多种条件,精准匹配需要处理的命令。
* **强大的动作系统:** 拦截命令后,你可以执行取消命令、输出日志、替换命令、执行脚本等多种动作,甚至可以组合多个动作实现复杂逻辑。
* **Kether 脚本集成:** 充分利用 Kether 脚本的强大功能,编写自定义条件和动作,实现无限可能。
### 安装与配置
1. 将 `Commandant.jar` 文件放入服务器的 `plugins` 文件夹。
2. 启动服务器,插件将自动生成配置文件 `plugins/Commandant/interceptors.yml`。
3. 编辑 `interceptors.yml` 文件,根据你的需求配置拦截器。
4. 使用 `/commandant reload` 命令重载配置,使修改生效。
### `interceptors.yml` 配置详解
`interceptors.yml` 文件采用 YAML 格式,用于定义命令拦截器。每个拦截器由以下几个部分组成:
* **`interceptors`:** 所有拦截器的根节点。
* **`拦截器名称`:** 自定义的拦截器名称,例如 `block_ops`、`alias_gm` 等。
* **`enabled`:** 是否启用该拦截器,默认为 `true`。
* **`priority`:** 拦截器的优先级,数值越大优先级越高。当多个拦截器同时匹配到一个命令时,将按照优先级顺序执行。
* **`condition`:** 触发拦截器的条件,可以是一个或多个条件的组合。
* **`actions`:** 拦截器触发后执行的动作列表。
### `interceptors.yml` 配置文件
```yaml
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 脚本实现各种复杂的逻辑
[/MD]
有问题请在QQ群1026156463中联系
Commandant是一款强大的命令拦截与处理插件,它允许服务器管理员通过灵活的配置,定义各种规则来拦截、修改或增强玩家输入的命令。利用令行者,你可以轻松实现命令别名、黑名单、权限控制、动态命令等高级功能
### 核心特性
* **灵活的拦截规则:** 通过正则表达式、权限检查、世界限定、自定义脚本等多种条件,精准匹配需要处理的命令。
* **强大的动作系统:** 拦截命令后,你可以执行取消命令、输出日志、替换命令、执行脚本等多种动作,甚至可以组合多个动作实现复杂逻辑。
* **Kether 脚本集成:** 充分利用 Kether 脚本的强大功能,编写自定义条件和动作,实现无限可能。
### 安装与配置
1. 将 `Commandant.jar` 文件放入服务器的 `plugins` 文件夹。
2. 启动服务器,插件将自动生成配置文件 `plugins/Commandant/interceptors.yml`。
3. 编辑 `interceptors.yml` 文件,根据你的需求配置拦截器。
4. 使用 `/commandant reload` 命令重载配置,使修改生效。
### `interceptors.yml` 配置详解
`interceptors.yml` 文件采用 YAML 格式,用于定义命令拦截器。每个拦截器由以下几个部分组成:
* **`interceptors`:** 所有拦截器的根节点。
* **`拦截器名称`:** 自定义的拦截器名称,例如 `block_ops`、`alias_gm` 等。
* **`enabled`:** 是否启用该拦截器,默认为 `true`。
* **`priority`:** 拦截器的优先级,数值越大优先级越高。当多个拦截器同时匹配到一个命令时,将按照优先级顺序执行。
* **`condition`:** 触发拦截器的条件,可以是一个或多个条件的组合。
* **`actions`:** 拦截器触发后执行的动作列表。
### `interceptors.yml` 配置文件
```yaml
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 脚本实现各种复杂的逻辑
[/MD]
有问题请在QQ群1026156463中联系