Unofficial site, not affiliated with modrinth.com.What is this?
Плагины/AntiAFKPlus
  • AntiAFKPlus 2.9.5

    release5 апреля 2026 г.

    AntiAFKPlus v2.9.5 Compatibility Compatible with Minecraft Java Edition 26.1 and 26.1.1 Changes Fixed a chat-related issue that caused warnings in the console on modern servers

    AntiAFKPlus v2.9.5 - UPDATE NOTE

    ⚠️ IMPORTANT NOTICE: This is the last free version of AntiAFKPlus.

    Due to a lack of support and high maintenance volume, the project will evolve to a Premium model starting with version 3.0.

    What does this mean? This version (2.9.5) will continue to function, but new features, optimizations, and technical support will be exclusively available in the paid version. There will be no further updates, maintenance, or support for this version.

    More info: Join our Discord server for details about the v3.0 release.

    I am deeply grateful to the few people who have always been there supporting us with positive words. Those who wish to continue enjoying new features and ongoing support are welcome in this new phase.

  • AntiAFKPlus 2.9.4

    release28 января 2026 г.

    AntiAFKPlus v2.9.4

    Release Date: January 2026

    Summary

    This version drastically reduces false positives in pattern detection. Players will no longer be kicked for running in a straight line (forests, tunnels, paths) or moving normally around their bases.


    New Features

    Linear Movement Exclusion

    Players running in a straight line will no longer be flagged as AFK.

    modules:
      pattern-detection:
        linear-movement-exclusion: true
        linear-movement-threshold: 0.3
        min-direction-variance: 0.15
    

    Activity Grace Period

    Players who have been recently active (commands, jumping, looking around) get a grace period where pattern detection is temporarily suspended.

    modules:
      pattern-detection:
        activity-grace-period-ms: 60000
    

    Improved Defaults

    SettingPreviousNew
    water-circle-radius4.05.0
    min-samples-for-pattern3040
    confined-space-threshold8.012.0
    repetitive-movement-threshold0.90.95
    max-pattern-violations58

    Upgrade Guide

    Option 1: Regenerate config (Recommended)

    Delete your config.yml and restart the server. A new one with all v2.9.4 defaults will be generated.

    Option 2: Manual Update

    Add this to your modules.pattern-detection section:

    # New in v2.9.4
    linear-movement-exclusion: true
    linear-movement-threshold: 0.3
    min-direction-variance: 0.15
    activity-grace-period-ms: 60000
    
    # Updated values
    water-circle-radius: 5.0
    min-samples-for-pattern: 40
    confined-space-threshold: 12.0
    repetitive-movement-threshold: 0.95
    max-pattern-violations: 8
    

    Bug Fixes

    • False positives when running through forests, tunnels, and paths
    • Incorrect kicks when exploring own bases
    • Violation accumulation during normal gameplay

    Compatibility

    • Minecraft: 1.16 - 1.21.11
    • Servers: Bukkit, Spigot, Paper, Purpur, Folia
    • Java: 17+
    • Breaking Changes: None

    API Changes

    New methods in ConfigManager:

    • getActivityGracePeriodMs()
    • getLinearMovementThreshold()
    • getMinDirectionVariance()
    • isLinearMovementExclusionEnabled()
  • AntiAFKPlus 2.9.3

    release31 декабря 2025 г.

    AntiAFKPlus v2.9.3 — AFK Player Protection System & PlaceholderAPI Fix

    Release type: Feature & Bugfix Compatibility: Minecraft 1.16 – 1.21.10 | Java 17+


    What's New

    🛡️ Complete AFK Player Protection System

    • Full Protection: AFK players are now completely protected from external interference
    • PvP Protection: Other players cannot attack or damage AFK players
    • Movement Protection: Prevents forced movement from knockback, explosions, and player pushing
    • Damage Immunity: Configurable protection from fall damage, fire, drowning, lava, and other environmental hazards
    • Interaction Control: Optional blocking of inventory access, block interactions, and command execution while AFK
    • Smart Detection: Distinguishes between player-initiated movement and forced movement (knockback, pushing)

    🔕 Pattern Detection Notification Control System

    • Granular Control: Configure when and to whom pattern detection messages are sent
    • Silent by Default: Players no longer receive spam messages about pattern detections
    • Admin Alerts: Optional notifications to staff members with specific permission
    • Three Notification Types: Control messages on detection, violation, and action execution independently
    • Customizable Permission: Configure which permission is required for admin notifications
    • Solves Spam Issue: Addresses user reports of repetitive "[AntiAFK] Suspicious movement pattern detected" messages

    🎯 Improved Pattern Detection Defaults & Configuration

    • Reduced False Positives: Adjusted detection thresholds based on user feedback
      • Confined space: 5.0 → 8.0 blocks (allows small builds without triggering)
      • Repetitive movement: 0.8 → 0.9 similarity (90% required, fewer false positives)
      • Pattern violations: 3 → 5 (more tolerant before taking action)
      • Water circle radius: 3.0 → 4.0 blocks (allows small legitimate pools)
      • Min samples: 20 → 30 (~2.5 minutes of data for reliable detection)
    • Comprehensive Documentation: Every setting now includes:
      • Recommended value ranges
      • Detailed explanations of how it works
      • Impact on false positives vs detection accuracy
    • Eliminated Configuration Confusion: Removed duplicate pattern-detection-settings section
    • Quick Start Guide: Added helpful guide at top of config.yml with common adjustments
    • Zone Management Safety: Disabled by default to prevent unsafe teleports (was enabled)

    🔧 PlaceholderAPI Custom Messages Fix

    • Fixed Custom Placeholders: placeholder-status-afk, placeholder-status-active, and related placeholders now work correctly
    • Supports Color Codes: Custom messages with & color codes now display properly in tab lists and other PlaceholderAPI integrations
    • Enhanced Status Detection: Distinguishes between Manual AFK (/afk command) and Auto AFK (automatic detection)

    Configuration

    Player Protection Settings

    Add to your config.yml:

    modules:
      player-protection:
        enabled: true  # Enable the protection system
    
    player-protection:
      # Movement Protection
      prevent-movement-while-afk: false  # Set to true to prevent forced movement
      movement-restriction-message: true
      
      # Damage Protection
      invulnerability-enabled: true
      invulnerability-delay-ms: 5000
      damage-types-blocked:
        - "FALL"
        - "DROWNING" 
        - "FIRE"
        - "LAVA"
      prevent-pvp-invulnerability: true  # Prevents PvP against AFK players
      
      # Interaction Control
      block-inventory-access: true
      block-command-execution: false
      command-whitelist:
        - "/afk"
        - "/help" 
        - "/spawn"
      prevent-block-interaction: true
    

    Pattern Detection Notification Settings

    Add to your config.yml:

    modules:
      pattern-detection:
        enabled: true
        # ... other pattern detection settings ...
        
        # v2.9.3 NEW: Notification control system
        notifications:
          notify-player-on-detection: false  # Silent by default
          notify-player-on-violation: false  # No spam on violations
          notify-player-on-action: false     # No message when action executed
          send-to-admins: true               # Admins receive alerts
          admin-notification-permission: "antiafkplus.notify.patterns"
    

    New Permission: antiafkplus.notify.patterns
    Grant this permission to staff members who should receive pattern detection alerts.

    Custom PlaceholderAPI Messages

    Add to your messages.yml:

    messages:
      # PlaceholderAPI status messages (supports color codes)
      placeholder-status-afk: "AFK"
      placeholder-status-active: "ACTIVE"
      placeholder-status-manual-afk: "MANUAL AFK"
      placeholder-status-auto-afk: "AUTO AFK"
      
      # Protection system messages
      protection-invulnerable: "&a[AntiAFK] You are now invulnerable while AFK."
      protection-vulnerable: "&c[AntiAFK] You are no longer invulnerable."
      protection-movement-blocked: "&e[AntiAFK] Movement blocked while AFK."
      protection-pvp-blocked: "&c[AntiAFK] You cannot attack AFK players."
      protection-pvp-protected: "&a[AntiAFK] You are protected from PvP while AFK."
      protection-inventory-blocked: "&e[AntiAFK] Inventory access blocked while AFK."
      protection-interaction-blocked: "&e[AntiAFK] Block interaction blocked while AFK."
      protection-command-blocked: "&e[AntiAFK] Command execution blocked while AFK. Use /afk to return."
    

    Use Cases

    🎯 Recommended Settings for Different Server Types

    PvP Servers:

    player-protection:
      prevent-movement-while-afk: true   # Prevent combat advantage abuse
      prevent-pvp-invulnerability: true  # Full PvP protection
      invulnerability-enabled: true      # Environmental protection
    

    Survival/SMP Servers:

    player-protection:
      prevent-movement-while-afk: false  # Allow natural movement
      prevent-pvp-invulnerability: true  # Prevent griefing
      invulnerability-enabled: true      # Protect from mobs/environment
    

    Creative/Build Servers:

    player-protection:
      prevent-movement-while-afk: false
      prevent-pvp-invulnerability: false # PvP usually disabled anyway
      block-inventory-access: false      # Allow building while AFK
      prevent-block-interaction: false
    

    Compatibility

    • Minecraft: 1.16 – 1.21.10
    • Platforms: Bukkit, Spigot, Paper, Purpur, Folia (fully compatible)
    • Java: 17+
    • PlaceholderAPI: Enhanced support with custom messages
    • Fully Backward Compatible: Existing configurations continue to work

    Installation & Upgrade

    New Installations

    1. Download AntiAFKPlus v2.9.3
    2. Place in /plugins folder
    3. Restart server
    4. Configure protection settings in config.yml
    5. Customize messages in messages.yml

    Upgrading from Previous Versions

    From v2.9.2 or earlier:

    1. Replace JAR file with v2.9.3
    2. Manual Config Update Required: Add the new player-protection section to your config.yml (see configuration above)
    3. Manual Messages Update Required: Add the new protection messages to your messages.yml (see configuration above)
    4. Restart server
    5. Verify protection is working with /afkplus status

    ⚠️ Important: This version requires manual configuration updates. The plugin will work without them, but protection features will be disabled.


    Fixed Issues

    PlaceholderAPI Problems

    • Fixed: Custom placeholder-status-afk: "&7[AFK]" messages now work correctly
    • Fixed: Color codes in placeholder messages are properly applied
    • Fixed: Tab list and other PlaceholderAPI integrations show custom messages instead of hardcoded "AFK/ACTIVE"

    AFK Player Vulnerability

    • Fixed: AFK players can no longer be easily removed from AFK state by other players
    • Fixed: Prevents griefing through forced movement (pushing, knockback)
    • Fixed: Configurable protection from environmental damage
    • Fixed: PvP protection prevents combat abuse

    Pattern Detection Spam Messages

    • Fixed: Players no longer receive repetitive "[AntiAFK] Suspicious movement pattern detected" messages
    • Fixed: Notification spam when pattern violations accumulate
    • Fixed: Added granular control over when notifications are sent
    • New: Admin-only alerts with customizable permission system

    Pattern Detection False Positives

    • Fixed: Players flagged incorrectly for "repetitive movement" during normal gameplay
    • Fixed: "Confined space" detection triggering in outdoor areas and small builds
    • Fixed: Overly aggressive detection thresholds causing legitimate players to be marked AFK
    • Improved: All thresholds adjusted to more conservative values based on user feedback
    • Improved: Detection now requires more samples (30 vs 20) for reliable pattern identification

    Configuration Issues

    • Fixed: Duplicate pattern-detection-settings section causing confusion
    • Fixed: Unclear which configuration section to edit (now clearly documented)
    • Fixed: Missing value ranges and explanations for pattern detection settings
    • Fixed: Zone management enabled by default with unsafe teleport coordinates
    • New: Quick start guide at top of config.yml with common troubleshooting
    • New: Comprehensive documentation for every pattern detection setting

    For Server Administrators

    Testing the Protection System

    1. Set yourself AFK with /afk
    2. Have another player try to hit you (should be blocked)
    3. Try taking fall damage (should be blocked if configured)
    4. Test forced movement prevention (if enabled)
    5. Check that protection messages appear correctly

    Performance Impact

    • Minimal: Uses efficient event handling with cooldown systems
    • Folia Compatible: Thread-safe implementation
    • Memory Efficient: Automatic cleanup on player disconnect

    Troubleshooting

    • Protection not working: Verify modules.player-protection.enabled: true in config.yml
    • PlaceholderAPI issues: Ensure messages.yml contains the new placeholder entries
    • Folia compatibility: No special configuration needed, works out of the box

    Version: 2.9.3
    Release Date: December 30, 2025
    Compatibility: Minecraft 1.16 - 1.21.11
    Java: 17+

  • AntiAFKPlus 2.9.2

    release19 декабря 2025 г.

    AntiAFKPlus v2.9.2 — Dynamic Credit Group Detection & Multi-Server Documentation

    Release type: Bugfix & Enhancement Compatibility: Minecraft 1.16 – 1.21.11 | Java 17+


    What's Fixed

    🔧 Credit System Group Detection

    • Dynamic Group Reading: Plugin now automatically detects ALL groups defined in credit-ratios and max-credits config sections
    • No More Hardcoded Limitations: Previously only supported admin, premium, and vip groups — now supports unlimited custom groups
    • Custom Group Support: Works with any group name: sponsor, premium+, vip+, owner, member, etc.
    • Permission Format: Uses antiafkplus.credit.ratio.<groupname> pattern (e.g., antiafkplus.credit.ratio.sponsor)
    • Priority System: Implements configurable group priority order (admin > owner > sponsor > premium+ > vip+ > premium > vip > default)

    📝 Technical Improvements

    • Added dynamic ConfigurationSection reading for group detection
    • Implemented intelligent caching system for group priority calculations
    • Cache automatically clears on /afkplus reload for instant config updates
    • Enhanced debug logging to show matched groups per player
    • Improved error handling with fallback to default values

    What's Documented

    🌐 Multi-Server Credit System Setup

    • Fully Documented: Complete documentation for running multiple servers (Skyblock, Survival, etc.) with separate credit systems sharing one database
    • Table Prefix Feature: Use table-prefix config option to separate credit tables per server
    • Configuration Examples: Step-by-step guides added to config.yml and README.md
    • New Documentation File: MULTI_SERVER_DOCUMENTATION.md with complete setup guide, troubleshooting, and security best practices

    How It Works:

    • Each server uses a different table-prefix (e.g., skyblock_, survival_)
    • All servers connect to the same MySQL/SQLite database
    • Credits are completely independent per server
    • No code changes needed — configuration only!

    Configuration Example

    credit-system:
      credit-ratios:
        default: '5:1'
        vip: '4:1'
        premium: '3:1'
        premium+: '2:1'
        sponsor: '1:30'     # ✅ Now works!
        owner: '1:60'       # ✅ Custom groups supported!
    
      max-credits:
        default: 120
        vip: 180
        premium: 240
        sponsor: 500
        owner: 1000
    
      # Optional: Customize priority order
      group-priority-order:
        - owner
        - admin
        - sponsor
        - premium+
        - vip+
        - premium
        - vip
    

    Multi-Server Setup Example

    Skyblock Server (config.yml):

    credit-system:
      database:
        enabled: true
        table-prefix: "skyblock_"  # Skyblock tables
    
    database:
      type: "MySQL"
      mysql:
        host: "localhost"
        database: "antiafkplus"
    

    Survival Server (config.yml):

    credit-system:
      database:
        enabled: true
        table-prefix: "survival_"  # Survival tables
    
    database:
      type: "MySQL"
      mysql:
        host: "localhost"
        database: "antiafkplus"  # Same database!
    

    Result: Independent credit systems (skyblock_credits, survival_credits) in one shared database.

    Permission Setup (LuckPerms Example)

    /lp group sponsor permission set antiafkplus.credit.ratio.sponsor true
    /lp group premium+ permission set antiafkplus.credit.ratio.premiumplus true
    

    Note: Plus signs (+) in group names convert to plus in permission nodes.


    Compatibility

    • Minecraft: 1.16 – 1.21.11
    • Platforms: Bukkit, Spigot, Paper, Purpur, Folia
    • Java: 17+
    • Permission Plugins: LuckPerms, PermissionsEx, GroupManager, etc.
    • Fully Backward Compatible: Existing configurations continue to work

    Upgrade Notes

    1. Replace the old JAR with AntiAFKPlus v2.9.2
    2. Update LuckPerms (or other permission plugin) with new group permissions:
      • Format: antiafkplus.credit.ratio.<groupname>
    3. Optional: Customize group priority order in config.yml
    4. NEW: Check config.yml for multi-server table-prefix examples if you run multiple servers
    5. Reload with /afkplus reload to apply changes
    6. Enable debug: true in config to verify group detection

    Existing admin, premium, and vip groups continue to work without changes. New custom groups require permission node setup.

    Multi-Server Users: If you want to separate credit systems across multiple servers, configure different table-prefix values in each server's config.yml (see documentation).


    For Developers

    API Version: 2.9.2 (unchanged API, internal improvements only)

    No breaking changes to the public API. The credit system now uses dynamic group detection internally, improving flexibility for server administrators.


    Version: 2.9.2 Release Date: 19/12/2025 (Documentation Update) Compatibility: Minecraft 1.16 - 1.21.11 Java: 17+

  • AntiAFKPlus 2.9.1

    release17 ноября 2025 г.

    AntiAFKPlus v2.9.1 — Pattern Detection Respecting Config

    Release type: Bugfix Compatibility: Minecraft 1.16 – 1.21.10 | Java 17+


    What's Fixed

    • Pattern Detection now fully honors config/module toggles; disabling the module or enhanced-detection.pattern-detection stops analysis and prevents flags/actions.
    • Detector uses all configured thresholds (interval, sample counts, repetitive/area limits, large-pool and keystroke toggles) instead of hardcoded defaults.
    • /afkplus reload cleanly restarts or shuts down pattern analysis to reflect updated settings without a server restart.

    Upgrade Notes

    1. Replace the old JAR with AntiAFKPlus v2.9.1.
    2. Reload with /afkplus reload or restart.
    3. Verify your modules.pattern-detection and pattern-detection-settings values; they are now enforced.

    Version: 2.9.1
    Release Date: 15/11/2025
    Compatibility: Minecraft 1.16 - 1.21.10
    Java: 17+

  • AFK Time Windows

    release14 ноября 2025 г.

    AntiAFKPlus v2.9 — AFK Time Windows

    Release type: Feature Update Compatibility: Minecraft 1.16 – 1.21.10 | Java 17+


    What's New

    🕒 AFK Time Windows

    • Configurable Time Ranges: Define daily hour ranges where AFK actions are paused or modified

    • Multiple Behaviors: Choose how the plugin handles AFK detection during configured windows:

      • SKIP_ACTIONS: Suppress all warnings, countdowns, and kicks
      • MESSAGE_ONLY: Suppress actions and send informational message
      • EXTEND_THRESHOLD: Delay final action by configurable seconds
      • DEFAULT: Normal AFK enforcement (used outside windows)
    • Timezone Support: Use server timezone or specify any IANA timezone ID (e.g., America/New_York, Europe/London)

    • Wrap-Around Ranges: Support for overnight ranges (e.g., 22:00-02:00)

    • Bypass Permission: Staff can ignore windows with antiafkplus.window.bypass

    📝 Configuration Example

    afk-windows:
      enabled: true
      timezone: "SERVER"              # or explicit IANA ID like "America/New_York"
      ranges:
        - "08:00-12:00"
        - "20:00-23:00"
      behavior-inside-window: "SKIP_ACTIONS"
      behavior-outside-window: "DEFAULT"
      extend-seconds: 900             # used when behavior is EXTEND_THRESHOLD
      bypass-permission: "antiafkplus.window.bypass"
    

    🎮 Use Cases

    • Peak Hours Protection: Disable AFK kicks during busy server hours
    • Event Periods: Pause AFK enforcement during special events
    • Off-Hours Flexibility: Allow extended AFK times during late night/early morning
    • Regional Adaptation: Use different timezones for international servers

    🔧 Technical Details

    • TimeWindowService: Minute-level granularity with intelligent caching
    • AFKManager Integration: Evaluates windows before warnings and final actions
    • Countdown/Transfer Compatibility: Pipelines and sequences respect window controls
    • Reload Support: /afkplus reload updates window settings without restart

    ✨ New Permission

    • antiafkplus.window.bypass: Allows players to ignore AFK windows and receive normal enforcement
      • Automatically included in antiafkplus.* wildcard
      • Useful for staff testing and development accounts

    Compatibility

    • Minecraft: 1.16 – 1.21.10
    • Platforms: Bukkit, Spigot, Paper, Purpur, Folia
    • Java: 17+
    • Backward Compatible: All existing configurations work without changes

    Upgrade Notes

    1. Replace the old JAR with AntiAFKPlus v2.9
    2. Optional: Configure afk-windows section in config.yml to enable time-based protection
    3. Optional: Customize the afk-window-active message in messages.yml for localization
    4. Update your dependency to 2.9 if using the API:
      <dependency>
          <groupId>com.github.koyere</groupId>
          <artifactId>AntiAFKPlus</artifactId>
          <version>2.9</version>
          <scope>provided</scope>
      </dependency>
      

    No configuration changes are required. The plugin works with your existing setup. AFK windows are disabled by default.


    For Developers

    API Version: 2.9 (unchanged from 2.8, no breaking changes)

    The time window system is internal and transparent to the API. Developers using the API will benefit from the improved flexibility without code changes.


    Version: 2.9 Release Date: 14/11/2025 Compatibility: Minecraft 1.16 - 1.21.10 Java: 17+

  • AntiAFKPlus 2.8.2

    release7 ноября 2025 г.

    AntiAFKPlus v2.8.2 (Hotfix Rollup)

    Bug Fixes

    • Pause-aware scheduling – Introduced a shared ServerStateUtil and wrapped every repeating task scheduled through PlatformScheduler so they no longer spin while Paper/Folia is paused or running in auto-pause mode. This eliminates the repeated CPU spikes reported when the server was suspended.
    • Stable transfer countdowns – Countdown sequences now persist their start timestamp and AFK state. Players that have not produced real activity after the countdown started will no longer flip back to ACTIVE each tick, so the “title disable kick / activity detected loop” is gone and the final action fires exactly once.

    These fixes are fully backwards compatible with the v2.8 API—only internal scheduling and AFK state transitions were touched.

  • AntiAFKPlus 2.8.1

    release20 октября 2025 г.

    AntiAFKPlus v2.8.1 - Critical Threading Fix

    Release Date: 2025-10-20 Type: Bugfix Release Compatibility: Paper 1.21.8, Spigot, Folia, Purpur (MC 1.16-1.21.8)


    🔧 Critical Fixes

    Pattern Detection Event Threading (Paper 1.21.8 Compatibility)

    Issue: Pattern detection events were being fired asynchronously, causing IllegalStateException on Paper 1.21.8 and preventing external API listeners from receiving events.

    Fixed:

    • ✅ All Bukkit events now fire synchronously on main thread (Paper 1.21.8 requirement)
    • ✅ Eliminated async entity access (player.getLocation() now called in main thread)
    • ✅ Converted internal data structures to thread-safe collections (ConcurrentHashMap/ConcurrentLinkedDeque)
    • ✅ Implemented atomic operations for violation counters to prevent race conditions
    • ✅ Added proper player disconnect handling during async analysis

    Impact:

    • External plugins using api.registerPatternDetectionListener() now receive events correctly
    • Zero threading exceptions in Paper 1.21.8+
    • Maintained performance (heavy analysis still runs asynchronously)

    Files Changed:

    • PatternDetector.java - Complete threading model refactor

    📊 Performance

    • Zero performance regression - Pattern analysis remains asynchronous
    • Thread-safe operations - All concurrent access properly synchronized
    • Folia compatible - Uses runTaskForEntity for player-specific operations

    🔗 API Compatibility

    Fully compatible with v2.8 API - No breaking changes for developers.

    Developers can now safely use:

    AntiAFKPlusAPI api = AntiAFKPlusAPI.getInstance();
    api.registerPatternDetectionListener(event -> {
        // This now works correctly on Paper 1.21.8+
        System.out.println("Pattern detected: " + event.getPattern().getType());
    });
    

    📦 Installation

    Maven:

    <dependency>
        <groupId>com.github.koyere</groupId>
        <artifactId>AntiAFKPlus</artifactId>
        <version>2.8.1</version>
        <scope>provided</scope>
    </dependency>
    

    Gradle:

    compileOnly 'com.github.koyere:AntiAFKPlus:2.8.1'
    

    🐛 Known Issues

    None reported in this release.


    📝 Notes for Server Admins

    • Direct upgrade from v2.8 - No configuration changes required
    • Drop-in replacement - Simply replace the JAR file and restart
    • No data migration needed

  • API Overhaul

    release18 октября 2025 г.

    AntiAFKPlus v2.8 — API Overhaul

    Release type: Feature & API Upgrade Compatibility: Minecraft 1.16 – 1.21.10 | Java 17+


    What's New

    📊 Real Data Everywhere

    • Activity, history, and statistics endpoints now return live server data.
    • getActivityInfo, getActivityStatistics, getAFKStatistics, getPlayerStatistics, and getAFKHistory consume the internal tracking system (no more placeholders).

    🚦 Reliable Events

    • AFK warnings and pattern detections are always delivered to the public API.
    • Listeners (registerWarningListener, registerPatternDetectionListener) can modify messages or cancel actions before the plugin kicks/teleports players.

    🗺️ Zone Awareness

    • New helpers (isAFKAllowedAt, getAFKZoneAt) resolve zone-management settings and WorldGuard regions on the fly.
    • Worlds can be toggled at runtime with setAFKDetectionEnabled, persisting the change to config.yml.

    ⚙️ Ease of Use

    • README/API docs include updated examples for the new endpoints (activity, zones, stats).
    • API version bumped to 2.8, ready for your integrations.

    Upgrade Notes

    1. Replace the old JAR with AntiAFKPlus v2.8.
    2. Update your dependency to 2.8 (Maven/Gradle snippet in the README).
    3. Review the new API examples and adjust your listeners if you want to react to warnings/patterns.

    No configuration changes are required. Everything works with your existing config.yml / messages.yml.

  • AntiAFKPlus 2.7.1

    release18 октября 2025 г.

    #v2.7.1 - Thread Safety Fix

    ##Fixed ConcurrentModificationException in PatternDetector.detectPendulumPattern() that caused random crashes during pattern analysis. Added defensive list copying for thread-safe movement history access, improving reliability of the AFK event system.

  • Critical Bug Fixes

    release12 октября 2025 г.

    AntiAFKPlus v2.7 — Critical Bug Fixes

    Release type: Bug Fix Release Compatibility: Minecraft 1.16 – 1.21.9+ | Java 17+


    What's Fixed

    🔧 Credit System Teleportation (CRITICAL FIX)

    Problem: AFK zone teleportation worked only 1-2 times, then stopped working. Players would see AFK warnings but never get teleported.

    Solution: Fixed credit system logic to properly teleport players when credits are exhausted.

    What this means for you:

    • ✅ AFK zone teleportation now works consistently every time
    • ✅ Credits consume properly minute-by-minute while AFK
    • ✅ Players are automatically teleported when credits reach zero
    • ✅ No more "stuck" players who see warnings but never get moved

    🌍 Disabled Worlds Cleanup (CRITICAL FIX)

    Problem: Players still received AFK warnings in disabled worlds (like luna-afk-1), even when those worlds were added to disabled-worlds configuration.

    Solution: Plugin now completely clears AFK state when players enter disabled worlds.

    What this means for you:

    • No more AFK warnings in disabled worlds
    • ✅ AFK state is automatically cleared when entering disabled worlds
    • ✅ Works correctly with both disabled-worlds and enabled-worlds configuration
    • ✅ Players can safely AFK in designated worlds without interference

    🐛 Pattern Detection Errors (TECHNICAL FIX)

    Problem: Server logs showed ConcurrentModificationException errors during pattern analysis.

    Solution: Implemented thread-safe pattern detection across all detection methods.

    What this means for you:

    • Clean server logs without errors
    • ✅ Pattern detection (water circles, large pools, confined spaces) works flawlessly
    • ✅ Better server stability and performance
    • ✅ No more error spam in console

    ⚙️ Credit System Isolation (ENHANCEMENT)

    Problem: Credit system could potentially interfere with standard AFK detection even when disabled.

    Solution: Complete isolation of credit system when disabled in configuration.

    What this means for you:

    • Zero performance overhead when credit system is disabled
    • ✅ Standard AFK detection works perfectly without credit system
    • ✅ Full backwards compatibility with previous configurations
    • ✅ Better resource efficiency

    Configuration Examples

    Fix #1: Enable AFK Zone Teleportation with Credits

    modules:
      credit-system:
        enabled: true
    
    credit-system:
      enabled: true
      afk-zone:
        enabled: true
        world: "world"
        location: "0,100,0"
    

    Fix #2: Disable AFK Detection in Specific Worlds

    disabled-worlds:
      - "luna-afk-1"
      - "creative-world"
      - "lobby"
    

    Upgrade Instructions

    1. Backup your current config.yml and messages.yml
    2. Replace old plugin JAR with AntiAFKPlus v2.7
    3. Restart your server
    4. Test AFK teleportation and disabled worlds functionality

    No configuration changes required - all fixes are automatic!


    For Server Owners

    Critical Fixes:

    • AFK zone teleportation now reliable and consistent
    • Disabled worlds work as expected (no more false warnings)
    • Eliminated concurrent modification errors in logs
    • Credit system properly isolated when disabled

    Performance:

    • Thread-safe operations throughout pattern detection
    • Reduced resource usage when credit system is disabled
    • Cleaner logs and better stability

    Compatibility:

    • 100% backwards compatible with v2.6 and v2.5 configurations
    • No breaking changes
    • All existing features continue to work normally

    Need Help?

    • 📖 In-Game: /afkplus help and /afkplus status
    • 💬 Discord: https://discord.gg/xKUjn3EJzR
    • 🐛 Bug Reports: GitHub Issues
    • 📚 Documentation: GitHub Wiki

    Version: 2.7 Release Date: October 12, 2025 Type: Critical Bug Fix Release

  • Server Transfer & Scripted Sequences

    release18 сентября 2025 г.

    AntiAFKPlus v2.6 — Server Transfer & Scripted Sequences

    Release type: Feature Release
    Compatibility: Minecraft 1.16 – 1.21.8+ | Java 17+

    What’s New

    Server Transfer (Bungee/Velocity)

    • Native final action TRANSFER_SERVER to move AFK players to another server via Plugin Messaging.
    • Global configuration with robust channel handling and optional retry policy.
    • Zone-based overrides: per-zone transfer with kick-action: TRANSFER and transfer-server.

    Countdown & Titles/Sounds

    • Optional per-second countdown with Title/Subtitle and Sound before transferring.
    • Fully Folia-safe with entity-bound scheduling.
    • Auto-cancels if the player becomes active.

    Scripted Action Pipeline

    • New pipeline engine to run steps in order: TITLE, SUBTITLE, SOUND, MESSAGE, WAIT, TRANSFER.
    • Configurable in config.yml with simple DSL-like syntax.
    • Cancels automatically when leaving AFK.

    Robustness & Fallbacks

    • Auto-registration of BungeeCord and bungeecord:main channels.
    • Channel selection: auto | bungeecord | namespaced.
    • Fallback actions: KICK | TELEPORT | NONE with optional teleport location.

    How It Works (Action Order)

    1. Credit System: If credits exist, the kick event is cancelled and credits are consumed; no transfer runs.
    2. Zone Management: Zone kick-action takes priority (TELEPORT, TRANSFER, etc.).
    3. Global Transfer: If enabled and a target-server is configured, TRANSFER_SERVER is used by default.

    If the player becomes active mid-flow, any countdown/pipeline is cancelled.

    Configuration

    Global settings:

    server-transfer:
      enabled: true
      target-server: "lobby"
      proxy-channel: "auto"        # auto | bungeecord | namespaced
    
      # Fallbacks
      fallback-action: "KICK"      # KICK | TELEPORT | NONE
      fallback-teleport-location: "world,0,100,0"
    
      # Retry policy
      retry-attempts: 0
      retry-delay-ticks: 10
    
      # Countdown
      countdown:
        enabled: false
        seconds: 10
        title: "&cYou are AFK"
        subtitle: "&eMoving in {seconds}s"
        sound:
          enabled: true
          name: "ENTITY_EXPERIENCE_ORB_PICKUP"
          volume: 1.0
          pitch: 1.0
    
      # Scripted pipeline
      pipeline:
        enabled: false
      actions:
        - "TITLE: &cYou are AFK"
        - "SUBTITLE: &eMoving in {seconds}s"
        - "SOUND: ENTITY_EXPERIENCE_ORB_PICKUP,1.0,1.0"
        - "WAIT: 1s"
        - "MESSAGE: &7Transferring..."
        - "TRANSFER: lobby"
    

    Zone-based transfer example:

    zone-management:
      enabled: true
      zones:
        spawn:
          kick-action: "TRANSFER"
          transfer-server: "lobby"
    

    Messages

    Add or customize in messages.yml:

    messages:
      server-transfer:
        transferring: "&7[AntiAFK+] &aTransferring you to &f{server}&a..."
        unavailable: "&7[AntiAFK+] &cServer transfer unavailable."
        failed: "&7[AntiAFK+] &cCould not transfer you."
    

    Permissions & Commands

    • No new commands or permissions in v2.6. The feature is fully configurable via config.yml.

    Compatibility & Notes

    • BungeeCord and Velocity (Bungee compatibility) via Plugin Messaging.
    • Folia-safe scheduling through PlatformScheduler; no BukkitScheduler in Folia context.
    • Fully backward compatible; disabled by default.

    Migration

    • No breaking changes. Existing configurations remain valid.
    • To enable: set server-transfer.enabled: true and configure target-server.

    Testing Checklist

    • Validate transfer on Bungee/Velocity with correct target-server names.
    • Try countdown and pipeline separately.
    • Confirm fallback behavior (KICK/TELEPORT/NONE) when channels are unavailable.
    • Verify zone-based TRANSFER overrides global behavior.
  • AFK Credit System - Earn Time to Be Away

    release11 сентября 2025 г.

    AntiAFKPlus v2.5 — Release Notes

    🎯 AFK Credit System - Earn Time to Be Away

    New Feature Overview

    Revolutionary AFK Credit System: Players can now earn AFK time by being active! For every X minutes of active gameplay, players earn Y minutes of AFK allowance before being teleported to a designated AFK zone.

    What’s New

    1. AFK Credit Earning System

    • Players earn AFK credits by being actively engaged in gameplay
    • Configurable credit ratios based on permissions (default: 5 minutes active = 1 minute AFK credit)
    • Real-time credit accumulation tracking with activity validation
    • Maximum credit limits to prevent indefinite accumulation

    2. Credit-Based AFK Protection

    • When a player goes AFK, the system first consumes available credits
    • Credits provide immunity from immediate kick/teleportation
    • Once credits are exhausted, player is teleported to designated AFK zone
    • Smooth transition from credit consumption to zone teleportation

    AFK Credit System

    • Earn credits while active; consume credits to delay AFK action.
    • Teleport to AFK zone when credits are exhausted; /afkback returns you.

    WorldGuard Integration

    • Zones resolved from regions (reflection, no hard dependency).
    • Teleport priority: zones.afkzones.spawncredit-system.afk-zone.

    AFK Zone Protection

    • Optional damage/PVP/mob-spawn protections near the AFK zone.

    SQL History (Optional)

    • Track earn/consume/admin/decay transactions when SQL is enabled.

    New Placeholder

    • %antiafkplus_credits_expire_days% — days until credits expire.

    How It Works

    1. Active players earn credits (ratio-based) up to a configurable cap.
    2. When AFK is detected, 1 credit/minute is consumed to delay the action.
    3. At 0 credits, the player is teleported to the AFK zone; /afkback returns them.
    • onAfkStateChange (MONITOR): stops consumption when returning to ACTIVE.
    • CreditData (new):
      • Balance, consumption state, per‑player task, original location (for return).

    Configuration (added)

    modules:
      credit-system:
        enabled: false
    
    credit-system:
      enabled: false
      credit-ratios:
        default: "5:1"
        vip: "4:1"
        premium: "3:1"
        admin: "2:1"
      max-credits:
        default: 120
        vip: 180
        premium: 240
        admin: 480
      earning-requirements:
        minimum-session-minutes: 5
        activity-threshold: 0.3
      afk-zone:
        enabled: true
        world: "world"
        location: "0,100,0"
      notifications:
        credit-earned: true
        credit-consumed: true
        credit-exhausted: true
      return-command:
        enabled: true
        cooldown-seconds: 10
    

    Messages (added)

    messages:
      credit-system:
        earned: "&a+ &f{minutes}m &7AFK credits earned! &8(&f{total}m &7total)"
        consuming-start: "&eUsing AFK credits to delay action..."
        consumed: "&c- &f{minutes}m &7AFK credits used &8(&f{remaining}m &7left)"
        exhausted: "&c❌ &7AFK credits exhausted. You will be moved."
        zone-teleport: "&7[AntiAFK+] &aTeleported to AFK zone."
        errors:
          invalid-location: "&7[AntiAFK+] &cInvalid AFK zone location configured."
    

    Permissions (declared)

    • antiafkplus.credit.earn — earn credits (default true)
    • antiafkplus.credit.use — use credits to delay AFK action (default true)
    • antiafkplus.credit.ratio.vip|premium|admin — improved ratios (default false/op)
    • antiafkplus.credit.admin — full credit administration

    Execution Flow

    1. Active player earns credits according to ratio and limits.
    2. On AFK, if credits available → cancel action and consume 1/min.
    3. On activity → stop consumption (no teleport).
    4. On exhaustion → teleport to AFK zone (zone‑management if present; fallback to credit-system.afk-zone).

    Compatibility & Performance

    • Folia‑safe (no BukkitScheduler in Folia context).
    • No changes to AFKManager loop (event‑driven).
    • Earning: one global job/min; consumption: per‑player task while AFK with balance.
    • Respects antiafkplus.bypass.

    🎮 Configuration System

    New Configuration Section (config.yml):

    # ===============================================================================
    # 💰 AFK CREDIT SYSTEM
    # ===============================================================================
    
    credit-system:
      enabled: true
      
      # Credit earning ratios (active_minutes:credit_minutes)
      # For every X minutes of active play, earn Y minutes of AFK credits
      credit-ratios:
        default: "5:1"           # Default: 5 minutes active = 1 minute AFK credit
        vip: "4:1"              # VIP players: better ratio
        premium: "3:1"          # Premium: even better ratio
        admin: "2:1"            # Admin: best ratio
      
      # Credit limits and management
      max-credits:
        default: 120            # Maximum 2 hours of credits
        vip: 180               # VIP: 3 hours max
        premium: 240           # Premium: 4 hours max
        admin: 480             # Admin: 8 hours max
      
      # Credit expiration system
      credit-decay:
        enabled: true
        expire-after-days: 7    # Credits expire after 7 days of inactivity
        warning-days: 2         # Warn players 2 days before expiration
        cleanup-interval-hours: 24  # Check for expired credits every 24 hours
      
      # Activity requirements for earning credits
      earning-requirements:
        minimum-session-minutes: 5      # Must play at least 5 minutes to start earning
        activity-threshold: 0.3         # Minimum activity score to earn credits
        required-activity-types: 2      # Must perform at least 2 different activity types
        anti-abuse-checks: true         # Enable pattern detection during credit earning
      
      # AFK zone configuration
      afk-zone:
        enabled: true
        world: "world"          # World for AFK zone
        location: "0,100,0"     # X,Y,Z coordinates
        # Optional: yaw,pitch - "0,100,0,0,0"
        
        # Zone protection settings
        protection:
          prevent-damage: true      # Protect players from damage in AFK zone
          prevent-pvp: true         # Disable PVP in AFK zone
          prevent-mob-spawning: true # Prevent hostile mobs
          allow-chat: true          # Allow players to chat while in AFK zone
          show-zone-info: true      # Display zone info on teleport
      
      # Return command configuration
      return-command:
        enabled: true
        command-aliases:
          - "afkback"
          - "afkreturn" 
          - "returnfromafk"
        
        cooldown-seconds: 10        # Cooldown between uses
        max-distance-from-zone: 50  # Maximum distance from AFK zone to use command
        validate-original-location: true  # Check if original location is still safe
        
        # Auto-return options
        auto-return:
          on-activity: false        # Automatically return when player becomes active
          activity-delay-seconds: 30 # Delay before auto-return triggers
      
      # Database integration
      database:
        enabled: false              # Enable persistent credit storage
        table-prefix: "afkplus_"    # Database table prefix
        save-interval-minutes: 5    # How often to save credit data
        cleanup-old-records-days: 30 # Remove records older than 30 days
      
      # Notifications and messages
      notifications:
        credit-earned: true         # Notify when credits are earned
        credit-consumed: true       # Notify when credits are consumed
        low-credits-warning: true   # Warn when credits are running low
        low-credits-threshold: 15   # Warn when less than 15 minutes remain
        zone-teleport: true         # Notify on AFK zone teleport
        successful-return: true     # Notify on successful return
      
      # Integration settings
      integration:
        reward-system-bonus: true   # Give credit bonuses through reward system
        placeholder-updates: true   # Enable placeholder updates
        api-access: true           # Allow API access for other plugins
        event-broadcasting: true    # Broadcast credit events for other plugins
    

    New Messages (messages.yml):

    # Credit system messages
    credit-system:
      earned: "&a+ &f{minutes}m &7AFK credits earned! &8(&f{total}m &7total)"
      consumed: "&c- &f{minutes}m &7AFK credits used &8(&f{remaining}m &7left)"
      low-warning: "&e⚠ &7Low AFK credits: &f{remaining}m &7remaining"
      exhausted: "&c❌ &7AFK credits exhausted! Teleporting to AFK zone..."
      zone-teleport: "&7[AntiAFK+] &aTeleported to AFK zone. Use &f/afkback &ato return."
      
      # Return command messages  
      return:
        success: "&7[AntiAFK+] &aReturned to your previous location!"
        not-in-zone: "&7[AntiAFK+] &cYou must be in the AFK zone to use this command."
        no-saved-location: "&7[AntiAFK+] &cNo saved location found."
        unsafe-location: "&7[AntiAFK+] &cYour previous location is no longer safe. Teleported to spawn."
        cooldown: "&7[AntiAFK+] &cPlease wait &f{seconds}s &cbefore using this command again."
        
      # Status messages
      status:
        balance: "&7AFK Credits: &f{minutes}m &8(&f{hours}h {remaining_minutes}m&8)"
        ratio: "&7Credit Ratio: &f{active}m &7active = &f{credit}m &7AFK credit"
        max-credits: "&7Maximum Credits: &f{max}m"
        expires: "&7Credits expire in: &f{days} &7days"
        
      # Error messages
      errors:
        system-disabled: "&7[AntiAFK+] &cCredit system is disabled."
        invalid-location: "&7[AntiAFK+] &cInvalid AFK zone location configured."
    

    🎮 New Commands

    Primary Commands:

    • /afkback - Return from AFK zone to original location
    • /afkreturn - Alias for /afkback
    • /afkcredits - Check current credit balance and information
    • /afkcredits reload - Reload credit system configuration (admin)

    Command Details:

    commands:
      afkback:
        description: Return from AFK zone to your previous location
        usage: /afkback
        permission: antiafkplus.credit.return
        aliases: [afkreturn, returnfromafk]
        
      afkcredits:
        description: Check your AFK credit balance
        usage: /afkcredits [reload]
        permission: antiafkplus.credit.check
        permission-reload: antiafkplus.admin.reload
    

    🔐 New Permissions

    permissions:
      # Credit system core
      antiafkplus.credit.earn:
        description: Allows earning AFK credits
        default: true
        
      antiafkplus.credit.use:
        description: Allows using AFK credits
        default: true
        
      antiafkplus.credit.return:
        description: Allows using return commands
        default: true
        
      antiafkplus.credit.check:
        description: Allows checking credit balance
        default: true
      
      # Credit ratio permissions (determines earning rate)
      antiafkplus.credit.ratio.vip:
        description: VIP credit earning ratio
        default: false
        
      antiafkplus.credit.ratio.premium:
        description: Premium credit earning ratio  
        default: false
        
      antiafkplus.credit.ratio.admin:
        description: Admin credit earning ratio
        default: op
      
      # Administrative permissions
      antiafkplus.credit.admin:
        description: Full credit system administration
        default: op
        children:
          - antiafkplus.credit.give
          - antiafkplus.credit.take
          - antiafkplus.credit.set
          - antiafkplus.credit.reset
    

    ⚡ New API Methods

    Public API Expansion (AntiAFKPlusAPI):

    // Credit management
    public long getCreditBalance(Player player);
    public boolean hasCredits(Player player, long minutes);
    public boolean addCredits(Player player, long minutes);
    public boolean consumeCredits(Player player, long minutes);
    public boolean setCreditBalance(Player player, long minutes);
    
    // Credit information
    public String getCreditRatio(Player player);
    public long getMaxCredits(Player player);
    public List<CreditTransaction> getCreditHistory(Player player);
    public Instant getCreditExpiration(Player player);
    
    // AFK zone management  
    public boolean isInAFKZone(Player player);
    public Location getAFKZoneLocation();
    public Location getOriginalLocation(Player player);
    public boolean returnFromAFKZone(Player player);
    
    // Credit events
    public void registerCreditListener(CreditEventListener listener);
    public void unregisterCreditListener(CreditEventListener listener);
    

    🎯 Credit System Logic Flow

    1. Credit Earning Process:

    Player Active (5 minutes) → Activity Validation → Credit Calculation → Credit Award
                             ↓
    Activity Score Check → Pattern Detection → Anti-Abuse Validation → Credit Storage
    

    2. AFK Detection with Credits:

    Player Goes AFK → Check Credit Balance → Has Credits? 
                                          ↓
                   Yes: Consume Credits → Continue Monitoring
                                          ↓
                   No: Save Location → Teleport to AFK Zone → Enable Return Command
    

    3. Return Process:

    Player Uses /afkback → Validate in AFK Zone → Check Original Location Safety
                                               ↓
                        Safe: Teleport Back → Clear AFK Status → Success Message
                                               ↓
                        Unsafe: Teleport to Spawn → Warning Message
    

    ✅ Benefits and Features

    Player Benefits:

    • Earn AFK Time: Active gameplay is rewarded with AFK allowance
    • Flexible AFK: No immediate kicks, gradual credit consumption
    • Safe Return: Always able to return to original location
    • Transparent System: Clear feedback on credit earning and consumption

    Server Owner Benefits:

    • Configurable Ratios: Adjust credit earning rates by permission groups
    • Abuse Prevention: Anti-pattern detection during credit earning
    • Zone Management: Designated safe AFK areas
    • Database Support: Optional persistent credit storage

    Technical Benefits:

    • Modular Design: Integrates seamlessly with existing module system
    • Performance Optimized: Minimal impact on server performance
    • API Complete: Full programmatic access for other plugins
    • Event System: Comprehensive events for custom integrations

    🔄 Integration Points

    Existing System Integration:

    • AFKManager: Credit verification before actions
    • PatternDetector: Anti-abuse during credit earning
    • ModuleManager: Full module lifecycle support
    • PlaceholderAPI: Credit balance and status placeholders
    • Reward System: Bonus credits through reward intervals
    • Zone Management: AFK zone configuration and management

    🧪 Testing Scenarios

    Core Functionality Tests:

    1. Credit Earning: Verify active play generates credits at correct ratios
    2. Credit Consumption: Confirm AFK periods consume credits properly
    3. Zone Teleportation: Test teleport when credits exhausted
    4. Return Command: Validate return to original location
    5. Permission Integration: Test different ratios by permission groups

    Edge Case Testing:

    1. Location Safety: Handle unsafe original locations
    2. World Changes: Manage cross-world teleportation
    3. Server Restart: Verify credit persistence (if database enabled)
    4. Concurrent Usage: Test multiple players earning/using credits
    5. Configuration Reload: Ensure system adapts to config changes

    Compatibility

    • Minecraft: 1.16 - 1.21.8+ (unchanged)
    • Java: 17+ (unchanged)
    • Platforms: Paper, Spigot, Bukkit, Purpur, Folia (full compatibility)
    • Dependencies: None required, Vault optional for database features

    Migration and Upgrade

    Automatic Migration:

    • Existing configurations remain unchanged
    • Credit system starts disabled by default
    • No breaking changes to existing functionality
    • Seamless integration with current AFK detection

    Manual Configuration:

    • Server owners must enable credit-system.enabled: true
    • Configure AFK zone location
    • Adjust credit ratios for permission groups
    • Customize messages and notifications

    Version: 2.5
    Release Date: 11/09/2025

    Compatibility: Minecraft 1.16 - 1.21.8+

    Java: 17+


  • Complete Folia 1.21.8 Compatibility

    release10 сентября 2025 г.

    AntiAFKPlus v2.4.2 Changelog

    🎯 Complete Folia 1.21.8 Compatibility

    Problem Resolved

    Issue: The plugin failed to initialize on Folia 1.21.8 with UnsupportedOperationException (due to BukkitScheduler usage) and reflection errors in runAtFixedRate.

    Root Cause: PlatformScheduler was using incorrect method signatures for Folia's GlobalRegionScheduler API, causing reflection failures during task scheduling.

    Error Stack:

    Failed to schedule Folia repeating task: io.papermc.paper.threadedregions.scheduler.FoliaGlobalRegionScheduler.runAtFixedRate
    Module system initialization failed: Cannot schedule repeating task on Folia without working scheduler
    

    Technical Solution Implemented

    🔧 Correct Folia Method Signatures

    • Before: runAtFixedRate(plugin.getClass(), Consumer.class, long.class, long.class, TimeUnit.class)
    • After: runAtFixedRate(Plugin.class, Consumer.class, long.class, long.class)
    • Key: no TimeUnit parameter and timing in ticks directly (no ms conversion)

    🛡️ Stronger Fallback

    • Always create a ScheduledExecutorService fallback before reflection
    • Graceful degradation if native Folia API fails
    • Dedicated daemon thread pool for fallback operations

    ⚡ Additional API Fixes

    • Adjusted runDelayed and run signatures for single-execution tasks
    • Corrected RegionScheduler and EntityScheduler parameter types
    • Consistent use of Consumer<ScheduledTask>

    What’s Fixed

    • ✅ Full Folia 1.21.8 compatibility: initializes and runs correctly
    • ✅ No UnsupportedOperationException: removed BukkitScheduler usage in Folia context
    • ✅ Timers and tasks migrated to PlatformScheduler: pattern analysis, detectors and checks operational
    • ✅ Commands and AFK detection working
    • ✅ Zero impact on other servers: Paper, Spigot, Bukkit, Purpur unchanged

    Compatibility

    • Paper/Spigot/Bukkit: ✅ unchanged, functionality preserved
    • Purpur: ✅ compatible via Paper base
    • Folia 1.21.8+: ✅ complete native support with correct API usage

    Version: 2.4.2
    Release Date: 2025-09-09
    Compatibility: Minecraft 1.16 - 1.21.8
    Java: 17+

    Upgrade Instructions

    1. Download AntiAFKPlus v2.4.2
    2. Replace the old JAR in /plugins
    3. Restart the server
    4. No configuration changes required
    5. On Folia, verify the log: “✅ Folia support initialized successfully”
  • AntiAFKPlus 2.4.1

    release6 сентября 2025 г.

    AntiAFKPlus v2.4.1 Changelog

    🐛 Critical Bug Fix

    Issue Resolved

    Problem: Players were being kicked/teleported repeatedly every 5 seconds instead of only once after reaching the AFK timeout threshold.

    Root Cause: The AFK check task was calling the kick/teleport action repeatedly during each check interval (every 5 seconds) instead of executing it only once per AFK session.

    Solution Implemented

    🔧 Technical Fix

    • Added action state tracking to prevent repeated kick/teleport actions for the same AFK session
    • Implemented safety delay to prevent immediate actions upon AFK detection
    • Added automatic cleanup of action state when players become active again
    • Maintained full compatibility with all existing features and API

    ✅ Result

    • Players are now kicked/teleported only once after reaching their AFK timeout
    • AFK timeout configurations (like default-afk-time: 600) now work correctly
    • All other plugin functionality remains unchanged and fully operational

    Version: 2.4.1
    Release Date: 2025-09-06
    Type: Critical Bug Fix
    Compatibility: Minecraft 1.16 - 1.21.8 Java: 17+

    Upgrade Notes

    • No configuration changes required
    • Fully backward compatible
    • Simply replace the JAR file and restart your server
  • Large AFK Pool Detection Enhancement

    release7 августа 2025 г.

    AntiAFKPlus v2.4 Changelog

    🎯 Large AFK Pool Detection Enhancement

    Problem Identified

    Issue: Players were bypassing AFK detection by creating large AFK pools (20x10+ blocks) that circumvented existing detection systems.

    Root Cause:

    • Current detection focused on small confined spaces (≤5x5 blocks) and water circles (≤3 block radius)
    • Large pools allowed players to move naturally via water currents without manual input
    • System detected movement but couldn't distinguish between manual keystrokes and automatic water current movement

    Solution Implemented

    🔧 New Detection Features

    1. Keystroke Timeout Detection

    • Added detection for players who don't provide manual keyboard input for extended periods
    • Distinguishes between manual WASD movement and automatic water current movement
    • Configurable timeout threshold (default: 3 minutes)

    2. Large AFK Pool Pattern Recognition

    • Expanded detection to identify pools between 5x5 and 25x25 blocks
    • Analyzes movement patterns to identify water current automation
    • Multi-factor validation prevents false positives

    3. Enhanced Movement Analysis

    • Velocity analysis to detect consistent water current speeds
    • Direction change analysis to identify artificial vs natural movement
    • Automatic vs manual movement classification

    📋 Technical Changes

    Files Modified:

    • MovementListener.java: Added keystroke detection and movement analysis
    • PatternDetector.java: Implemented large pool detection algorithms
    • config.yml: Added configuration options for new detection methods

    New Configuration Options:

    pattern-detection-settings:
      large-pool-threshold: 25.0  # Maximum area for large AFK pools
      keystroke-timeout-ms: 180000  # 3 minutes without manual input
      automatic-movement-velocity-threshold: 0.15  # Water current detection
    

    🎮 Detection Logic

    Large AFK Pool Detection Criteria:

    1. Movement area > 5x5 but < 25x25 blocks
    2. Player in water for extended periods
    3. Movement patterns consistent with water currents
    4. No manual keystrokes detected for 3+ minutes

    Only triggers AFK when ALL criteria are met, ensuring legitimate gameplay is not affected.

    ✅ Benefits

    • Closes bypass loophole: Large AFK pools (20x10+) are now detected effectively
    • Maintains accuracy: Multi-factor validation prevents false positives
    • Configurable: Server owners can adjust thresholds based on their needs
    • Performance optimized: Minimal impact on server performance
    • Backward compatible: All existing detection methods remain unchanged

    Version: 2.4
    Release Date: 2025-08-07
    Compatibility: Minecraft 1.16 - 1.21.8 Java: 17+

  • World Teleportation Fix

    release26 июля 2025 г.

    Update 2.3

    World Teleportation Fix

    AFK players can now teleport instead of being kicked:

    • Enabled the necessary AFK zone modules
    • Set your coordinates: world, 167, 104, 206

    Safety features included:

    • Validation of existing world
    • Fallback to spawn if there are coordinate errors
    • Protection against teleporting to the void

    Now checks your spawn zone before the kick >>> Read the action: teleport config >>> Set the event to teleport instead of kicking

  • Bug Fixes

    release4 июля 2025 г.

    Bug Fixes

    • Fixed an error with the reload command.
    • Fixed an error in the asynchronous data console.
    • Fixed an identified memory leak issue.

    It is recommended to update to the latest available version to avoid critical errors. No further updates or fixes are required.

  • Bug Fix Release - Essential Improvements

    release30 июня 2025 г.

    🚀 AntiAFKPlus v2.1.0

    Bug Fix Release - Essential Improvements


    🐛 Bug Fixes

    ⚙️ Configuration Management

    • Fixed /afkplus reload command - Now properly reloads all configuration files and settings
    • Improved config validation - Better error handling and validation during reload
    • Fixed startup messages - Removed color codes from console logs for cleaner output

    🎣 AFK Detection Improvements

    • Added fishing detection - Fishing machines and AFK fishing farms are now properly detected
    • Enhanced activity tracking - PlayerFishEvent now triggers anti-AFK systems
    • Better automation detection - Catches fish, items, and reel-in actions count as player activity

    🔧 Code Quality

    • Version consistency - Updated all version references to 2.1
    • Cleaner logging - Console messages no longer show formatting codes
    • Import optimization - Better code organization and reduced redundancy

  • Major Release - Complete Plugin Redesign

    release20 июня 2025 г.

    AntiAFKPlus v2.0

    Major Release - Complete Plugin Redesign

    What's New

    ️ Modular Architecture Enable/disable features independently - Only use what you need 17 different modules including core detection, pattern analysis, rewards, and integrations Zero performance impact from disabled modules Easy customization for any server type

    Multi-Platform Support Auto-detection of Folia, Paper, Spigot, Bukkit, and Purpur Automatic fallback ensures compatibility on any server Future-proof design for upcoming Minecraft versions

    Bedrock Edition Support Automatic detection of Bedrock players via Floodgate/Geyser Touch-friendly interfaces and menu adaptations Optimized experience for mobile and console players

    ⚡ Performance Improvements

    Zero-Lag Operation 50% less CPU usage compared to v1.x Adaptive check intervals based on server load Smart caching system reduces database queries by 80% Object pooling minimizes garbage collection impact

    Real-Time Monitoring Live performance metrics and TPS impact tracking Automatic optimization when server load increases Memory usage limits prevent server strain Per-module performance tracking

    Advanced Detection Features

    Pattern Recognition Bot detection for circular movements and confined spaces Autoclick/macro detection with configurable sensitivity AFK pool detection for common farming setups False positive prevention with smart algorithms

    Behavioral Analysis Activity scoring system tracks 18 different player actions Movement pattern analysis detects repetitive behavior Micro-movement detection catches subtle bot activities Learning algorithms improve detection over time

    Enhanced Configuration

    ⚙️ Simplified Setup Auto-configuration for most servers Configuration validation prevents errors Automatic migration from v1.x settings Hot-reload for all settings without restart

    ️ Advanced Options Per-world AFK settings with inheritance Permission-based timeouts for different player groups Custom warning intervals and messages Zone-based AFK management with WorldGuard integration

    Integrations & API

    New Integrations WorldGuard - Region-based AFK settings Vault - Economy integration for rewards DiscordSRV - Discord notifications for AFK events Enhanced PlaceholderAPI - 15+ new placeholders

    Professional API 80+ API methods for developers Event system with 12 different event types Async operations for performance-critical applications Thread-safe design for multi-threaded plugins

    ️ Player Protection Features

    AFK Player Safety Invulnerability system prevents damage while AFK Movement restriction options to prevent exploitation Interaction blocking to prevent griefing Automatic position restoration when returning

    Reward System AFK rewards for idle time (configurable) Anti-abuse measures prevent exploitation Economic integration with Vault-compatible plugins Daily limits and playtime requirements

    Visual & UI Improvements

    ✨ Enhanced Effects Hologram support (DecentHolograms, HolographicDisplays) Particle effects for AFK players Tab list modifications show AFK status Customizable visual indicators

    Mobile-Friendly Interface Touch-optimized menus for Bedrock players Simplified layouts for smaller screens Gesture-friendly controls for mobile devices

    Quality of Life Improvements

    Better Commands Improved /afk list with sorting and filtering Status command shows plugin health and performance Debug commands for troubleshooting Auto-completion for all commands

    Enhanced Analytics Detailed statistics tracking for administrators Export functionality for data analysis Performance reports for optimization Usage patterns help configure optimal settings

    Bug Fixes & Stability

    ️ Major Fixes Memory leak in player tracking system resolved Thread safety issues fixed for high-load servers Edge cases in AFK detection improved Configuration reload now works correctly in all scenarios

    Security Improvements Input validation prevents configuration exploits Permission checks strengthened across all features API access properly secured for third-party plugins

    Migration & Compatibility

    Automatic Migration Seamless upgrade from v1.x with automatic config conversion Backup creation before migration for safety Setting preservation maintains your customizations Rollback option if needed

    ✅ Backward Compatibility API compatibility maintained for existing plugins Command structure unchanged for user familiarity Permission system extended but compatible

    Installation Notes

    Installation Steps: Backup your server before upgrading Replace the old JAR with the new v2.0 file Restart your server (reload not supported for major versions) Review new config options in config.yml Test AFK detection with different player scenarios

    Minimum Requirements: Java 17+ (recommended: Java 21) Minecraft 1.16+ (tested up to 1.21.5) 4GB+ RAM for optimal performance with all modules

    Links & Support

    Documentation: Updated wiki with all new features Discord Support: https://discord.gg/xKUjn3EJzR Bug Reports: GitHub Issues ⭐ Rate & Review: Help others discover this plugin!

    Download AntiAFKPlus v2.0 now and experience the most advanced AFK management system for Minecraft!

1

Совместимость

Сведения

Лицензия:
Опубликован:1 год назад
Обновлён:2 месяца назад
ID проекта:
Главная