Compatibility
Minecraft: Java Edition
1.21–1.21.5
1.20.x
Platforms
Creators
Details
Licensed Apache-2.0
Published 10 months ago
Updated 2 months ago
Changelog
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
. HashMap
to manage player sneak start times.PlayerQuitEvent
handler 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:
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).
- 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_BOOST
andSLIME_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:
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
andPlayerMoveEvent
for 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:
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.
- 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 (
isInCobweb
checks 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:
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
andSLOWNESS
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).
- 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
distanceSquared
for the minimum movement threshold. MAX_ALLOWED_SPRINT_DIRECTION_ANGLE_RAD
(80 degrees) defines the legitimate sprint cone.
- Added:
-
Step
- Added:
PlayerStepData
class.- Grace period after teleportation.
- Fixed:
- Logic based on
wasOnGroundLastTick
,yChangeThisTick > MAX_STEP_THRESHOLD
, andvelocityY < MIN_JUMP_VELOCITY_EXPECTED
. - Ignoring
SLIME_BLOCK
andHONEY_BLOCK
as launch sources. - Threshold adjustments (
MAX_LEGIT_VERTICAL_STEP_THRESHOLD
to0.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
PlayerTeleportEvent
andHashSet
). - Requirement for main plugin instance injection.
- Grace period after legitimate teleports (using
- Fixed:
- Robustness checks for
from
andto
locations. - Use of
distanceSquared
for distance threshold comparison.
- Robustness checks for
- Added:
-
Phase
- Added:
- Expanded
PASSABLE_MATERIALS
list. - Exclusion for
GameMode.CREATIVE
(Follow-up).
- Expanded
- Fixed:
- Improved
isEffectivelySolid
method to correctly handleOpenable
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).
- 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.
victim
variable type changed toLivingEntity
and 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_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).
- 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
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).
- 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:
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.
- Added:
Miscellaneous Modules (Misc)
-
AntiBot
- Added:
- Interaction monitoring (
AsyncPlayerChatEvent
,PlayerInteractEvent
) viahasPerformedAction
flag. - 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
handlePlayerAction
method. - Specific alert messages for spam type.
- Fixed:
- Use of
LinkedList
for timestamps (better queue performance). - Set
EventPriority.MONITOR
.
- Use of
- Added:
World Modules
-
FastBreak
- Added:
- Explicit exclusions for players with
PotionEffectType.HASTE
or tools withEnchantment.EFFICIENCY
(Follow-up). - Exclusion for
event.isInstaBreak()
(Follow-up).
- Explicit exclusions for players with
- 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).
- Extended
- Added:
-
FastPlace
- Added:
- Exclusions (Creative, Spectator).
- Handler for
PlayerQuitEvent
to clear data.
- Fixed:
- Set
EventPriority.HIGH
. - Core logic (checking
MIN_PLACE_INTERVAL_MS
) preserved.
- Set
- Added:
-
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).
- Use of
- Removed:
-
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
.
- Adjusted thresholds:
- Added:
Player Modules
-
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.
- Added:
-
ChestStealer
- Added:
ClickActionLog
class (timestamp +itemsTakenThisClick
).calculateItemsTaken
method based onInventoryAction
.- Two-stage detection: high click speed + total items taken above a threshold.
- Handlers for
InventoryCloseEvent
andPlayerQuitEvent
to 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_MS
toMAX_VALID_INTERVAL_BETWEEN_CONSUMPTIONS_MS
for 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
HashMap
withjava.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).
- Replaced
- Fixed:
-
Commands
- Added:
- Static constants for permissions and sub-command names.
- Fixed:
- Optimized
onTabComplete
method with a static base list for commands.
- Optimized
- Added:
-
Punishment
- Added:
- Constants for configuration keys and default values.
- Public
reloadPunishmentConfig()
method. - Storage of
banThreshold
andbanDurationMillis
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.
- Added:
Files
Metadata
Release channel
AlphaVersion number
0.16Loaders
Game versions
1.20–1.21.5Downloads
232Publication date
May 17, 2025 at 6:27 AMPublisher

Skypixel
Creator