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

DakotaAC

The ultimate Minecraft anti-cheat solution! Protect your server with real-time detection, powerful features, and seamless gameplay integrity.

856
5
Все версииAlpha-Release 1

Alpha-Release 1

Alpha9 мес. назад

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

DakotaAC Structured Changelog

This document summarizes the main changes and optimizations made to each module of the DakotaAC plugin, categorized by Added, Fixed, and Removed.

Movement Modules

  1. Sneak

    • Added:
      • Delay mechanism before speed check, using PlayerToggleSneakEvent.
      • HashMap to manage player sneak start times.
      • PlayerQuitEvent handler to clear player data.
      • English comments and explanations (Follow-up).
    • Fixed:
      • Optimized speed calculation using lengthSquared() instead of length().
  2. Fly

    • Added:
      • PlayerFlyData class for detailed flight state storage.
      • Grace period after teleports.
      • Detection for unjustified rapid ascent and prolonged slow ascent/hovering.
      • Improved helper methods for ground, solid block, liquid, and climbable checks.
      • "Pull down" action on detection.
      • Requirement for main plugin instance injection for task scheduling.
    • Fixed:
      • Refined logic to ignore players with legitimate flight permissions (Creative, Spectator, /fly, elytra, Levitation).
  3. HighJump

    • Added:
      • Tracking of height from last ground position (lastOnGroundY) and jump start block.
      • Dynamic calculation of max allowed jump height, adjusted for PotionEffectType.JUMP_BOOST and SLIME_BLOCK.
      • General tolerance for jump calculations.
      • Exclusions for game modes, flying, gliding, and a grace period after teleportation.
    • Fixed:
      • On detection, player is teleported to previous XZ at the Y height where the jump started (more precise rollback).
  4. InventoryMove

    • Added:
      • PlayerInventoryData class (open time, last check location, last click time).
      • Grace period after opening an inventory.
      • Teleportation management for state reset.
      • Extended detection to any type of open GUI, including the player's own inventory (Follow-up).
    • Fixed:
      • Refined monitoring logic on InventoryOpenEvent and PlayerMoveEvent for all GUI types.
      • Multiple exclusions (Creative, Spectator, vehicle, flying, gliding, Levitation, falling).
      • Detection logic based on significant movement + recent inventory click.
  5. Jesus

    • Added:
      • PlayerWaterData class (last check location, ticks on water surface, last teleport time).
      • Grace period after teleportation.
      • Refined isPlayerExploitingWaterSurface method (checks feet at water level, head above water).
      • Detection based on maintaining a constant vertical level on water + exceeding horizontal speed threshold.
    • Fixed:
      • Exclusions for legitimate water movement/states (Creative, Spectator, flying, vehicle, Levitation, Dolphin's Grace, Lily Pad).
      • Logic to ignore players who are legitimately swimming.
  6. NoSlowDown

    • Added:
      • Unified speed threshold for slowdown actions (SLOWDOWN_ACTION_SPEED_THRESHOLD_SQUARED).
      • Detection for item consumption/use slowdowns via player.isBlocking() and item type check.
      • Immediate alert if sprinting during a slowdown action.
    • Fixed:
      • Exclusions for Creative, Spectator, flying, vehicle, and PotionEffectType.SPEED.
      • Teleport action on detection (previous XZ, current Y).
      • Optimized speed calculation (using squared values).
  7. NoWeb

    • Added:
      • Robust cobweb presence detection (isInCobweb checks feet, center, head).
      • Immediate alert on sprint in cobweb.
    • Fixed:
      • Realistic speed threshold (COBWEB_SPEED_THRESHOLD_SQUARED) and optimized calculation (using distanceSquared).
      • Exclusions for Creative, Spectator, flying, vehicle, and PotionEffectType.SPEED.
      • Teleport action on detection (previous XZ, current Y).
  8. Speed

    • Added:
      • PlayerSpeedData class (detailed state tracking).
      • Detailed speed constants for various states (walk/sprint, ground/air, jump bonus).
      • Multipliers for blocks affecting speed (ice, soul sand, honey block) (Follow-up).
      • Handler for PlayerTeleportEvent to reset data (Follow-up).
    • Fixed:
      • Dynamic calculation of max allowed speed per tick, including SPEED and SLOWNESS potion multipliers.
      • Averaging logic over a time window preserved.
      • Adjusted base speed calculation for "head-hitter" scenarios (Follow-up).
      • Slightly increased speed constants and tolerance for fewer false positives (Follow-up).
  9. Sprint (OmniSprint/Directional Sprint)

    • Added:
      • Exclusions for Creative, Spectator, flying, gliding, vehicle, and not being on ground.
    • Fixed:
      • Preserved and validated angle calculation logic.
      • Used distanceSquared for the minimum movement threshold.
      • MAX_ALLOWED_SPRINT_DIRECTION_ANGLE_RAD (80 degrees) defines the legitimate sprint cone.
  10. Step

    • Added:
      • PlayerStepData class.
      • Grace period after teleportation.
    • Fixed:
      • Logic based on wasOnGroundLastTick, yChangeThisTick > MAX_STEP_THRESHOLD, and velocityY < MIN_JUMP_VELOCITY_EXPECTED.
      • Ignoring SLIME_BLOCK and HONEY_BLOCK as launch sources.
      • Threshold adjustments (MAX_LEGIT_VERTICAL_STEP_THRESHOLD to 0.60) to correctly allow stepping on slabs/stairs while still detecting full block steps without a proper jump (Follow-ups).
      • Improved alert message.

Exploit Modules

  1. GhostHand

    • Removed:
      • Angle check (isLookingTowards).
    • Fixed:
      • Detection now exclusively based on player.getTargetBlockExact().
      • Simplified logic and code cleanup.
  2. Blink

    • Added:
      • Grace period after legitimate teleports (using PlayerTeleportEvent and HashSet).
      • Requirement for main plugin instance injection.
    • Fixed:
      • Robustness checks for from and to locations.
      • Use of distanceSquared for distance threshold comparison.
  3. Phase

    • Added:
      • Expanded PASSABLE_MATERIALS list.
      • Exclusion for GameMode.CREATIVE (Follow-up).
    • Fixed:
      • Improved isEffectivelySolid method to correctly handle Openable block states (doors, gates).
      • Detection logic changed to flag only if entire body (head and feet) is in solid blocks (Follow-up).
      • Updated alert message to be more specific (Follow-up).
      • Initial implementation checked three points (feet, center, head); refined to feet and head for "full body" (Follow-up).

Combat Modules

  1. Killaura

    • Added:
      • Detection applied to attacks on any living entity, not just players (Follow-up).
    • Fixed:
      • Optimized attack angle calculation (dot product, pre-calculated cosine).
      • Use of world.rayTraceBlocks() for precise Line of Sight (LOS) detection.
      • Structured checks: angle first, then LOS.
      • victim variable type changed to LivingEntity and helper methods adapted (Follow-up).
  2. AutoClicker

    • Added:
      • enum ClickType { LEFT_CLICK_SWING, RIGHT_CLICK_ITEM_USE }.
      • Separate data storage for each click type.
      • Monitoring Action.LEFT_CLICK_AIR for attacks.
      • Monitoring Action.RIGHT_CLICK_AIR/BLOCK only for specific "spammable" items.
    • Fixed:
      • Adjusted CPS threshold to 25 for both click types (Follow-up).
  3. Criticals

    • Removed:
      • Inefficient per-player state (lastLocation, lastAttackTime).
    • Fixed:
      • Direct check of event.isCritical().
      • Detection of illegitimate criticals based on conditions: on ground, negligible fall distance, climbing, in liquid, in vehicle.
  4. HitBox

    • Removed:
      • Less precise angle-based check.
    • Fixed:
      • Detection based on victim.getBoundingBox().rayTrace(...) for server-side hitbox intersection.
      • Dynamic calculation of rayTraceMaxDistance to ensure ray is long enough, focusing check on aim precision rather than imposing its own reach limit (Follow-up).
      • Alert message focused on "Aim" (Follow-up).
      • Reconfirmed existing logic correctly handles client-side enlarged hitboxes (Follow-up).
  5. Velocity (Anti-Knockback)

    • Removed:
      • Event cancellation from within the BukkitRunnable (as it's too late).
    • Fixed:
      • Comparison of player location 1 tick after damage using a squared distance threshold.
      • Player validity check (online, alive) in the delayed task.
      • Filtering of very small damage events.
  6. Scaffold

    • Added:
      • PlayerScaffoldData class (last placement time, last placement yaw).
      • Multiple checks: placement speed, look direction (different angle for sprint/walk), rapid head movement ("snap aiming").
      • Requirement for main plugin instance injection.
    • Fixed:
      • Standard exclusions (Creative, Spectator, flying, etc.).
      • Identification of scaffold-like placement (block below feet, free space above).
      • Removed flawed "blocks per tick" logic; focused on interval between placements.

Miscellaneous Modules (Misc)

  1. AntiBot

    • Added:
      • Interaction monitoring (AsyncPlayerChatEvent, PlayerInteractEvent) via hasPerformedAction flag.
      • Injection of the main plugin instance.
      • Specific alert message.
    • Fixed:
      • Wait time reduced to 1 second.
      • Strict position and rotation check if no other actions were performed by the new player.
  2. Chat (Swear Filter)

    • Added:
      • Pre-compilation of regular expressions for banned words.
      • Flexible regex (buildFlexiblePatternForSwear) allowing separators and common "leet speak" (getLeetRegexForChar).
    • Fixed:
      • Improved filtering process applying patterns successively.
      • Replacement with * matching the length of the detected text.
  3. Spammer

    • Added:
      • enum ActionType { CHAT, COMMAND }.
      • Separate timestamp storage for each action type.
      • Generalized handlePlayerAction method.
      • Specific alert messages for spam type.
    • Fixed:
      • Use of LinkedList for timestamps (better queue performance).
      • Set EventPriority.MONITOR.

World Modules

  1. FastBreak

    • Added:
      • Explicit exclusions for players with PotionEffectType.HASTE or tools with Enchantment.EFFICIENCY (Follow-up).
      • Exclusion for event.isInstaBreak() (Follow-up).
    • Fixed:
      • Extended BASE_BREAK_TIMES_MS map (base times without buffs).
      • PlayerBreakState for sequences of the same block type.
      • Tolerance factor for break times.
      • Core logic of comparing interval between same-type block breaks against a reference time (without buffs) maintained and clarified (Follow-up).
  2. FastPlace

    • Added:
      • Exclusions (Creative, Spectator).
      • Handler for PlayerQuitEvent to clear data.
    • Fixed:
      • Set EventPriority.HIGH.
      • Core logic (checking MIN_PLACE_INTERVAL_MS) preserved.
  3. Fucker (NoLOSBreak)

    • Removed:
      • WATCHED_BLOCKS list; detection generalized to any block type.
    • Fixed:
      • Use of player.getTargetBlockExact() for server-side targeted block.
      • Alert if server-targeted block is null or different from the block actually broken.
      • Exclusions (Creative, Spectator).
      • Set EventPriority.HIGH.
      • Reconfirmed existing optimized version meets requirements (Follow-up).
  4. Nuker

    • Added:
      • MAX_NUKER_RADIUS_SQUARED constant to define detection radius.
      • Verification of broken block's distance from the player.
      • Handler for PlayerQuitEvent.
    • Fixed:
      • Adjusted thresholds: TIME_WINDOW_MS to 1 second, MAX_NEARBY_BLOCKS_IN_WINDOW to 5.
      • Standard exclusions (Creative, Spectator).
      • Set EventPriority.HIGH.

Player Modules

  1. AntiVoid

    • Added:
      • PlayerVoidData class (initial Y on void contact, BukkitTask, isBeingMonitored flag).
      • Logic to schedule a task on void damage to check player's Y after a delay.
      • State management on PlayerQuitEvent, PlayerDeathEvent, PlayerTeleportEvent.
      • Requirement for main plugin instance injection.
    • Removed:
      • Event cancellation from the delayed task (as it's too late).
    • Fixed:
      • Exclusions (Creative, Spectator).
      • Alert condition based on player being significantly above initial void contact Y after delay.
  2. ChestStealer

    • Added:
      • ClickActionLog class (timestamp + itemsTakenThisClick).
      • calculateItemsTaken method based on InventoryAction.
      • Two-stage detection: high click speed + total items taken above a threshold.
      • Handlers for InventoryCloseEvent and PlayerQuitEvent to clear data.
    • Fixed:
      • Applicable for CHEST, ENDER_CHEST, SHULKER_BOX, BARREL.
  3. FastUse

    • Added:
      • Handler for PlayerQuitEvent.
    • Fixed:
      • Renamed MIN_CONSUMPTION_TIME_MS to MAX_VALID_INTERVAL_BETWEEN_CONSUMPTIONS_MS for clarity.
      • Set EventPriority.HIGH, ignoreCancelled = true.
      • Core logic for checking intervals between consumption finishes preserved.
  4. InventoryCleaner

    • Added:
      • Strict "no GUI open" condition: player.getOpenInventory().getType() == InventoryType.CRAFTING.
      • Use of Deque<Long> for a sliding window of drop timestamps.
      • Handler for PlayerQuitEvent.
    • Fixed:
      • Adjusted thresholds (MAX_DROPS_IN_WINDOW, TIME_WINDOW_MS).
      • Exclusions (Creative, Spectator).
      • On detection, event is cancelled and timestamp queue is cleared.

Main Class and Utilities

  1. DakotaAC (Main Class)

    • Fixed:
      • More flexible listener registration mechanism (tries no-arg constructor, then plugin instance constructor).
      • Improved error messages on listener loading.
      • Use of constants for package paths.
  2. Alert

    • Fixed:
      • Replaced HashMap with java.util.concurrent.ConcurrentHashMap for thread-safety.
      • Use of map's merge() method for atomic updating of violence levels.
      • Removed a redundant suspicionTypes.put(...) line.
      • Clarified operator notification condition (notifies on every alert).
  3. Commands

    • Added:
      • Static constants for permissions and sub-command names.
    • Fixed:
      • Optimized onTabComplete method with a static base list for commands.
  4. Punishment

    • Added:
      • Constants for configuration keys and default values.
      • Public reloadPunishmentConfig() method.
      • Storage of banThreshold and banDurationMillis in memory, updated on config (re)load.
    • Fixed:
      • Improved configuration file management with more detailed log messages.
      • Player kick performed on the main thread if necessary.

Файлы

DakotaAC.jar(117.47 KiB)
Основной
Скачать

Метаданные

Канал релиза

Alpha

Номер версии

0.16

Загрузчики

Bukkit
Paper
Spigot

Версии игры

1.20–1.21.5

Загрузок

473

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

9 мес. назад

Загрузил

ID версии

Главная