▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
DuckyAC

DuckyAC

Lightweight, modular, and fully configurable anti-cheat plugin for Minecraft Servers

Оцените первым
1.2K
7
Все версии→DuckyAC 1.2.0

DuckyAC 1.2.0

Release07.09.2026

Список изменений

🛠️ DuckyAC v1.2.0 - Packet Detection Engine & Movement Safety Update

In v1.2.0, DuckyAC introduces a centralized PacketEvents processing pipeline, rewrites several major checks around packet-level movement data, and adds safer player-state tracking shared across the anti-cheat.

This release significantly improves Reach, NoSlowDown, and Timer detection, adds InvalidPositionA and AutoTrapB, expands diagnostic tools, and introduces an automated test suite for detection math, configuration, permissions, and packet registration.


✨ New Features

🛡️ InvalidPositionA (New Check)

  • Added a new movement check: InvalidPositionA.

  • Detects players who remain suspended in the air for too long.

  • Detects falling movement that repeatedly stops following vanilla gravity.

  • Distinguishes invalid falling from legitimate long falls and terminal velocity.

  • Uses packet movement history together with server-side collision snapshots.

  • Includes exemptions for legitimate movement caused by:

    • water and lava,
    • ladders, vines, scaffolding, cobwebs, and powder snow,
    • bubble columns, slime blocks, and honey blocks,
    • Levitation, Slow Falling, and Jump Boost,
    • elytra flight, riptide, vehicles, and allowed flight,
    • recent velocity, damage, and teleportation.
  • Records the player's last verified safe ground position.

  • After a confirmed violation, reports the check and safely moves the player using the following fallback order:

    1. the last verified safe position in the current world,
    2. a safe collision block below the player,
    3. a safe position near the world spawn.
  • Revalidates the destination before teleporting and rejects hazardous or obstructed locations.

  • Resets velocity and fall distance after a setback.

  • Includes configurable detection buffers, grace periods, setback cooldowns, and scan depth.

🧱 AutoTrapB (New Check)

  • Added a second AutoTrap check based on PacketEvents block-interaction data.
  • Correlates packet placement attempts with Bukkit placement events.
  • Detects repeated trap-building patterns around nearby players.
  • Evaluates placement timing, rotation changes, cursor values, hand and item consistency, and packet-position consistency.
  • Uses a weighted evidence score instead of relying on a single placement condition.
  • Includes configurable match windows, scoring thresholds, pattern requirements, and debug diagnostics.

📡 Central Packet Processing Pipeline

  • Added one shared PacketEvents listener responsible for decoding and dispatching player traffic.

  • Added dedicated update types for:

    • movement,
    • player actions,
    • packet-rate tracking,
    • block interactions,
    • entity interactions.
  • Checks can register for only the packet streams they require.

  • Added packet-pipeline diagnostics showing received packets, decoded movement and action traffic, entity interactions, decoding errors, missing players, and registered listeners.

  • Added shared per-player state for movement history, item use, sneaking, sprinting, entities, environment snapshots, and recent server actions.


⚔️ Combat Check Improvements

📏 ReachA & ReachB Rework

  • Rebuilt ReachA and ReachB around a shared packet-driven ReachEngine.
  • ReachA now validates block interaction distance using packet position and block geometry.
  • ReachB now analyzes entity attacks decoded directly from PacketEvents.
  • Added historical entity hitboxes and latency-aware rewind selection.
  • Reach distance is calculated from the attacker's eye position to the nearest point of the target's AABB.
  • Added configurable ping compensation, jitter allowance, movement tolerance, and violation buffers.
  • Added a Paper damage-event fallback for servers or protocol situations where an attack packet cannot be matched reliably.
  • Added detailed diagnostics for packet attacks, movement history, entity history, fallback matches, suspicious evidence, and emitted reports.
  • Kept ReachA and ReachB as separate public checks with independent configuration, violation levels, and bypass permissions.

