
DakotaAC
The ultimate Minecraft anti-cheat solution! Protect your server with real-time detection, powerful features, and seamless gameplay integrity.
856
5
Список изменений
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
-
Sneak- Added:
- Delay mechanism before speed check, using
PlayerToggleSneakEvent. HashMapto manage player sneak start times.PlayerQuitEventhandler to clear player data.- English comments and explanations (Follow-up).
- Delay mechanism before speed check, using
- Fixed:
- Optimized speed calculation using
lengthSquared()instead oflength().
- Optimized speed calculation using
- Added:
-
Fly- Added:
PlayerFlyDataclass 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).
- Refined logic to ignore players with legitimate flight permissions (Creative, Spectator,
- Added:
-
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_BOOSTandSLIME_BLOCK. - General tolerance for jump calculations.
- Exclusions for game modes, flying, gliding, and a grace period after teleportation.
- Tracking of height from last ground position (
- Fixed:
- On detection, player is teleported to previous XZ at the Y height where the jump started (more precise rollback).
- Added:
-
InventoryMove- Added:
PlayerInventoryDataclass (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
InventoryOpenEventandPlayerMoveEventfor all GUI types. - Multiple exclusions (Creative, Spectator, vehicle, flying, gliding, Levitation, falling).
- Detection logic based on significant movement + recent inventory click.
- Refined monitoring logic on
- Added:
-
Jesus- Added:
PlayerWaterDataclass (last check location, ticks on water surface, last teleport time).- Grace period after teleportation.
- Refined
isPlayerExploitingWaterSurfacemethod (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.
- Added:
-
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.
- Unified speed threshold for slowdown actions (
- Fixed:
- Exclusions for Creative, Spectator, flying, vehicle, and
PotionEffectType.SPEED. - Teleport action on detection (previous XZ, current Y).
- Optimized speed calculation (using squared values).
- Exclusions for Creative, Spectator, flying, vehicle, and
- Added:
-
NoWeb- Added:
- Robust cobweb presence detection (
isInCobwebchecks feet, center, head). - Immediate alert on sprint in cobweb.
- Robust cobweb presence detection (
- Fixed:
- Realistic speed threshold (
COBWEB_SPEED_THRESHOLD_SQUARED) and optimized calculation (usingdistanceSquared). - Exclusions for Creative, Spectator, flying, vehicle, and
PotionEffectType.SPEED. - Teleport action on detection (previous XZ, current Y).
- Realistic speed threshold (
- Added:
-
Speed- Added:
PlayerSpeedDataclass (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
PlayerTeleportEventto reset data (Follow-up).
- Fixed:
- Dynamic calculation of max allowed speed per tick, including
SPEEDandSLOWNESSpotion 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).
- Dynamic calculation of max allowed speed per tick, including
- Added:
-
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
distanceSquaredfor the minimum movement threshold. MAX_ALLOWED_SPRINT_DIRECTION_ANGLE_RAD(80 degrees) defines the legitimate sprint cone.
- Added:
-
Step- Added:
PlayerStepDataclass.- Grace period after teleportation.
- Fixed:
- Logic based on
wasOnGroundLastTick,yChangeThisTick > MAX_STEP_THRESHOLD, andvelocityY < MIN_JUMP_VELOCITY_EXPECTED. - Ignoring
SLIME_BLOCKandHONEY_BLOCKas launch sources. - Threshold adjustments (
MAX_LEGIT_VERTICAL_STEP_THRESHOLDto0.60) to correctly allow stepping on slabs/stairs while still detecting full block steps without a proper jump (Follow-ups). - Improved alert message.
- Logic based on
- Added:
Exploit Modules
-
GhostHand- Removed:
- Angle check (
isLookingTowards).
- Angle check (
- Fixed:
- Detection now exclusively based on
player.getTargetBlockExact(). - Simplified logic and code cleanup.
- Detection now exclusively based on
- Removed:
-
Blink- Added:
- Grace period after legitimate teleports (using
PlayerTeleportEventandHashSet). - Requirement for main plugin instance injection.
- Grace period after legitimate teleports (using
- Fixed:
- Robustness checks for
fromandtolocations. - Use of
distanceSquaredfor distance threshold comparison.
- Robustness checks for
- Added:
-
Phase- Added:
- Expanded
PASSABLE_MATERIALSlist. - Exclusion for
GameMode.CREATIVE(Follow-up).
- Expanded
- Fixed:
- Improved
isEffectivelySolidmethod to correctly handleOpenableblock 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).
- Improved
- Added:
Combat Modules
-
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.
victimvariable type changed toLivingEntityand helper methods adapted (Follow-up).
- Added:
-
AutoClicker- Added:
enum ClickType { LEFT_CLICK_SWING, RIGHT_CLICK_ITEM_USE }.- Separate data storage for each click type.
- Monitoring
Action.LEFT_CLICK_AIRfor attacks. - Monitoring
Action.RIGHT_CLICK_AIR/BLOCKonly for specific "spammable" items.
- Fixed:
- Adjusted CPS threshold to 25 for both click types (Follow-up).
- Added:
-
Criticals- Removed:
- Inefficient per-player state (
lastLocation,lastAttackTime).
- Inefficient per-player state (
- Fixed:
- Direct check of
event.isCritical(). - Detection of illegitimate criticals based on conditions: on ground, negligible fall distance, climbing, in liquid, in vehicle.
- Direct check of
- Removed:
-
HitBox- Removed:
- Less precise angle-based check.
- Fixed:
- Detection based on
victim.getBoundingBox().rayTrace(...)for server-side hitbox intersection. - Dynamic calculation of
rayTraceMaxDistanceto 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).
- Detection based on
- Removed:
-
Velocity(Anti-Knockback)- Removed:
- Event cancellation from within the
BukkitRunnable(as it's too late).
- Event cancellation from within the
- 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.
- Removed:
-
Scaffold- Added:
PlayerScaffoldDataclass (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.
- Added:
Miscellaneous Modules (Misc)
-
AntiBot- Added:
- Interaction monitoring (
AsyncPlayerChatEvent,PlayerInteractEvent) viahasPerformedActionflag. - Injection of the main plugin instance.
- Specific alert message.
- Interaction monitoring (
- Fixed:
- Wait time reduced to 1 second.
- Strict position and rotation check if no other actions were performed by the new player.
- Added:
-
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.
- Added:
-
Spammer- Added:
enum ActionType { CHAT, COMMAND }.- Separate timestamp storage for each action type.
- Generalized
handlePlayerActionmethod. - Specific alert messages for spam type.
- Fixed:
- Use of
LinkedListfor timestamps (better queue performance). - Set
EventPriority.MONITOR.
- Use of
- Added:
World Modules
-
FastBreak- Added:
- Explicit exclusions for players with
PotionEffectType.HASTEor tools withEnchantment.EFFICIENCY(Follow-up). - Exclusion for
event.isInstaBreak()(Follow-up).
- Explicit exclusions for players with
- Fixed:
- Extended
BASE_BREAK_TIMES_MSmap (base times without buffs). PlayerBreakStatefor 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).
- Extended
- Added:
-
FastPlace- Added:
- Exclusions (Creative, Spectator).
- Handler for
PlayerQuitEventto clear data.
- Fixed:
- Set
EventPriority.HIGH. - Core logic (checking
MIN_PLACE_INTERVAL_MS) preserved.
- Set
- Added:
-
Fucker(NoLOSBreak)- Removed:
WATCHED_BLOCKSlist; detection generalized to any block type.
- Fixed:
- Use of
player.getTargetBlockExact()for server-side targeted block. - Alert if server-targeted block is
nullor different from the block actually broken. - Exclusions (Creative, Spectator).
- Set
EventPriority.HIGH. - Reconfirmed existing optimized version meets requirements (Follow-up).
- Use of
- Removed:
-
Nuker- Added:
MAX_NUKER_RADIUS_SQUAREDconstant to define detection radius.- Verification of broken block's distance from the player.
- Handler for
PlayerQuitEvent.
- Fixed:
- Adjusted thresholds:
TIME_WINDOW_MSto 1 second,MAX_NEARBY_BLOCKS_IN_WINDOWto 5. - Standard exclusions (Creative, Spectator).
- Set
EventPriority.HIGH.
- Adjusted thresholds:
- Added:
Player Modules
-
AntiVoid- Added:
PlayerVoidDataclass (initial Y on void contact,BukkitTask,isBeingMonitoredflag).- 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.
- Added:
-
ChestStealer- Added:
ClickActionLogclass (timestamp +itemsTakenThisClick).calculateItemsTakenmethod based onInventoryAction.- Two-stage detection: high click speed + total items taken above a threshold.
- Handlers for
InventoryCloseEventandPlayerQuitEventto clear data.
- Fixed:
- Applicable for
CHEST,ENDER_CHEST,SHULKER_BOX,BARREL.
- Applicable for
- Added:
-
FastUse- Added:
- Handler for
PlayerQuitEvent.
- Handler for
- Fixed:
- Renamed
MIN_CONSUMPTION_TIME_MStoMAX_VALID_INTERVAL_BETWEEN_CONSUMPTIONS_MSfor clarity. - Set
EventPriority.HIGH,ignoreCancelled = true. - Core logic for checking intervals between consumption finishes preserved.
- Renamed
- Added:
-
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.
- Strict "no GUI open" condition:
- Fixed:
- Adjusted thresholds (
MAX_DROPS_IN_WINDOW,TIME_WINDOW_MS). - Exclusions (Creative, Spectator).
- On detection, event is cancelled and timestamp queue is cleared.
- Adjusted thresholds (
- Added:
Main Class and Utilities
-
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.
- Fixed:
-
Alert- Fixed:
- Replaced
HashMapwithjava.util.concurrent.ConcurrentHashMapfor 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).
- Replaced
- Fixed:
-
Commands- Added:
- Static constants for permissions and sub-command names.
- Fixed:
- Optimized
onTabCompletemethod with a static base list for commands.
- Optimized
- Added:
-
Punishment- Added:
- Constants for configuration keys and default values.
- Public
reloadPunishmentConfig()method. - Storage of
banThresholdandbanDurationMillisin 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.
- Added:
Файлы
DakotaAC.jar(117.47 KiB)
ОсновнойМетаданные
Канал релиза
Alpha
Номер версии
0.16
Загрузчики
BukkitPaperSpigot
Версии игры
1.20–1.21.5
Загрузок
473
Дата публикации
9 мес. назад
