Files
XeroAntiCheat/README.md
Axel a4a87e62de v1.1.3: Fix config/code consistency issues
- SpeedCheck: tps.enabled and tps.min_tps_threshold now work (was hardcoded)
- ConfigManager/config.yml: Removed orphaned async_task_threads and commands.* keys
- PunishmentManager: database.enabled now correctly disables SQLite logging
- PacketListener: Removed dead code (updatePacketTiming, recordClick, recordAttack)
2026-03-15 12:47:43 -03:00

30 lines
2.5 KiB
Markdown

# XeroAntiCheat
Lightweight, accurate anti-cheat for Paper 1.21.x
## Latest Updates (v1.1.3)
- **SpeedCheck**: `tps.min_tps_threshold` and `tps.enabled` config keys now actually work — previously hardcoded as `18.0` and always-on.
- **config.yml**: Removed orphaned `async_task_threads` key and entire `commands:` section — these were never read by the plugin.
- **PunishmentManager**: `database.enabled: false` now correctly disables SQLite punishment logging as documented.
- **PacketListener**: Removed three unreachable fallback methods (`updatePacketTiming`, `recordClick`, `recordAttack`) — dead code since v1.0.4.
## Latest Updates (v1.1.2)
- **reload**: `violation.decay_interval` changes now take effect immediately — the decay task is cancelled and recreated on every `/xac reload`.
- **NoFallCheck**: Added Beds (all 16 colour variants via `Tag.BEDS`) and Powder Snow to the list of blocks that cancel fall damage. Eliminates false positives when players land on these blocks.
- **config.yml**: Removed orphaned `allow_jump_crits` key from `checks.critical` section (was removed from code in v1.1.1).
- **JesusCheck, GlideCheck**: Eliminated `Math.sqrt()` from hot-path threshold comparisons.
## Latest Updates (v1.1.1)
- **CriticalCheck**: Removed dead code — the "no-air crit" detection branch was logically unreachable because `isCritical=true` requires `!isOnGround`, making the subsequent `isOnGround` check always false. The check now only flags "crit while sprinting" (the only branch that could actually fire). Removed `allow_jump_crits` config key. (Future enhancement: Option B damage-ratio detection.)
- **InventoryMoveCheck**: Replaced `Math.sqrt()` with squared distance comparison (`distanceSquared > 0.01`), consistent with the ReachCheck optimisation.
## Latest Updates (v1.1.0)
- **ReachCheck**: Now measures distance to entity bounding box center instead of feet. Eliminates false negatives when attacking tall entities (horses, iron golems, withers). Also switched from `distance()` to `distanceSquared()` comparison, removing a `Math.sqrt()` from the hot path.
- **AutoClickerCheck**: `checkPattern()` rewritten with zero-allocation two-pass iterator approach. Previously allocated two `ArrayList` objects on every combat click.
- **TimerCheck**: Removed redundant blink detection from `check()` method. Blink detection is fully handled by the 5-tick scheduled task. `setLastMovePacketTime()` retained to feed the task.
- **KillAuraCheck**: Removed unused `EntityEffect` import.