Skip to content

移动检测模块详细文档

📋 目录

🔍 模块概述

移动检测模块是Spectrum反作弊系统中最核心的检测模块之一,负责监控和识别各种与玩家移动相关的作弊行为。该模块通过分析玩家的移动轨迹、速度、加速度、与环境的互动等多方面数据,来检测各种移动作弊。

所有移动检测模块的配置都位于plugins/Spectrum/checks.yml文件中的movement部分。

🛸 Flight (飞行检测)

功能描述

检测玩家是否使用飞行作弊,包括创造模式飞行模拟、鞘翅飞行异常等。

检测原理

  • 分析玩家的垂直移动轨迹和跳跃模式
  • 监测玩家在空中的停留时间和移动方式
  • 比较预期的重力影响与实际的玩家移动
  • 分析玩家与方块的碰撞检测数据
  • 检测异常的高度变化和悬空状态

配置参数详解

yaml
movement:
  flight:
    # 是否启用飞行检测
    enabled: true
    
    # 检测阈值(0-1之间)
    # 值越低,检测越严格;值越高,检测越宽松
    threshold: 0.7
    
    # 违规积累速度
    violation-rate: 1.0
    
    # 最大违规次数
    max-violations: 20
    
    # 重置违规计数的时间间隔(秒)
    violation-reset-time: 300
    
    # 是否允许鞘翅飞行
    allow-elytra: true
    
    # 是否允许创造模式飞行
    allow-creative: true
    
    # 是否允许旁观者模式飞行
    allow-spectator: true
    
    # 允许的最大跳跃高度(方块)
    max-jump-height: 1.5
    
    # 允许的最大悬空时间(毫秒)
    max-air-time: 2000
    
    # 允许的最大垂直速度(方块/秒)
    max-vertical-speed: 5.0
    
    # 重力影响系数
    gravity-factor: 0.98
    
    # 地面检测精度
    ground-precision: 0.1
    
    # 飞行检测的惩罚类型
    punishment: kick
    
    # 异步检测开关
    async: true
    
    # 调试模式开关
    debug: false
    
    # 玩家权限绕过检测
    bypass-permission: 鍏夎氨Spectrum.bypass.flight

惩罚设置

飞行检测支持的惩罚类型:

  • warning:发送警告消息
  • kick:踢出玩家
  • tempban:临时封禁
  • ban:永久封禁

常见误报原因及解决方案

误报原因解决方案
服务器高延迟增加threshold值,或启用latency-compensation
特殊游戏机制(如蹦床、黏液块)增加max-air-time值,或调整max-jump-height
插件冲突(如飞行插件)compatibility.yml中添加兼容设置
创造模式玩家确保allow-creative设置为true

⚡ Speed (速度检测)

功能描述

检测玩家是否使用速度作弊,包括行走速度异常、奔跑速度异常、游泳速度异常等。

检测原理

  • 计算玩家的移动速度和加速度
  • 比较不同地形和状态下的预期移动速度
  • 监测异常的速度变化和移动模式
  • 分析玩家的位置更新频率和幅度
  • 检测玩家在不同地形上的移动表现

配置参数详解

yaml
movement:
  speed:
    # 是否启用速度检测
    enabled: true
    
    # 检测阈值(0-1之间)
    threshold: 0.7
    
    # 违规积累速度
    violation-rate: 1.0
    
    # 最大违规次数
    max-violations: 20
    
    # 重置违规计数的时间间隔(秒)
    violation-reset-time: 300
    
    # 步行速度阈值(方块/秒)
    walking-speed: 5.0
    
    # 奔跑速度阈值(方块/秒)
    sprinting-speed: 7.0
    
    # 游泳速度阈值(方块/秒)
    swimming-speed: 3.0
    
    # 潜行速度阈值(方块/秒)
    sneaking-speed: 2.0
    
    # 跳跃速度阈值(方块/秒)
    jumping-speed: 6.0
    
    # 冰面速度加成系数
    ice-bonus: 0.3
    
    # 灵魂沙减速系数
    soul-sand-reduction: 0.4
    
    # 蜘蛛网减速系数
    cobweb-reduction: 0.8
    
    # 允许的最大加速度(方块/秒²)
    max-acceleration: 10.0
    
    # 速度检测的惩罚类型
    punishment: kick
    
    # 异步检测开关
    async: true
    
    # 调试模式开关
    debug: false
    
    # 玩家权限绕过检测
    bypass-permission: 鍏夎氨Spectrum.bypass.speed

惩罚设置

速度检测支持的惩罚类型:

  • warning:发送警告消息
  • kick:踢出玩家
  • tempban:临时封禁
  • ban:永久封禁

常见误报原因及解决方案

