Global Improvements & Bug Fixes:
- False Positive Reduction:
All checks now distinguish between real cheating attempts and legitimate player actions, drastically reducing false positives.- Performance Optimization:
Switched to thread-safe data structures (ConcurrentHashMap, etc.), and offloaded heavy checks to async tasks wherever possible for better server performance.- Config-Driven:
All thresholds, cooldowns, warning amounts, and detection parameters are now fully configurable via ChecksConfig.- Consistent Messaging & Logging:
Improved alert, action bar, warning, and log messages with more detailed placeholders for easy debugging.- Bypass Handling:
Players with the bypass permission or in Creative/Spectator mode are always correctly excluded from checks.- Better Thread Safety:
All shared state is properly synchronized.
InventoryWalkCheck
- No more alerts for inventory interaction or head movement:
Detection now triggers only if the player actually walks (moves in X/Z coordinates) with the GUI open, not just by moving their view or interacting with inventory slots.- Buffer after inventory open:
Added an 850ms buffer after opening inventory to prevent instant false alerts.- Packet-based precision:
When ProtocolLib is available, movement is tracked directly at the packet level for maximum accuracy.- Less spam:
Alert cooldown and GUI open buffer fully configurable.
NoFallCheck
- Dual-Mode Detection (Events + ProtocolLib):
The check works both with Bukkit events and ProtocolLib packets for maximum compatibility and accuracy.- Accurate Fall Distance:
Accumulates real fall distance, considers boots with Feather Falling and Slow Falling effect, and never triggers for falls onto safe blocks (water, slime, ladders, vines, boats, minecarts, etc.).- False positive reduction:
Properly resets fall state on safe landing, disables itself when needed, and avoids alerting when players take legitimate no-damage falls.- Async computation:
All heavy calculations and alerts happen async, reducing main thread lag.
FastBreakCheck
- Accurate Break Time Calculation:
Checks block hardness, tool type, enchantments, potion effects (Haste/Mining Fatigue), and block drops to determine if breaking time is legit.- Supports both Bukkit and ProtocolLib event flows.
- Soft block handling:
Special logic for softer blocks and multi-platform support.- Spam reduction:
Alert cooldown and tolerance thresholds prevent alert flooding.- Thread safety:
All relevant maps and data stores are thread-safe.
KillAuraCheck
- Directional attack detection:
Uses field-of-view, dot product, and yaw angle to check if the target is within legitimate attack range, and not behind or outside player’s view.- No alerts for close-proximity (legit) attacks.
- Supports both ProtocolLib and event-based flows.
ReachCheck
- Checks only legitimate attack events:
Verifies that the attack is of type ENTITY_ATTACK and that the reach distance exceeds the configured threshold.- Cooldown per player to prevent warning spam.
- Never triggers in Creative/Spectator or for bypass players.
JesusCheck
- Reliable fluid-walking detection:
Triggers only if the player is genuinely walking over a fluid block (not inside it or on the edge), and only if not gliding, flying, or affected by Levitation.- Cleans up state as needed to prevent memory leaks and false alerts.
- All checks and alerts are performed in an async-safe manner.
ClickPatternCheck
- Variance-based detection:
Looks for suspiciously consistent click intervals (low variance) and high CPS before flagging.- Auto-resets state on inactivity or if the player is mining, to avoid accidental alerts.
- CoolDown configurable per player.
Summary
- Much fewer false positives for all checks.
- Better user experience: inventory is fully usable, fewer unnecessary warnings, and player actions are not interrupted.
- Increased accuracy and configurability.
- Optimized performance and stability.
- Cleaner, more maintainable code.
Important Notice:
This plugin has a soft dependency on ProtocolLib.
If ProtocolLib is installed, several checks (e.g., Reach, KillAura, AutoClicker, etc.) will work with greater accuracy and advanced packet analysis.
However, the plugin remains fully functional even without ProtocolLib, using standard Bukkit event listeners as a fallback.
Changelog
General / Infrastructure
- Soft ProtocolLib Integration:
All relevant checks can use ProtocolLib for precise packet-level detection. If ProtocolLib is missing, Bukkit events are used instead.- Thread Safety & Async Refactoring:
Time-consuming and database-related actions run asynchronously to prevent lag; all Bukkit API calls are scheduled on the main thread.
ReachCheck
- Standalone Reach Check:
The reach check was separated from KillAura and is now a dedicated class.- ProtocolLib Support:
Intercepts USE_ENTITY packets for precise reach detection and validation.- Cooldown System:
Per-player cooldowns prevent alert spamming.- Message Variable Consistency:
Alerts, logs, and action bar messages now use unified variables.- Bukkit Fallback:
If ProtocolLib isn’t present, falls back to Bukkit’s EntityDamageByEntityEvent.- Permission & GameMode Bypass:
Added to avoid false positives and unwanted alerts.
KillAuraCheck
- Reach Detection Removed:
All logic related to reach distance moved to the new ReachCheck.- Packet-based Orientation Checks:
Now focuses only on orientation, dot product, angle, and yaw difference checks for legit aim detection.- Cooldown System:
Alert spam protection implemented.- Optimized Async Handling:
All heavy processing moved async, with alerts and player actions on the main thread.- Unified Message System:
All alerts and logs use standardized placeholders.
AutoClickerCheck
- ProtocolLib Support Improved:
Added/Fixed packet-based detection for higher reliability with ProtocolLib.- Bugfix:
Fixed an issue where the check would not trigger or would produce false negatives.- Cooldowns & Thread Safety:
All detection logic now thread-safe and rate-limited per player.- Clean Alert & Logging:
Unified with other checks for format and clarity.
SpeedCheck
- Detection Logic Improved:
- Fixed major bug where speed wasn’t being calculated correctly (false positives/negatives).
- Now properly considers potion effects, enchantments, slippery surfaces (e.g. ice), and special jump cases.
- ProtocolLib Support:
Now uses movement packet analysis where possible.- Cooldown & Alert Refactoring:
Cooldown, alert, and action bar systems now match other checks for consistency.
FastPlaceCheck
- Detection Logic Refined:
- Improved detection window and false positive handling.
- Now accurately counts block placements and checks timing.
- ProtocolLib Support:
Now can use packet-level placement events.- Async & Cooldown:
All detection runs async where possible, cooldown per player.- Message Consistency:
Alerts and logs follow standard format.
FastBreakCheck
- Detection Logic Completely Overhauled:
- Mining speed checks now factor in tool, enchantments, potion effects, and block type.
- Avoids hardcoded lists by using Minecraft’s own checks wherever possible.
- Bugfix:
Previously detected block breaking was too strict or too lax; fixed for much more accurate, real-world behaviour.- ProtocolLib Support:
Packet-based mining tracking now available when ProtocolLib is present.- Async Processing:
Expensive operations are performed async, with warnings/alerts dispatched safely.- Cooldown & Thread Safety:
Improved for reliability under high activity.
Miscellaneous / Shared
- Unified Variable & Logging System:
All checks now use a consistent approach to variables and logging for easier staff review and debugging.- Bypass Permission & Creative/Spectator Skip:
All checks ignore users in creative/spectator or with admin bypass permission.- Message Manager Usage:
All player-facing messages and logs now use the plugin’s MessageManager for consistent prefixes, translations, and placeholder expansion.
Summary:
- ProtocolLib is supported for high-precision packet checks but not required.
- All major checks (Reach, KillAura, AutoClicker, Speed, FastPlace, FastBreak) have been reworked, improved, or fixed.
- Major bugs affecting AutoClicker, Speed, FastPlace, and FastBreak were resolved.
- Code is now fully async/thread safe, all alerts/logs use consistent messages, and the plugin is more stable than ever.
General
Core Checks/Detection Modules
- All checks now use configuration-driven parameters: All thresholds, limits, and cooldowns are now read from checks.yml, making it easy to tune and manage every detection module without recompiling.
- Consistent code structure: Every listener/check now follows the same asynchronous handling, scheduling, and alert/reporting pipeline.
- Enhanced debug information: Debug lines and log messages have been added, especially to critical checks, to help pinpoint issues and understand behavior in real time.
KillAura
Reach
- Dynamic bounding box calculation: The detection now calculates the exact closest point between the attacker’s eye position and the target’s hitbox, ensuring the hit distance is always accurate—even for mobs with large or nonstandard hitboxes.
- Angle and field of view logic improved: Checks now include:
- Direction vector (dot product) for accurate FOV (field of view) analysis.
- Calculated angle in degrees between the attacker’s look direction and the hit vector.
- Yaw difference calculation for extra precision.
- Smart alert suppression: Hits are never flagged as suspicious if the attacker is physically “glued” to the target (very close distance). Alerts only trigger if the target is outside the attacker’s field of view (e.g., behind or far to the side), even if the hit is technically possible.
- All major parameters moved to config: Including min_look_dot, max_look_angle, max_yaw_diff, and the hard reach limit.
FastBreak, FastPlace, Scaffold, Speed, Fly, etc.
- Configurable reach threshold: Now fully adjustable via config.
- Shared logic with KillAura: Consistent application of reach calculation for both checks.
- Messages and warnings unified.
Messaging
- Consistent async logic: All calculations are performed asynchronously, with Bukkit sync callbacks only for messaging and warnings.
- All time intervals, speed thresholds, event counts, and warning amounts are fully configurable in checks.yml.
- Logging and message variables: All alerts and logs now use placeholders/variables for better context and easier translation.
Command/Permission Structure
- All messages and alerts fully translated to English.
- All messages and command usage/help sections now include descriptive comments for each line in the messages.yml config file. This makes the config much easier to read, edit, and maintain.
- Every alert and command message now has an English description explaining its purpose directly in the config as a comment.
- All parameter comments in checks.yml have been translated and clarified in English.
Configuration
- Plugin plugin.yml file descriptions: All permission and command descriptions have been translated to English.
- Command usage strings and errors have been made clearer for staff and players.
Quality-of-Life & Code Consistency
- checks.yml now features clear, commented explanations for every parameter, fully in English.
- All critical checks now include:
- enabled
- cooldown_ms
- warning_amount
- Specific thresholds/limits for detection, each with an English description.
- Improved reset and state-cleaning logic in all listeners (for example, movement/fall resets, on-ground and special block handling, etc.)
- Variable naming consistency across all listeners.
- Cleaner separation of sync and async code blocks for performance and reliability.
1. Refactoring & Unified Messaging
2. NoFallCheck
- All checks (Speed, Fly, Reach, Scaffold, NoFall, KillAura, AutoClicker, FastBreak, FastPlace, etc.) now exclusively use customizable messages from messages.yml for alerts, action bar, player warnings, and staff logs.
- Staff logs now use the generic.log-format without a prefix, ensuring full consistency for staff review and easier auditing.
- All variables in messages are passed using dedicated maps, with different details shown based on the showAlertDetails config option.
3. SpeedCheck
- Improved reset logic: fall is now reset on slabs, edges, and any block—not just solid ground. This eliminates false positives when the player stops on a ledge and then falls further.
- Updated the safeLandingBlocks list to include all boats and rafts (including chest-boats) available in MC 1.21.4.
- Fixed handling of fallDistance and other edge cases.
- Alert and log details are always consistent and fully customizable.
4. Check Consistency Across All Modules
- Enhanced the reason-building logic and added detailed modifiers (speed, potions, special blocks, vanilla boosts, enchantments, jumps, downhill/uphill, ice, stairs, etc.) with clear details in messages and logs.
- All static messages and reasons are now dynamic and localized through messages.yml.
- Refined vanilla event detection: stairs, head-hitter, carpet on ice, frostwalker, downhill/uphill, jump-sprint, etc.
5. XrayObfuscatorListener
- Fly, FastBreak, FastPlace, ClickPattern, InventoryWalk, Jesus, KillAura, Blink, Reach, Scaffold:
- Refactored alert, warning, action bar, and staff log messaging.
- All actions are now performed asynchronously where possible.
- Custom details in logs and alerts, dynamic variables based on hack type detected.
- Improved consistency across classes, all checks now use the new MessageManager.
6. General Optimizations
- Standardized message handling: staff logs now use generic.log-format (no prefix), with custom alerts from messages.yml.
- Improved robustness and settings reload logic through ChecksConfig.
- Added Paper AntiXray detection: automatically disables the check if Paper’s native anti-xray is active.
7. Other Minor Fixes
- All checks now use well-managed cooldown controls via config variables.
- Improved asynchronous management to avoid main server thread blocking.
- Improved structure of variables passed to messages/logs for maximum staff clarity.
- General refactoring for readability, modularity, and consistency across classes and checks.
- Improved handling of bypass permissions, edge cases (vehicle, gliding, creative, spectator, etc.).
- Fixes and debugging for multiple alerts, false positives, and thread safety.
- More robust against known exploits and edge cases in MC 1.21.x.
VirgolaAntiCheat Update - Full Changelog
NEW: Full Async Support
- Most core checks and utility classes are now fully asynchronous, ensuring less lag and higher performance. Heavy calculations run off the main server thread; all Bukkit API calls are safely scheduled on the main thread.
FastBreak Check
- Completely rewritten FastBreak logic.
- Now calculates the exact expected time to break blocks based on block hardness, tool type, enchantments (Efficiency), and potion effects (Haste, Mining Fatigue).
- Compares actual block break time with the expected value and alerts if the block is broken faster than possible.
- Handles both instant-break and "almost legit" hacks.
- Improved exclusion logic for hand-breaking and special tools (shears, swords, etc.).
Speed Check
- Now also considers speed increases due to movement in 2x1 spaces and on stairs, reducing false positives for legitimate advanced movement.
NoFall Check
- Optimized and stabilized: better ground detection and fewer false alerts.
AutoClicker & ClickPattern Checks
- Checks are now aware of block breaking: clicks made while breaking blocks are ignored to avoid false positives.
- Improved CPS and pattern analysis; only alerts on real suspicious clicking activity.
Anti-Xray Detection
- Now checks the paper-world-defaults.yml in /config for native Paper AntiXray instead of the old paper.yml location.
Bugfixes & Minor Improvements
- Fixed several bugs and improved overall code structure.
- Improved YAML reload handling.
- Several utility and manager classes refactored for clarity and speed.
If you encounter any bugs or have questions, please contact me directly or post in the plugin's SpigotMC discussion section!
VirgolaAntiCheat - Changelog Completo
NUOVO: Supporto Asincrono Completo
- La maggior parte dei check principali e delle utility ora sono completamente asincroni, con calcoli pesanti eseguiti fuori dal main thread per ridurre il lag. Tutte le chiamate Bukkit vengono gestite in modo sicuro sul thread principale.
FastBreak Check
- Logica completamente riscritta.
- Calcolo esatto del tempo minimo necessario per rompere ogni blocco in base a durezza, tipo di strumento, incantesimi (Efficienza), e effetti (Haste, Fatica da Miniera).
- Confronto tra tempo reale e teorico di rottura per segnalare tentativi di FastBreak.
- Gestione migliorata di hack che simulano tempi quasi-legit e di rotture istantanee.
- Esclusione ottimizzata per casi legit (es. mano, cesoie, spade...).
Speed Check
- Ora tiene conto dell’aumento di velocità dovuto a movimenti in spazi 2x1 e sulla salita delle scale, limitando i falsi positivi per trick di movimento avanzato.
NoFall Check
- Ottimizzato: migliore riconoscimento del terreno e meno falsi positivi.
Check AutoClicker & ClickPattern
- Ora ignorano i click fatti mentre si rompono blocchi, evitando falsi positivi durante il mining rapido.
- Analisi CPS e pattern riviste; alert solo su attività realmente sospetta.
Anti-Xray Detection
- Il controllo per l’AntiXray nativo Paper ora legge il file /config/paper-world-defaults.yml invece del vecchio paper.yml.
Bugfix & Migliorie Varie
- Risolti diversi bug e migliorata la struttura generale del codice.
- Migliorata la gestione del reload dei file YAML.
- Alcune classi utility e manager sono state rifattorizzate per maggior chiarezza ed efficienza.
Per qualsiasi bug o domanda, contattami direttamente o scrivi nella sezione Discussioni di SpigotMC!
