基本信息
我的世界Java版本
1.21.x
平台
Bukkit
运行环境
详情信息
许可证 MIT
发布于 2026-02-26
更新于 2026-02-26
⚠️ ⚠️ 警告 ⚠️
必须先下载 ProtocolLib 前置插件!
没有 ProtocolLib,本插件完全无法运行!
AntiLitematica / 反投影辅助检测插件
🛡️ 检测并阻止 Litematica/Printer 投影打印
基于 ProtocolLib 的数据包分析技术
功能特性
| 功能 | 状态 | 描述 |
|---|---|---|
| 频道注册检测 | ✅ | 检测 servux:litematics 频道注册 |
| 快捷放置检测 | ✅ | 捕获异常点击向量(相对坐标>1.5) |
| NBT查询拦截 | ✅ | 阻止可疑的标签查询 |
| 打印阻止 | ✅ | 强制射线检测+速率限制 |
| 低性能开销 | ✅ | 异步数据包处理 |
工作原理
本插件使用 ProtocolLib 拦截并分析 Minecraft 协议数据包:
- 频道注册检测: 检测客户端注册
servux:litematics(Litematica 1.21.11+ 的 Servux 集成) - 快捷放置向量分析: 计算
hitVec - blockPos相对坐标;原版客户端保持在[0..1],Litematica 的 Easy Place 模式会超过>2.0 - NBT 查询监控: 阻止未授权的方块实体/实体标签查询(调试功能)
- 打印阻止: 强制服务端射线检测验证和放置速率限制(默认:14方块/秒)
⚠️ 硬性依赖
ProtocolLib 是必需的
| 下载源 | 链接 |
|---|---|
| SpigotMC(稳定版) | https://www.spigotmc.org/resources/protocollib.1997/ |
| Hangar(Paper官方) | https://hangar.papermc.io/dmulloy2/ProtocolLib |
| GitHub Releases | https://github.com/dmulloy2/ProtocolLib/releases |
| 开发版(CI) | https://ci.dmulloy2.net/job/ProtocolLib/ |
支持版本: 1.8 - 1.21.8
安装方法
- 必须先安装 ProtocolLib(见上方链接)
- 将
AntiLitematica.jar放入/plugins文件夹 - 重启服务器
- 配置
plugins/AntiLitematica/config.yml
配置说明
# AntiLitematica 配置文件
enabled: true
messages:
prefix: "&7[&cAntiLitematica&7] "
# 踢出提示信息
kick: "&c禁止使用 Litematica / Printer (或其网络指纹) 进入本服务器。"
# 放置被阻止提示
blocked_place: "&c请对准方块再放置 (禁止投影打印/自动放置)。"
detection:
enabled: true
# 如果客户端注册或在以下任意频道发送数据,则判定为可疑/违规
# 注意:Litematica 1.21.11 包含 Servux 集成,可能会使用 `servux:litematics`
# 为降低误伤,建议保持列表尽量精简;确认需要时再追加频道
channels:
- "servux:litematics"
# 基于 ProtocolLib 的额外信号:即使玩家关闭了 Servux 同步,也尽量抓到 Litematica 的特征行为
signals:
# 检测 Litematica 的 Servux metadata 请求:
# VarInt type=2 + NBT["version"] 包含 "litematica"
servux_metadata:
enabled: true
# 检测 Litematica 的"Easy Place(快捷放置)"协议:
# 它会把协议数据编码进点击向量(hitVec),导致 hitVec 相对方块坐标的值远超正常范围
# 计算方式:rel = hitVec - blockPos;原版通常在 [0..1](允许少量误差),Litematica 可能 > 2
easy_place:
enabled: true
rel_min: -0.5 # 最小相对坐标
rel_max: 1.5 # 最大相对坐标
cancel_packet: false # 是否取消数据包(false=仅记录,true=阻止放置)
# 检测调试用 NBT 查询(方块实体/实体的 tag query)
# 正常玩家不应发送此类数据包(通常与 OP/调试功能有关)
nbt_query:
enabled: true
allow_op: true # 允许 OP 玩家使用
cancel_packet: true # 取消数据包
# 命中检测后的处理方式:
# - LOG:仅记录日志
# - KICK:踢出玩家
# - BAN:使用服务器内置的"按玩家名封禁",然后踢出
# - COMMANDS:以控制台身份执行指令(可对接封禁插件),可选是否执行后再踢
action: "KICK"
# 处罚原因(用于 BAN / COMMANDS 的占位符)
reason: "Forbidden client mod detected (Litematica)."
# 仅在 action=COMMANDS 时生效:
# 占位符:%player% %uuid% %reason% %channel% %why%
commands: []
kick_after_commands: true
anti_printer:
enabled: true
apply_to_creative: true # 同时检测创造模式
# 强制要求:玩家服务端射线检测(ray trace)必须命中"放置所依附的方块"(或极少数情况下命中已放置方块)
# 这可以阻止不看方块也能自动放置的 printer
enforce_raytrace: true
reach_survival: 5.0 # 生存模式最大距离
reach_creative: 6.0 # 创造模式最大距离
extra_reach_allowance: 0.25 # 额外容差(防止误判)
# 放置速率限制(每秒最多放置多少方块)。设置为 0 表示关闭
max_blocks_per_second: 14
# 在时间窗内,若玩家超速/射线校验失败累计到阈值,则踢出
violations:
window_ms: 8000 # 时间窗口(毫秒)
kick_at: 8 # 踢出阈值(违规次数)



