WorldPreventer

防止你的世界被下载。

资源图片
# WorldPreventer – 高级反作弊 & 世界保护 ⚠️ **开发初期通知** WorldPreventer 仍处于开发的早期阶段。许多系统已经实现,但 **机器学习 (ML) 检测系统不包含训练好的模型**。 * 除非您训练了自己的模型,否则**不要启用 ML 检测**。 * 如果您看到 `REQUEST_STATS observed (WorldTools signature)` 的通知,这可能表明客户端正在尝试下载您的世界。 --- ## 概述 WorldPreventer 是一款 **高性能反作弊和世界保护插件**,旨在保护您的服务器免受各种威胁,包括: * **世界下载** * **区块利用** * **可疑的客户端行为** 它结合了 **数据包级别的监控**、**行为分析**和 **自适应响应**,以保护您的服务器免受恶意活动。 --- ## 特性 ### 核心保护系统 1. **区块利用预防** * 检测 & 预防快速区块加载/卸载 * 监控区块交互模式 * 阻止区块边界利用 2. **WorldTools 拦截器** * 阻止 WorldTools 客户端功能 * 预防未经授权的世界下载 * 检测 & 阻止快速加入/离开模式 3. **深度数据包检测** * 分析网络流量以查找可疑模式 * 检测 & 阻止恶意数据包序列 * 监控数据量和时间异常 4. **自适应响应系统** * 动态威胁级别评分 * 升级响应 (警告 → 踢出 → 封禁) * 完全可配置的操作 --- ### 机器学习检测 (可选) **重要提示:** ML 系统默认禁用,并且 **不包含训练好的模型**。 除非您训练了自己的模型,否则不要启用它。 正确配置后,ML 系统提供: * **异常检测** – 发现非凡的玩家行为 * **行为分析** – 学习服务器的正常模式 * **实时评分** – 不断评估操作 * **自适应阈值** – 适应服务器条件 **跟踪的特性 (共 12 个):** 区块转换、容器交互、移动量、实体生成率、数据包爆发、系统化移动、加入激增、客户端品牌、时间精度、数据量方差、交互模式、移动熵。 --- ## 命令 & 权限 ### 管理员命令 * `/worldpreventer reload` – 重新加载配置 * `/worldpreventer status` – 查看保护状态 * `/worldpreventer simulate ` – 运行模拟测试 * `/worldpreventer ml [enable|disable|status]` – 管理 ML 系统 ### 权限 * `worldpreventer.admin` – 完全访问 & 绕过 * `worldpreventer.staff` – 接收可疑活动警报 * `worldpreventer.bypass` – 排除玩家检测 --- ## 配置 示例 `config.yml`: ```yaml # 加入后的宽限期(秒) join_grace_period_seconds: 120 # 升级操作 actions: on_exceed: WARN # WARN, KICK, BAN # 嫌疑评分 scoring: enabled: true decay_per_minute: 10.0 thresholds: warn: 100.0 kick: 500.0 # 机器学习(默认禁用) ml: enabled: false direct_kicks: false score_threshold: 3.0 points_on_exceed: 20.0 kick_message: "§c被 ML 反作弊系统踢出" window_seconds: 60 autosave_minutes: 5 decay: 0.98 # 基于 ProtocolLib 的数据包拦截 packet_blocking: enabled: true block_stats_request: false block_statistics: false block_map_data: false corrupt_block_entities: false inject_fake_data: false ``` --- ## 集成 ### 依赖项 * **必需:** ProtocolLib * **推荐:** Vault ### API 示例 ```java WorldPreventer plugin = (WorldPreventer) Bukkit.getPluginManager().getPlugin("WorldPreventer"); // 获取嫌疑分数 double score = plugin.getSuspicionScorer().getScore(player.getUniqueId()); // 添加自定义检测点 plugin.getSuspicionScorer().addScore(player.getUniqueId(), 10.0, "CUSTOM_EVENT"); ``` --- ## 工作人员通知 拥有权限的工作人员会收到: * 可疑活动 * ML 系统检测 * 配置更改 * 警告 & 错误 --- ## 绕过选项 排除在检测之外的玩家: * `worldpreventer.bypass` 权限持有者 * 在创造模式中的玩家 * 在旁观者模式中的玩家 --- ## 支持 如有错误报告、功能请求或支持,请访问 [GitHub 仓库](https://github.com/yourusername/WorldPreventer)。