# 插件控制
## 描述
此插件允许您控制服务器持续运行所需的插件启用情况。
灵感来源于 [这个](https://github.com/PaperMC/Paper/issues/8859#issuecomment-1435905791)
和 [这个](https://github.com/PaperMC/Paper/pull/8108#issuecomment-1419304955) 评论,以及我自己也遇到了同样
的问题。
## 安装
1. 下载 PluginControl 插件。
2. 将下载的插件文件放入服务器的 `plugins` 文件夹中。
3. 重启服务器以加载 PluginControl 插件。
4. 使用命令 `/plugincontrol action ` 设置如果任何列出的插件未启用时将采取的操作。 请参阅[操作](#actions)部分可用的操作。
5. 使用命令 `/plugincontrol add ` 将插件添加到列表中。
6. 运行命令 `/plugincontrol enable` 启用 PluginControl 插件。
7. 使用命令 `/plugincontrol reload` 重新加载 PluginControl 插件的配置文件和语言文件。
请注意,`` 和 `` 占位符应替换为所需的特定操作和
插件名称。
**注意:此插件需要 Java 17 才能工作。**
## 配置文件
| 选项 | 描述 |
|----------------|--------------------------------------------------------------------------------|
| `enabled` | 插件是否启用。 |
| `action` | 如果所有列出的插件均未启用时要采取的[操作](#actions)。 |
| `kick-message` | 当 `disallow-player-login` 操作启用时向玩家发送的消息。 |
| `plugins` | 服务器启动时要启用的插件列表。 |
### 操作
| 操作类型 | 描述 |
|-------------------------|---------------------------------------------------------------------------------------|
| `log-to-console` | 在控制台中发送警告 (`lang.yaml` 文件中的 `log-to-console`)。 |
| `disallow-player-login` | 使用消息 (`config.yml` 文件中的 `kick-message`) 阻止玩家进入服务器。 |
| `shutdown-server` | 使用警告 (`lang.yml` 文件中的 `disabling-server`) 关闭服务器。 |
### 踢出消息
允许您自定义当 `disallow-player-login` 操作启用时向玩家发送的消息。
可以使用 `` 代码或旧的颜色代码进行自定义(不支持 MiniMessage)。
## 消息
使用 [MiniMessage](https://webui.advntr.dev/) 更改消息格式。
### 占位符
| 占位符 | 用法 |
|------------------|-------------------------------------------------------------------------------------------|
| `` | 所有消息都接受此占位符 |
| `` | `command.action-type` |
| `` | `command.action-list` |
| `` | `command.command-not-found`, `command.plugin-add-error` 和 `command.plugin-remove-error` |
| `` | `command.kick-message` 和 `command.kick-message-set` |
| `` | `command.plugin-added`, `command.plugin-not-found` 和 `command.plugin-removed` |
| `` | `console.disabling-server` 和 `command.plugin-list` |
### 默认
```yaml
prefix: '[PluginControl]'
console:
checking-plugins: ' 正在检查插件...'
disabling-server: ' 因为 未找到或成功启用,正在关闭服务器!'
finished-checking: ' 插件验证成功!'
log-to-console: ' 插件 未找到或成功启用...'
command:
action-list: ' 可用操作:'
action-set: ' 操作设置为 '
action-type: ' 操作类型:'
command-not-found: '使用 / help 查看可用命令'
kick-message: ' 踢出消息:'
kick-message-set: ' 踢出消息设置为 '
no-permission-error: ' 您没有使用此命令的权限'
plugin-add-error: '用法:/ add [plugin-name]'
plugin-added: ' 插件 已成功添加!'
plugin-already-added: ' 插件已添加!'
plugin-disabled: ' 停用插件功能...'
plugin-enabled: ' 启用插件功能...'
plugin-list: ' 已添加的插件:'
plugin-list-separator: ', '
plugin-list-separator-last: ' and '
plugin-list-empty: ' 未添加任何插件!'
plugin-not-found: ' 列表中未找到插件 !'
plugin-reload: ' 配置和语言重新加载!'
plugin-remove-error: '用法:/ remove '
plugin-removed: ' 插件 已删除!'
plugin-click-remove: '点击移除此插件'
help:
- '==== 插件控制帮助 ===='
- '/ add - 将插件添加到列表中'
- '/ remove - 从列表中删除插件'
- '/ action - 列出所有可用操作'
- '/ kick-message - 显示踢出消息'
- '/ kick-message - 设置踢出消息'
- '/ enable - 启用插件'
- '/ disable - 禁用插件'
- '/ toggle - 启用或禁用插件'
- '/ list - 列出所有添加的插件'
- '/ reload - 重新加载配置文件和语言'
- '/ help - 显示此帮助'
- '============================'
```
## 命令
主命令 `/plugincontrol` - 别名:`/pc` 和 `/pcontrol`
| 命令 | 子命令 | 描述 |
|------------------|--------------------------|----------------------------------------------|
| `/plugincontrol` | `add ` | 将插件添加到列表中。 |
| `/plugincontrol` | `remove ` | 从列表中删除插件。 |
| `/plugincontrol` | `action` | 检查当前操作。 |
| `/plugincontrol` | `action ` | [设置要采取的操作](#actions)。 |
| `/plugincontrol` | `kick-message` | 检查当前的踢出消息。 |
| `/plugincontrol` | `kick-message ` | 设置踢出消息。 |
| `/plugincontrol` | `enable \| on` | 启用 PluginControl。 |
| `/plugincontrol` | `disable \| off` | 禁用 PluginControl。 |
| `/plugincontrol` | `toggle` | 切换 PluginControl 的开启或关闭。 |
| `/plugincontrol` | `list` | 列出列表中的所有插件。 |
| `/plugincontrol` | `reload` | 重新加载配置文件和语言文件。 |
| `/plugincontrol` | `help \| ?` | 显示命令列表。 |
请注意,``、`` 和 `` 占位符应替换为所需的特定
插件名称和踢出消息。
## 权限
| 权限 | 描述 |
|------------------------|------------------------------------------------|
| `plugincontrol.use` | 使用所有[命令](#commands)的权限 |
| `plugincontrol.bypass` | 绕过 `action` 中的 `disallow-player-login` |