🎯 Hitbox and Through-Blocks Adjustments

  • Updated combat checks to use the shared TPS policy and normalized bypass handling.
  • Improved consistency of alert, cancellation, and configuration behavior across combat detections.

🏃 Movement Check Improvements

🐌 NoSlowDownA-H Packet Rework

  • Reworked NoSlowDownA through NoSlowDownH around the shared packet-driven NoSlowEngine.
  • All variants remain independent public checks with separate IDs, configuration sections, alerts, punishments, and bypass permissions.
  • Movement speed is now calculated from consecutive position packets.
  • Item-use state is tracked from packet actions instead of depending only on Bukkit movement events.
  • Added shared tolerance for movement attributes, Speed and Slowness effects, Soul Speed, recent velocity, teleportation, stale environment data, and low TPS.
  • Added a shared violation buffer to reduce single-sample false positives.
  • Preserved individual detection contexts for eating, bows, crossbows, shields, honey blocks, soul sand, sneaking, and drinking.

🥷 NoSlowDownG Sneaking Fixes

  • Fixed detection of players moving too quickly while sneaking.
  • Sneak start and stop actions are now decoded from PacketEvents entity-action packets.
  • Added a minimum sneaking duration before speed analysis begins.
  • Added checks for packet ground state, vertical movement, ice surfaces, and environment freshness.
  • Added dedicated NoSlowDownG pipeline diagnostics.
  • NoSlowDownG continues to use the shared NoSlowEngine while remaining an independent, non-legacy check.

🕊️ FlyA Responsibility Update

  • FlyA continues to detect repeated unnatural upward movement.
  • Prolonged hovering is handled by InvalidPositionA when the new check is enabled, preventing duplicate reports for the same movement.

⏱️ Timer Check Rework

TimerA

  • Reworked TimerA to analyze movement packet balance against real elapsed time.
  • Added configurable balance limits, recovery, joining grace, teleport grace, and setback behavior.

TimerB

  • Reworked TimerB around packet-rate analysis over a one-second window.
  • Added minimum sample requirements, grace periods, and conservative alert-only defaults.

TimerC

  • Reworked TimerC to detect repeated movement packets with abnormally short intervals.
  • Added a configurable evidence buffer and decay instead of reporting isolated fast packets.

TimerD

  • Reworked TimerD to count movement packets over a configurable rolling time window.
  • Added minimum sample requirements and shared packet-rate infrastructure.

All four Timer checks remain separately configurable and maintain independent violation levels and bypass permissions.


🔍 Fixes

📡 PacketEvents Initialization and Delivery

  • Fixed PacketEvents initialization to use the API supplied by the required PacketEvents plugin.
  • Removed plugin-local PacketEvents API construction.
  • Centralized movement and action packet decoding to prevent inconsistent or duplicate listener behavior.
  • Added explicit tracking for undecodable entity interactions and player actions.
  • Improved handling of packets received before player data is available.

🚨 Alert and Punishment Reliability

  • Corrected check-name normalization used by violation storage and the public API.
  • Improved alert delivery so staff permissions and enabled alert state are handled consistently.
  • Improved punishment execution and Discord command reporting.
  • Added canonical IDs for previously inconsistent configuration names such as bad-packets-a and fast-place-b.

⚙️ TPS and Bypass Consistency

  • Added one shared server TPS tracker used across checks.
  • Normalized per-check TPS gating.
  • Expanded duckyac.bypass.* children to cover all built-in checks.
  • Added dedicated bypass permissions for newly introduced checks.

🧩 Internal Improvements

Shared Player State

  • Added PlayerData and PlayerDataManager for consistent per-player packet state.
  • Added bounded movement and entity histories to avoid unbounded memory growth.
  • Added immutable environment, position, item-use, entity, and safe-position snapshots.
  • Centralized cleanup for player quit and plugin shutdown.

