# HandShaker
**Fabric 模组 & Paper 插件 for Minecraft 1.21+**
Java 17+ 兼容 (构建/测试于 Java 21)
**如果您想请求旧版本,请在 github 上提交 issue 工单**
**什么是 HandShaker?**
HandShaker 是一个用于 Minecraft 服务器和客户端的跨平台模组/插件系统。
它允许 Paper 服务器查看玩家正在使用的 Fabric 模组,并自动强制执行黑名单,并带有可定制的踢出消息。
- **Fabric 模组**: 在加入服务器时发送你的模组列表。
- **Paper 插件**: 检查模组列表与黑名单进行对比,并踢出使用被禁止模组的玩家。
## 特点
- **Fabric <-> Paper 握手**: 服务器在加入时看到所有 Fabric 模组。
- **黑名单强制执行**: 服务器踢出或警告使用黑名单模组的玩家。
- **可配置的踢出消息**: 自定义显示给被踢出玩家的消息。
- **踢出模式**:
- `All`: 踢出任何具有黑名单模组的客户端(原版或修改版)。
- `Fabric`: 仅踢出具有黑名单模组的 Fabric 客户端。
- **管理员命令** (`/handshaker`):
- `/handshaker reload` — 重新加载黑名单和配置。
- `/handshaker add ` — 将模组添加到黑名单(从上次客户端模组列表中自动完成)。
- `/handshaker remove ` — 从黑名单中删除模组(从黑名单中自动完成)。
- **基于权限**: 只有服务器操作员或具有 `handshaker.admin` 权限的人员才能使用管理员命令。
## 安装
### 服务器 (Paper)
1. 构建或下载 `hand-shaker-paper-.jar`。
2. 将其放在服务器的 `plugins/` 文件夹中。
3. 启动服务器一次以生成配置。
4. 编辑 `plugins/HandShaker/config.yml` 以设置你的黑名单和踢出消息。
### 客户端 (Fabric)
1. 构建或下载 `hand-shaker-.jar`。
2. 将其放在 Fabric 客户端的 `mods/` 文件夹中。
3. 不需要配置 - 模组只需将你的模组列表发送到服务器。
## 配置
示例 `config.yml`:
```yaml
Kick Mode: Fabric
# "Force" 将会踢出所有没有 Hand Shaker 模组且具有黑名单模组的客户端,而 "Fabric" 只会踢出没有 Hand Shaker 模组或具有黑名单模组的 Fabric 客户端。
Kick Message: "您正在使用一个黑名单模组: {mod}. 请将其删除以加入此服务器。"
Blacklisted Mods:
- xraymod
- testmod
- forge
```
- `Kick Message` 中的 `{mod}` 将被替换为实际找到的模组(s)。
## 命令
- `/handshaker reload` — 重新加载配置和黑名单。
- `/handshaker add ` — 将模组添加到黑名单。
- `/handshaker remove ` — 从黑名单中删除模组。
## 权限
- `handshaker.admin` — 使用所有 `/handshaker` 命令所必需的 (操作员默认拥有此权限)。