误报原因解决方案
服务器高延迟增加threshold值,或启用latency-compensation
药水效果影响确保检测系统考虑了药水效果的影响
特殊地形影响调整ice-bonussoul-sand-reduction等地形相关参数
移动增强插件compatibility.yml中添加兼容设置

🌈 NoFall (无坠落伤害检测)

功能描述

检测玩家是否使用无坠落伤害作弊,避免从高处坠落时受到伤害。

检测原理

  • 计算玩家的坠落高度和预期伤害
  • 监测玩家坠落时的移动轨迹和落地行为
  • 比较实际受到的伤害与预期伤害
  • 分析玩家坠落过程中的异常操作
  • 检测落地时的异常减速

配置参数详解

yaml
movement:
  nofall:
    # 是否启用无坠落伤害检测
    enabled: true
    
    # 检测阈值(0-1之间)
    threshold: 0.6
    
    # 违规积累速度
    violation-rate: 1.0
    
    # 最大违规次数
    max-violations: 15
    
    # 重置违规计数的时间间隔(秒)
    violation-reset-time: 300
    
    # 最小检测高度(方块)
    min-detect-height: 3
    
    # 伤害计算精度
    damage-precision: 0.5
    
    # 允许的落地速度偏差(方块/秒)
    max-landing-speed-deviation: 1.0
    
    # 允许的伤害减免(百分比)
    max-damage-reduction: 50
    
    # 考虑摔落保护效果
    consider-protection: true
    
    # 考虑水和岩浆
    consider-water: true
    
    # 考虑蜘蛛网
    consider-cobweb: true
    
    # 考虑干草块
    consider-hay-bale: true
    
    # 无坠落伤害检测的惩罚类型
    punishment: warning
    
    # 异步检测开关
    async: false
    
    # 调试模式开关
    debug: false
    
    # 玩家权限绕过检测
    bypass-permission: 鍏夎氨Spectrum.bypass.nofall

惩罚设置

无坠落伤害检测支持的惩罚类型:

  • warning:发送警告消息
  • kick:踢出玩家
  • tempban:临时封禁

🚤 Jesus (水上行走检测)

功能描述

检测玩家是否使用水上行走作弊,能够在水面上行走而不下沉。

检测原理

  • 分析玩家与水面的互动数据
  • 监测玩家在水上的移动速度和方式
  • 比较预期的水中行为与实际行为
  • 检测异常的水面碰撞检测数据
  • 分析玩家在水上行走时的跳跃行为

配置参数详解

yaml
movement:
  jesus:
    # 是否启用水上行走检测
    enabled: true
    
    # 检测阈值(0-1之间)
    threshold: 0.7
    
    # 违规积累速度
    violation-rate: 1.0
    
    # 最大违规次数
    max-violations: 15
    
    # 重置违规计数的时间间隔(秒)
    violation-reset-time: 300
    
    # 允许在水上停留的最大时间(毫秒)
    max-water-stay-time: 500
    
    # 允许的水上移动速度(方块/秒)
    max-water-walk-speed: 4.0
    
    # 考虑冰霜行者附魔
    consider-frost-walker: true
    
    # 考虑船只
    consider-boat: true
    
    # 考虑特殊方块(如睡莲)
    consider-special-blocks: true
    
    # 水上行走检测的惩罚类型
    punishment: warning
    
    # 异步检测开关
    async: false
    
    # 调试模式开关
    debug: false
    
    # 玩家权限绕过检测
    bypass-permission: 鍏夎氨Spectrum.bypass.jesus

惩罚设置

水上行走检测支持的惩罚类型:

  • warning:发送警告消息
  • kick:踢出玩家
  • tempban:临时封禁

🔺 Step (台阶检测)

功能描述

检测玩家是否使用台阶作弊,能够一步跨越多个方块高度或快速登上台阶。

检测原理

  • 分析玩家的垂直移动和跳跃行为
  • 监测玩家登上台阶的速度和方式
  • 比较预期的台阶攀登行为与实际行为
  • 检测异常的跳跃高度和台阶跨越
  • 分析玩家脚部位置和方块碰撞数据

配置参数详解

yaml
movement:
  step:
    # 是否启用台阶检测
    enabled: true
    
    # 检测阈值(0-1之间)
    threshold: 0.6
    
    # 违规积累速度
    violation-rate: 1.0
    
    # 最大违规次数
    max-violations: 15
    
    # 重置违规计数的时间间隔(秒)
    violation-reset-time: 300
    
    # 允许的最大台阶高度(方块)
    max-step-height: 1.1
    
    # 允许的最大跳跃台阶数
    max-jump-steps: 1
    
    # 台阶检测的惩罚类型
    punishment: warning
    
    # 异步检测开关
    async: false
    
    # 调试模式开关
    debug: false
    
    # 玩家权限绕过检测
    bypass-permission: 鍏夎氨Spectrum.bypass.step

