1 427
收录服务器
2 094
注册
27 877
玩家
Hawk Anticheat (MC 1.7.10 & 1.8.8) 反作弊
一个免费的反作弊的传统版本的水龙头。
作 者 Islandscout
发布时间 2017年5月2日
支持核心 Spigot
原生版本
支持版本 1.7,1.8
点此下载

Hawk 是一款 Spigot 服务器的反作弊插件,旨在验证和强制玩家行为符合原版 Minecraft 的逻辑。此外,它还尝试检测一些输入伪造行为。Hawk 特别专注于支持旧版本 Minecraft,力求成为一个全面的反作弊解决方案。

🛡️ Hawk 反作弊插件

📌 主要特性

  • 支持 Minecraft 1.7.10 和 1.8.8
  • 包含 29 个模块,用于检测可疑的战斗、交互、移动和恶意利用协议的行为。
  • 网络线程检查,不对主线程造成额外负担。
  • 异步检查能力,可在专用线程上运行,减少服务器负载。
  • 无需依赖,利用 Netty 和 NMS 代码。
  • 免费开源,基于 GPLv3 协议。
  • 简单而强大的框架,方便开发者实现新的检查和利用强大的实用程序。
  • 严格的移动检查,阻止 B-Hop、Y-Port、skip phase 等常见作弊手段。
  • 强大的战斗作弊检测,无需 NPC 或机器学习,即可检测触发器和 aimbot。
  • 鼠标记录功能,记录和绘制玩家的鼠标移动轨迹,帮助手动识别战斗作弊者。
  • 详细的配置,允许用户修改检查行为、消息和惩罚执行。
  • 支持 BungeeCord,可以将 Hawk 检测到的违规行为转发到 BungeeCord 网络中的其他 Spigot 服务器。
  • SQL 支持,可以将日志记录到 SQL 数据库服务器,方便多服务器网络跟踪违规行为。

🔨 检测或阻止的作弊行为

  • 移动:
    • Speed
    • Tickrate
    • Fly
    • Glide
    • NoSlowDown
    • Jesus
    • Packet sneak
    • Phase
    • Spider
    • Blink
    • V-Clip
    • Scaffold
    • Anti-velocity
    • NoFall
    • Strafe
    • Omnidirectional sprint
  • 交互:
    • Nuker
    • GhostHand
    • 任何通过墙壁或视线之外进行交互的作弊行为
    • Usage Speed
  • 战斗:
    • Reach
    • Angle
    • High CPS
    • Forcefield
    • Fast Bow
    • Killaura
    • Criticals
    • Aimbot (在一定程度上)

⚙️ 命令 & 权限

命令:

  • /hawk - 显示菜单 & GUI
  • /hawk kick <player> <reason> - 踢出玩家 (建议用于自动踢出)
  • /hawk talerts - 切换警报
  • /hawk mouserec <player> [duration in seconds] - 记录玩家的鼠标移动
  • /hawk reload - 重新加载配置和模块
  • /hawk unmute - 解除 Hawk 静音的玩家
  • /hawk unban - 解除 Hawk 封禁的玩家

权限:

  • hawk.admin - 绕过踢出和封禁
  • hawk.cmd - /hawk 命令
  • hawk.cmd.* - 访问所有管理命令
  • hawk.cmd.<command name> - 访问特定的管理命令
  • hawk.alerts - 接收警报
  • hawk.bypass.<check> - 绕过特定的检查
  • hawk.bypass.* - 绕过所有检查
  • hawk.gui - 访问图形用户界面

👨‍💻 开发者信息

目前 Hawk 没有正式的 API,但开发者可以尝试使用反作弊功能。请注意,这意味着开发者将与已实现的代码进行交互,这些代码可能会在不同版本中更改,恕不另行通知(类似于 NMS 代码)。

获取 Hawk 插件实例:


Hawk hawkPlugin = (Hawk)Bukkit.getPluginManager().getPlugin("Hawk");

类源代码地址:Hawk.java

Hawk 的 Bukkit 事件:Bukkit Events

