# 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)。