惩罚设置

台阶检测支持的惩罚类型:

  • warning:发送警告消息
  • kick:踢出玩家

⚡ Velocity (击退响应检测)

功能描述

检测玩家是否使用防击退作弊,能够减少或完全避免受到攻击时的击退效果。

检测原理

  • 计算玩家受到攻击后的预期击退距离
  • 监测玩家受到击退时的移动轨迹
  • 比较实际的击退距离与预期距离
  • 分析玩家在被击退时的异常操作
  • 检测异常的碰撞响应

配置参数详解

yaml
movement:
  velocity:
    # 是否启用击退响应检测
    enabled: true
    
    # 检测阈值(0-1之间)
    threshold: 0.7
    
    # 违规积累速度
    violation-rate: 1.0
    
    # 最大违规次数
    max-violations: 20
    
    # 重置违规计数的时间间隔(秒)
    violation-reset-time: 300
    
    # 允许的击退距离偏差(百分比)
    max-velocity-deviation: 30
    
    # 考虑防护装备
    consider-protection: true
    
    # 考虑玩家状态(如跳跃、飞行等)
    consider-player-state: true
    
    # 击退检测的惩罚类型
    punishment: warning
    
    # 异步检测开关
    async: false
    
    # 调试模式开关
    debug: false
    
    # 玩家权限绕过检测
    bypass-permission: 鍏夎氨Spectrum.bypass.velocity

惩罚设置

击退响应检测支持的惩罚类型:

  • warning:发送警告消息
  • kick:踢出玩家
  • tempban:临时封禁

🏃 Phase (穿墙检测)

功能描述

检测玩家是否使用穿墙作弊,能够穿过实心方块。

检测原理

  • 分析玩家与方块的碰撞检测数据
  • 监测玩家移动时的碰撞响应
  • 比较玩家位置与周围方块的关系
  • 检测玩家在方块内的异常停留
  • 分析玩家移动轨迹的连续性

配置参数详解

yaml
movement:
  phase:
    # 是否启用穿墙检测
    enabled: true
    
    # 检测阈值(0-1之间)
    threshold: 0.6
    
    # 违规积累速度
    violation-rate: 1.0
    
    # 最大违规次数
    max-violations: 10
    
    # 重置违规计数的时间间隔(秒)
    violation-reset-time: 300
    
    # 碰撞检测精度
    collision-precision: 0.1
    
    # 允许在方块内的最大时间(毫秒)
    max-block-stay-time: 100
    
    # 考虑特殊方块(如门、活板门等)
    consider-special-blocks: true
    
    # 考虑创造模式
    consider-creative: true
    
    # 穿墙检测的惩罚类型
    punishment: kick
    
    # 异步检测开关
    async: false
    
    # 调试模式开关
    debug: false
    
    # 玩家权限绕过检测
    bypass-permission: 鍏夎氨Spectrum.bypass.phase

惩罚设置

穿墙检测支持的惩罚类型:

  • warning:发送警告消息
  • kick:踢出玩家
  • tempban:临时封禁
  • ban:永久封禁

🔨 Scaffold (搭桥检测)

功能描述

检测玩家是否使用自动搭桥作弊,能够快速放置方块形成路径。

检测原理

  • 分析玩家放置方块的频率和模式
  • 监测玩家搭桥时的移动和放置行为
  • 比较预期的搭桥速度与实际速度
  • 检测异常的方块放置位置
  • 分析玩家在搭桥时的视角和点击行为

配置参数详解

yaml
movement:
  scaffold:
    # 是否启用搭桥检测
    enabled: true
    
    # 检测阈值(0-1之间)
    threshold: 0.7
    
    # 违规积累速度
    violation-rate: 1.0
    
    # 最大违规次数
    max-violations: 15
    
    # 重置违规计数的时间间隔(秒)
    violation-reset-time: 300
    
    # 允许的最大方块放置频率(方块/秒)
    max-block-place-rate: 10.0
    
    # 允许的最大悬空搭桥长度(方块)
    max-floating-length: 5
    
    # 考虑脚手架方块
    consider-scaffolding: true
    
    # 搭桥检测的惩罚类型
    punishment: warning
    
    # 异步检测开关
    async: true
    
    # 调试模式开关
    debug: false
    
    # 玩家权限绕过检测
    bypass-permission: 鍏夎氨Spectrum.bypass.scaffold

惩罚设置

搭桥检测支持的惩罚类型:

  • warning:发送警告消息
  • kick:踢出玩家
  • tempban:临时封禁

🧗‍♂️ 攀爬检测

功能描述

检测玩家是否使用攀爬作弊,能够快速攀爬垂直表面或攀爬非攀爬表面。

