
Hand Shaker
供服务器所有者或整合包开发者使用的解决方案,用于断开带有不受欢迎模组的用户,允许或要求模组
⚠️ 此项目需要在客户端和服务端两侧都进行设置 ⚠️
🤝 HandShaker 7.0.0 (alpha) Wiki 在此!
📋 HandShaker 是什么?
HandShaker 是一个用于 Minecraft 服务器和客户端的跨平台模组/插件验证系统。它使服务器能够检测玩家正在运行哪些模组,并通过可自定义的策略来执行模组限制。
🎯 核心功能
- Fabric/Neoforge 客户端 → 加入时向服务器发送您当前启用的模组列表
- Paper/Fabric/NeoForge 服务端 → 根据配置的规则验证模组列表并强制执行限制
- 多平台支持 → 可在 Fabric、Paper 和 NeoForge 上运行
- 加密完整性 → 防止被篡改或自行编译的 HandShaker 模组
- 灵活配置 → 针对每个模组的规则:必需、允许或列入黑名单
✨ 主要特性
| 特性 | 描述 |
|---|---|
| 🔐 每个模组独立配置 | 单独设置模组为必需、允许或黑名单 |
| 🚫 可自定义执行策略 | 可配置踢出消息和自动封禁功能 |
| 📊 玩家历史数据库 | 存储和查询玩家的模组历史记录 |
| 👀 查看玩家模组 | 管理员可以查看其他玩家的模组列表 |
| ✔️ 完整性验证 | 加密签名防止伪造的模组报告 |
| 🔐 自定义动作 | 允许为触发的模组设置自定义事件(命令) |
🏗️ 平台对比
✅ 支持/可用 ⚠️ 存在问题/不支持 ❌ 不支持/已损坏
| 特性 | Paper (1.x - 6.x) | Fabric (2.x - 6.x) | NeoForge (6.x+) |
|---|---|---|---|
| 完整性检查 | ✅ 6.x+ ⚠️ 3.x - 5.x |
✅ 6.x+ ⚠️ 3.x - 5.x |
✅ 6.0.0+ |
| 可配置规则 | ✅ 6.0.0+ | ✅ 6.0.0+ | ✅ 6.0.0+ |
| 数据库存储 | ✅ 5.0.0+ | ✅ 5.0.0+ | ✅ 6.0.0+ |
| GeyserMC/Floodgate | ✅ 5.2.0+ | ✅ 5.2.0+ | ❌ |
| 权限 | ✅ 5.0.0+ | ✅ 5.0.0+ | ❌ |
| Folia 兼容性 | ✅ 6.0.0+ | ❌ | ❌ |
| 聊天中的可点击文本 | ✅ | ❌ | ❌ |
🚀 快速开始
命令
安装
下载适用于您平台对应的模组/插件:
- Fabric 客户端: 将 JAR 文件放入
mods/文件夹 - Paper 服务端: 将 JAR 文件放入
plugins/文件夹 - NeoForge 客户端: 将 JAR 文件放入
mods/文件夹
- Fabric 客户端: 将 JAR 文件放入
配置模组/插件
基础配置
config: v4
# 行为: "strict" - 强制要求客户端侧模组 或 "vanilla" 也允许非模组客户端
behavior: strict
# 完整性模式: "signed" 或 "dev" - 允许未签名的模组(如果您正在构建自己的客户端/服务端分支)
integrity-mode: signed
# 白名单模式: true = 仅允许白名单内的模组(在 whitelisted.yml 中),false = 默认允许。
# 要正常工作,必须将 "mods-whitelisted-enabled" 设为 true
whitelist: false
# 允许基岩版玩家
allow-bedrock-players: false
# 玩家数据库: 存储和跟踪玩家的模组历史记录(需要启用 playerdb)
playerdb-enabled: false
# 模组列表开关: 启用/禁用每个模组列表而不丢失配置
mods-required-enabled: true
mods-blacklisted-enabled: true
mods-whitelisted-enabled: true
# 踢出消息 - 根据需要自定义(使用 {mod} 作为模组名称)
messages:
kick: "您正在使用被列入黑名单的模组:{mod}。请移除它以便加入此服务器。"
no-handshake: "要连接此服务器,请下载 'Hand-shaker' 模组。"
missing-whitelist: "您缺少必需的模组:{mod}。请安装它们以便加入此服务器。"
invalid-signature: "无效的客户端签名。请使用官方的 HandShaker 客户端模组。"
ban: "您因使用被列入黑名单的模组而被封禁:{mod}。"
bedrock: "此服务器不允许基岩版玩家加入。"
# 可以在此处为动作添加自定义消息
# 占位符为 {mod} - 触发的模组,{player}
test_action: "您好,{player}!您正在使用 {mod}!感谢您的使用!"
actions:
# 系统动作(使用硬编码功能,不建议复制这些)
kick:
commands:
- "kick {player} {messages.kick}"
ban:
commands:
- "ban {player} {messages.ban}"
log: true
log:
missing: "{player} 尝试加入但缺少必需的模组/模组: {mod}"
blacklisted: "{player} 尝试携带被列入黑名单的模组/模组加入: {mod}"
# 自定义动作示例
# 占位符为 {mod} - 触发的模组,{player},{messages.name_from_config.yml}
test_action:
commands:
- "msg {player} {messages.test_action}"
- "give {player} minecraft:diamond 1"
- "say 向正在使用 {mod} 的 {player} 打个招呼!"
watchdog:
commands:
- "ac increase_alert_level {player} 1000"
📝 权限
| 权限 | 描述 | 默认值 |
|---|---|---|
handshaker.admin |
访问管理员命令 | 管理员 |
handshaker.bypass |
绕过模组限制 | False |
🎮 支持的版本
| 加载器 | 版本 | 状态 | 版本 | 状态 |
|---|---|---|---|---|
| Fabric | 1.21 - 1.21.10, 1.21.11 | ✅ 支持 | N/A | N/A |
| Paper | 1.21+ | ✅ 支持 | N/A | N/A |
| NeoForge | 1.21 - 1.21.10, 1.21.11 | ✅ 支持 | 1.20.1 | 计划中 |
📚 文档
路线图
- 更多生活质量功能
🤝 贡献
欢迎提交问题、拉取请求和建议!请查看 GitHub 仓库 了解贡献指南。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。