Sueta

CheckMOD

1.2.0

A server-side anti-cheat plugin that detects client-side mods and kicks players using blacklisted cheats. Supports Paper 1.20 - 1.21.11 | Requires PacketEvents 2.7.0+ 目前只支持简体中文语音,后续将会更新支持多语言。

·Plugin
  1. 1.2.0latestCheckMOD 1.2.0Jul 5, 2026
    * 修复了等待Packetevens加载的时间。 * 修复了一个报错问题。 * 如果依赖加载慢,ChecksMOD会等待其加载成功。
    92 downloads
  2. 1.1.0CheckMOD 1.1.0Jul 5, 2026

    ChecksMOD v1.1.0 更新说明

    发布日期:2026-07-05 | 作者:YuHongChen(LiquidTeam)
    ---

    🆕 新增内容

    1. Paper 1.21.5 支持
    - Paper API 升级至 1.21.5-R0.1-SNAPSHOT - 兼容 Paper 1.20 ~ 1.21.5 全版本
    2. PacketEvents 2.9.4+
    - PacketEvents 升级至 2.9.4,支持最新的 Minecraft 协议变更
    3. 通道追踪
    - 记录玩家加入时发送的所有网络通道 - /cm check <玩家> 会显示通道列表,黄色标记的 §e[未知] 通道即为可疑 - 帮助管理员快速发现未知客户端特征
    4. 品牌空值检测
    - 原版客户端不会向服务端发送 `minecraft:brand` 通道 - 只要客户端发送了该通道(即使内容为空),即可判定为非原版客户端 - 空品牌显示为 空品牌(可疑) ---

    🔧 修复问题

    | 问题 | 原因 | 修复 | |------|------|------| | LiquidBounce 无法拦截 | 品牌内容为空字符串,未被判定为违规 | 空品牌也触发检测 | | 退出重进不检测 | checkedPlayers 未在退出时清除 | 新增 PlayerQuitEvent 清除状态 | | Forge 通道被误标为 Fabric | fml: 在 Fabric 通道前缀中 | 分离出独立的 Forge 通道检测 | | Configuration 阶段包被跳过 | Bukkit.getPlayer() 在该阶段返回 null | 改用 event.getPlayer() | ---

    ⚠️ 注意事项

    运行环境
    | 要求 | 说明 | |------|------| | Java 21 | Paper 1.21.5 强制要求 JDK 21 | | PacketEvents 2.9.4+ | 必须安装对应版本的 PacketEvents 插件 | | Paper 服务端 | 不支持 Spigot / CraftBukkit |
    兼容性说明
    - Paper 1.20 ~ 1.21.1 → 需要 PacketEvents 2.7.0+(包括 2.9.4) - Paper 1.21.2 ~ 1.21.5 → 需要 PacketEvents 2.9.4+ + Java 21 - 迁移前请先在测试环境验证 PacketEvents 版本兼容性
    已知限制
    1. 独立作弊客户端拦截有限 - 如 LiquidBounce 虽然能被空品牌检测捕获,但仍有部分静默客户端无法检测 - 建议配合反作弊插件使用 2. FML3 Mod 列表解析有限 - Forge 1.20.2+ 的 Mod 列表以压缩 NBT 发送,目前仅能扫描黑名单 Mod - 不影响踢出功能,仅影响 /cm check 显示的 Mod 列表完整度 3. Fabric 无完整 Mod 列表 - Fabric 没有标准 Mod 列表包,只能检测是否使用了 Fabric 加载器 4. 客户端可伪造数据 - 检测依赖客户端主动上报,恶意客户端可伪造/屏蔽 - 本插件不能替代反作弊系统 ---

    📦 安装步骤

    1. 下载 PacketEvents 2.9.4+ → plugins/ - 下载地址:[Modrinth](https://modrinth.com/plugin/packetevents) 或 [CodeMC](https://repo.codemc.io/) 2. 下载 ChecksMOD-1.1.0.jar → plugins/ 3. 重启服务器 4. 编辑 plugins/ChecksMOD/config.yml 配置黑名单 5. 执行 /cm reload 重载配置 ---

    📋 命令速查

    | 命令 | 权限 | 说明 | |------|------|------| | /cm reload | checksmod.reload | 重载配置 | | /cm check <玩家> | checksmod.check | 查看 Mod/通道信息 | | /cm recheck <玩家> | checksmod.check | 重置检测状态 | | /cm list | checksmod.check | 已检测玩家列表 | | /cm stats | checksmod.check | 统计信息 | ---

    🔄 从 1.0.0 升级

    - config.yml 完全兼容,无需修改 - 只需替换 jar 文件 - 如使用 Paper 1.21.2+,请确保: - 服务端已升级到 Java 21 - PacketEvents 已升级到 2.9.4+ - 升级后执行 /cm reload
    9 downloads
  3. 1.0.0CheckMOD 1.0.0Jul 5, 2026
    * 需要[PacketEvents](https://modrinth.com/plugin/packetevents) 2.7.0+ 作为前置插件。 * 问题反馈联系作者QQ:1464670605 (记得备注来意)

    功能

    - 品牌检测 — 拦截 minecraft:brand 通道,识别客户端品牌(vanilla、fabric、forge、作弊客户端等) - Forge Mod 检测 — 解析 FML 经典握手(1.20~1.20.1)中的完整 Mod 列表 - Forge FML3 检测 — 处理 fml:loginwrapper(1.20.2+),扫描黑名单 Mod - Fabric 检测 — 检测 fabric: 通道,识别 Fabric 加载器 - 通道黑名单 — 匹配客户端发送的任意网络通道,支持 * 通配符 - 品牌白名单/黑名单 — 精细控制允许/拒绝的客户端品牌 - vanilla-only 模式 — 仅允许纯原版客户端进入 - 单次检测 — 玩家加入时检测一次,之后不再拦截,不影响性能 - OP 命令 — 查看玩家 Mod 信息、重置检测状态

    工作原理

    玩家连接 → Configuration/Play 阶段 → PacketEvents 拦截 PluginMessage 包
      ├─ minecraft:brand        → 品牌检查 → 黑/白名单比对 → 违规则踢出
      ├─ fml:handshake          → 解析Mod列表 → 逐个比对黑名单 → 违规则踢出
      ├─ fml:loginwrapper       → 扫描Mod ID(FML3) → 比对黑名单 → 违规则踢出
      ├─ fabric:*               → 检测Fabric加载器 → vanilla-only则踢出
      └─ 其他通道               → 通道黑名单匹配 → 违规则踢出
    
    PlayerJoinEvent → 标记检测完成 → 不再拦截该玩家后续包
    命令 | 命令 | 权限 | 说明 | |------|------|------| | /cm reload | checksmod.reload | 重载配置文件 | | /cm check <玩家> | checksmod.check | 查看玩家的 Mod 和通道信息 | | /cm recheck <玩家> | checksmod.check | 重置检测状态,该玩家重连后重新检测 | | /cm list | checksmod.check | 查看所有已检测的玩家 | | /cm stats | checksmod.check | 查看统计信息 |

    权限

    | 权限 | 默认 | 说明 | |------|------|------| | checksmod.admin | op | 管理权限(包含以下所有) | | checksmod.reload | op | 重载配置 | | checksmod.check | op | 查看玩家 Mod 信息 |

    配置说明

    # 检测模式: KICK(踢出), WARN(仅记录)
    mode: KICK
    
    # 仅允许原版客户端 (启用后 Fabric/Forge/Lunar 等都被踢出)
    vanilla-only: false
    
    # 品牌白名单 (留空=允许所有, 非空=仅允许列表中的品牌)
    brand-whitelist: []
    
    # 品牌黑名单 (匹配客户端发送的品牌标识)
    brand-blacklist:
      - "wurst"
      - "future"
      - "liquidbounce"
      - "meteor"
      # ...
    
    # Mod ID 黑名单 (Forge/Fabric 握手协议中的 Mod ID)
    mod-blacklist:
      - "xray"
      - "baritone"
      - "wurst-client"
      # ...
    
    # 通道黑名单 (匹配客户端发送的网络通道,支持通配符 *)
    channel-blacklist:
      - "wurst:*"
      - "xray:*"
      # ...
    9 downloads

Similar projects

Plugin →