Detection Models

  • Added reusable geometry primitives for vectors and axis-aligned bounding boxes.
  • Added reusable violation buffers, evidence records, policies, decisions, sliding rate counters, and timer balance calculations.
  • Added isolated math models for Reach, NoSlowDown, rotation analysis, and InvalidPosition physics.
  • Kept Bukkit world and collision access on the server thread while packet checks consume immutable snapshots.

Configuration Management

  • Normalized legacy configuration paths while retaining compatibility fallbacks where required.
  • Added safer defaults and validation-friendly bounds for packet-based checks.
  • Updated built-in check metadata exposed through the public developer API.

⚙️ Configuration and Upgrade Notes

⚠️ Important: DuckyAC v1.2.0 uses config-version: 6.

Server owners should regenerate config.yml or carefully merge the new defaults. Existing configuration files will not automatically contain every new tuning option.

Review the following sections when upgrading:

  • invalid-position-a — new physics-aware airborne detection and safe setback settings;
  • auto-trap-b — new packet matching, pattern, and evidence scoring settings;
  • no-slowdown — new shared buffer, tolerance, and grace policy;
  • no-slowdown-a through no-slowdown-h — updated packet-based variant settings;
  • reach-a and reach-b — rewind, tolerance, buffer, and Paper fallback settings;
  • timer-a through timer-d — new packet timing, rate, grace, and alert-only settings;
  • bad-packets-a and fast-place-b — canonical section names;
  • packet-pipeline-debug — optional packet and listener diagnostics;
  • plugin.yml permissions — expanded per-check bypass entries.

Representative InvalidPositionA configuration:

invalid-position-a:
  enabled: true
  min-tps: 19.0
  hover-min-ticks: 30
  hover-max-delta-y: 0.015
  fall-min-ticks: 60
  fall-window-size: 20
  fall-invalid-samples: 12
  gravity-tolerance: 0.06
  buffer-threshold: 3.0
  setback-enabled: true
  setback-cooldown-ms: 3000
  downward-scan-depth: 64
  max-alerts: 5
  command: "kick %player% Invalid position (InvalidPositionA)"
  debug: false

PacketEvents remains a required dependency:

depend: ["packetevents"]

🧪 Testing

  • Added JUnit 5 and automated Gradle test execution.

  • Added tests for:

    • configuration structure and safe threshold ranges,
    • canonical check identifiers,
    • bypass permission defaults,
    • packet listener registration,
    • player movement history and state,
    • Reach and NoSlowDown calculations,
    • Timer balance and packet-rate windows,
    • rotation analysis and violation buffers,
    • AABB geometry,
    • InvalidPosition hover, legal falling, invalid falling, resets, and exemptions.
  • Verified with 59 passing automated tests and 0 failures.

  • The project continues to target Java 21 and Spigot/Paper 1.20.6.


📦 Version

  • Updated DuckyAC version from 1.1.7 to 1.2.0.

📌 Summary

DuckyAC v1.2.0 moves the core of its movement, timing, and reach analysis to a centralized PacketEvents pipeline. ReachA/B, NoSlowDownA-H, TimerA-D, and BadPacketsA now share consistent packet state, timing, buffers, TPS rules, and exemptions while retaining their individual public check identities.

The release also adds InvalidPositionA with safe ground setbacks and AutoTrapB with packet-to-event placement validation. Improved diagnostics, normalized configuration and permissions, shared geometry and evidence models, and a new automated test suite make the anti-cheat easier to tune and maintain.

⚠️ Before upgrading a production server, merge the new version 6 configuration sections and verify that PacketEvents 2.11.2 is installed and loading before DuckyAC.

Файлы

DuckyAC-1.2.0.jar(355.17 KiB)
Основной
Скачать

Метаданные

Канал релиза

Release

Номер версии

1.2.0

Загрузчики

Bukkit
Paper
Purpur
Spigot

Версии игры

1.20.6–26.2

Загрузок

7

Дата публикации

07.09.2026

Загрузил

ID версии

Главная