🛠️ 安装

  1. 下载后,将 jar 文件移动到服务器根目录的 "plugins" 文件夹中。
  2. 启动或重新加载服务器以启用 Hawk Anti-Cheat。
  3. 如有必要,修改 "plugins/Hawk/config.yml" 中的配置。重新启动或重新加载服务器以应用更改。

⚠️ 要求

  • Java 8 或更高版本
  • Spigot 1.7.10 或 1.8.8

🚫 不兼容性

Hawk Anti-Cheat 可能与以下项目不兼容:

  • 网络修改
  • 在 Hawk 位于通道管道中的位置之前拦截和修改入站数据包
  • 在 Hawk 位于通道管道中的位置之后拦截和修改出站数据包
  • 发送数据包以使客户端与服务器不同步(伪造实体、伪造方块等。如果玩家尝试与它们交互,这些将触发错误标志)
  • 其他反作弊插件
  • 除 1.7.X 和 1.8.X 版本之外的任何 Minecraft 客户端。 因此,强烈建议不要使用 ProtocolSupport、ViaVersion 等。
  • 客户端游戏逻辑修改
  • 修改客户端的移动或与地形或实体的交互
  • 服务器过载(平均 TPS 低于 20)或客户端(FPS/TPS 低于 20)
  • 较差的服务器-客户端连接质量

❓ 常见问题

如何编辑检查配置?

每个检查的配置都可以在 Hawk 文件夹中的 "checks.yml" 文件中找到。每个检查至少有几个选项。以下是一个示例检查:


inertia:
  enabled: true
  cancelThreshold: 0
  flagThreshold: -1
  vlPassMultiplier: 0.995
  flagCooldown: 5000
  punishCommands: []
  • enabled:启用/禁用检查。
  • cancelThreshold:玩家必须达到的最低违规级别 (VL),检查才会放弃玩家的操作。设置为 -1 可禁用。
  • flagThreshold:玩家必须达到的最低违规级别 (VL),检查才会向工作人员发送警报。
  • vlPassMultiplier:每次玩家通过检查时,乘以玩家违规级别 (VL) 的值。用于在玩家通过检查时降低玩家的 VL。应介于 0 和 1 之间,以便 VL 可以呈指数衰减。
  • flagCooldown:检查在发送有关玩家的警报之前必须等待的最小时间间隔(以毫秒为单位)。减少聊天中的洪水。较高的值将降低标志的速率。
  • punishCommands:可能包含要执行的命令列表。

如何设置 Hawk 以在违规时执行命令?

Hawk 文件夹中的 "checks.yml" 文件包含每个检查的配置。每个检查都有一个名为 "punishCommands" 的字符串列表。字符串列表中的每个条目都分为三个部分,用冒号分隔:

violation level : delay in seconds : command to run

以下是 flight 检查的示例配置:


fly:
  enabled: true
  cancelThreshold: 0
  flagThreshold: 0
  vlPassMultiplier: 0.995
  flagCooldown: 0
  punishCommands:
    - "10:0:msg %player% stop hacking"
    - "20:0:kick %player%"

您还可以使用占位符,例如 %player%%tps%%vl%%check%

如何设置 ban/punish waves?

Hawk 提供了一个名为 Punishment Scheduler 的功能。可以使用命令 /hawk punish 访问该系统。您可以在 "config.yml" 中配置它。以下是一个示例配置:


punishmentScheduler:
  enabled: true
  command: ban %player% %reason%
  defaultReason: Illegal game modification
  schedule: 'SUNDAY * 32'
  ignoreIfServerOverloaded: true
  pingThreshold: -1
  requireAuthorization: false
  autoSave: true
  • requireAuthorization:启用后,强制管理员在 Hawk 可以惩罚玩家之前运行 /hawk punish authorize <player>
  • schedule:系统将运行的时间表。第一个参数是星期几,第二个参数是一天中的小时(0 到 23),第三个参数是小时中的分钟(0 到 59)。您可以为任何参数输入 *,以指定任何值都可以工作。在此示例中,系统将每周日、每天的每个小时、该小时的 32 分钟运行。