检测原理

  • 监测玩家攀爬垂直表面的速度和方式
  • 分析玩家与攀爬表面的碰撞检测数据
  • 比较预期的攀爬速度与实际的攀爬速度
  • 检测异常的攀爬轨迹和行为

配置参数详解

yaml
movement:
  climb:
    # 是否启用攀爬检测
    enabled: true
    
    # 检测阈值(0-1之间)
    threshold: 0.6
    
    # 违规积累速度
    violation-rate: 1.0
    
    # 最大违规次数
    max-violations: 15
    
    # 重置违规计数的时间间隔(秒)
    violation-reset-time: 300
    
    # 最大攀爬速度(方块/秒)
    max-climb-speed: 1.5
    
    # 是否允许梯子攀爬
    allow-ladders: true
    
    # 是否允许藤蔓攀爬
    allow-vines: true
    
    # 攀爬检测的惩罚类型
    punishment: warning
    
    # 异步检测开关
    async: false
    
    # 调试模式开关
    debug: false
    
    # 玩家权限绕过检测
    bypass-permission: 鍏夎氨Spectrum.bypass.climb

惩罚设置

攀爬检测支持的惩罚类型:

  • warning:发送警告消息
  • kick:踢出玩家

🐆 平移检测

功能描述

检测玩家是否使用平移作弊,能够以异常的横向速度移动。

检测原理

  • 分析玩家在移动时的横向加速度
  • 监测异常的横向移动模式
  • 比较预期的横向移动与实际的横向移动
  • 检测异常的转向速度和角度变化

配置参数详解

yaml
movement:
  strafe:
    # 是否启用平移检测
    enabled: true
    
    # 检测阈值(0-1之间)
    threshold: 0.6
    
    # 违规积累速度
    violation-rate: 1.0
    
    # 最大违规次数
    max-violations: 15
    
    # 重置违规计数的时间间隔(秒)
    violation-reset-time: 300
    
    # 最大平移速度(方块/秒)
    max-strafe-speed: 7.0
    
    # 最大横向加速度(方块/秒²)
    max-lateral-acceleration: 15.0
    
    # 平移检测的惩罚类型
    punishment: warning
    
    # 异步检测开关
    async: false
    
    # 调试模式开关
    debug: false
    
    # 玩家权限绕过检测
    bypass-permission: 鍏夎氨Spectrum.bypass.strafe

惩罚设置

平移检测支持的惩罚类型:

  • warning:发送警告消息
  • kick:踢出玩家

📝 配置示例

以下是移动检测模块的推荐配置示例:

yaml
movement:
  # 飞行检测
  flight:
    enabled: true
    threshold: 0.7
    allow-elytra: true
    allow-creative: true
    punishment: kick
    
  # 速度检测
  speed:
    enabled: true
    threshold: 0.7
    walking-speed: 5.0
    sprinting-speed: 7.0
    ice-bonus: 0.3
    punishment: kick
    
  # 无坠落伤害检测
  nofall:
    enabled: true
    threshold: 0.6
    min-detect-height: 3
    punishment: warning
    
  # 水上行走检测
  jesus:
    enabled: true
    threshold: 0.7
    max-water-stay-time: 500
    punishment: warning
    
  # 台阶检测
  step:
    enabled: true
    threshold: 0.6
    max-step-height: 1.1
    punishment: warning
    
  # 击退响应检测
  velocity:
    enabled: true
    threshold: 0.7
    max-velocity-deviation: 30
    punishment: warning
    
  # 穿墙检测
  phase:
    enabled: true
    threshold: 0.6
    max-block-stay-time: 100
    punishment: kick
    
  # 搭桥检测
  scaffold:
    enabled: true
    threshold: 0.7
    max-block-place-rate: 10.0
    punishment: warning
    
  # 攀爬检测
  climb:
    enabled: true
    threshold: 0.6
    max-climb-speed: 1.5
    allow-ladders: true
    allow-vines: true
    punishment: warning
    
  # 平移检测
  strafe:
    enabled: true
    threshold: 0.6
    max-strafe-speed: 7.0
    punishment: warning

❓ 常见问题

如何减少移动检测的误报?

  1. 调整检测阈值:增加threshold值可以降低检测的严格程度
  2. 考虑服务器延迟:在config.yml中启用latency-compensation并设置合适的值
  3. 为特殊玩家设置白名单:使用/鍏夎氨Spectrum whitelist add <player>命令
  4. 配置兼容模式:在compatibility.yml中添加与其他插件的兼容设置

如何优化移动检测的性能?

  1. 对于性能较低的服务器,可以禁用一些非核心的移动检测模块
  2. 调整检测频率:在config.yml中增加check-interval
  3. 启用异步检测:对于计算密集型的检测模块,将async设置为true
  4. 降低违规检查的精度:在不影响检测效果的前提下,适当增加检测参数的容差

最后更新时间:2025年10月2日