
AntiAFKPlus
Smart and configurable AFK management for your server!
- Загрузки
- 2K
- Подписчики
- 3
- Обновлён
- 5 апреля 2026 г.
- Лицензия
- All-Rights-Reserved
Опубликован 29 апреля 2025 г.
✨ AntiAFKPlus
Smart and configurable AFK management for your Minecraft server!
— What is AntiAFKPlus?
AntiAFKPlus is a lightweight yet powerful plugin that automatically kicks inactive players after a configurable period.
Warn players before kicking, set per-permission timeouts, let players go AFK manually, and keep your server clean and fair.
Perfect for Survival, Factions, Minigames, Hub, or Network servers.
—
Main Features
⏳ Configurable AFK kick time (global and per permission)
Bypass permission to exclude staff or VIPs
⚡ Multi-warning system before kick (custom intervals like 60s, 30s, 10s)
Broadcasts when players enter or leave AFK
✋ Manual AFK toggle with the /afk command
Per-world control: enable AFK checks only in selected worlds
Fully customizable messages with {player} and {seconds} placeholders
Reload config instantly using /afkplus reload
Built-in bStats support
✅ Supports Minecraft versions 1.16 to 1.21+
— Installation
- Download the latest .jar file
- Place it into your /plugins/ folder
- Restart your server or use /reload
- Edit /plugins/AntiAFKPlus/config.yml as desired —
Commands
/afkplus reload Reloads configuration without restarting Permission: antiafkplus.admin
/afk Manually toggle AFK status Permission: antiafkplus.afk —
️ Permissions
- antiafkplus.bypass – Exempts player from all AFK checks
- antiafkplus.admin – Allows use of /afkplus reload
- antiafkplus.afk – Allows manual AFK toggle using /afk
- antiafkplus.time.600 – 10 minutes AFK timeout
- antiafkplus.time.900 – 15 minutes AFK timeout
- antiafkplus.time.1800 – 30 minutes AFK timeout
— ️** Configuration Example**
Default settings:
default-afk-time: 300
afk-check-interval-seconds: 5
afk-warnings:
[*]60
[*]30
[*]10
messages: afk-enter: "&7{player} is now AFK."
afk-exit: "&a{player} is no longer AFK."
kick-warning: "&eYou will be kicked in {seconds} seconds for being AFK!"
kicked: "&cYou have been kicked for being AFK."
Use & color codes as usual. Placeholders like {player} and {seconds} are replaced automatically.
—
Developer API
AntiAFKPlus provides a simple and public API for developers. You can check if a player is AFK or force AFK/return.
Example usage:
AntiAFKPlus plugin = (AntiAFKPlus) Bukkit.getPluginManager().getPlugin("AntiAFKPlus"); AntiAFKPlusAPI api = plugin.getAPI();
if (api.isAFK(player)) { player.sendMessage("You are AFK!"); }
See AntiAFKPlusAPI.md for full documentation.
—
Metrics
This plugin uses bStats.org to collect anonymous usage statistics. You can disable it in the /plugins/bStats/config.yml file if desired.
—
Why Choose AntiAFKPlus?
- Lightweight and optimized
- Highly configurable for any server
- Multi-version support (1.16–1.21+)
- Clean code and well-structured
- Professional notifications and UX
- Designed for performance and simplicity
— Coming Soon in the Premium Version
- ⭐ MySQL support
- ⭐ Teleport to lobby or spawn instead of kicking
- ⭐ Anti-autoclicker and AFK-farming protection
- ⭐ DecentHolograms / GHolo integration
- ⭐ Kick/AFK logging system
- ⭐ Extended PlaceholderAPI support
Support development by upgrading to the Premium version soon!
—
Support & Contact
GitHub: https://github.com/koyere/AntiAFKPlus
Discord: https://discord.gg/xKUjn3EJzR
—
✨ Keep your server clean, fair, and professional with AntiAFKPlus! ✨
Ченджлог
2.9.5Релиз1.21.11, 26.1, 26.1.1 · 5 апреля 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.
2.9.4Релиз1.21.9, 1.21.10, 1.21.11 · 28 января 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
| Setting | Previous | New |
|---|---|---|
water-circle-radius |
4.0 | 5.0 |
min-samples-for-pattern |
30 | 40 |
confined-space-threshold |
8.0 | 12.0 |
repetitive-movement-threshold |
0.9 | 0.95 |
max-pattern-violations |
5 | 8 |
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()
2.9.3Релиз1.21.9, 1.21.10, 1.21.11 · 31 декабря 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-settingssection - 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 (
/afkcommand) 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
- Download
AntiAFKPlus v2.9.3 - Place in
/pluginsfolder - Restart server
- Configure protection settings in
config.yml - Customize messages in
messages.yml
Upgrading from Previous Versions
From v2.9.2 or earlier:
- Replace JAR file with v2.9.3
- Manual Config Update Required: Add the new
player-protectionsection to yourconfig.yml(see configuration above) - Manual Messages Update Required: Add the new protection messages to your
messages.yml(see configuration above) - Restart server
- 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-settingssection 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
- Set yourself AFK with
/afk - Have another player try to hit you (should be blocked)
- Try taking fall damage (should be blocked if configured)
- Test forced movement prevention (if enabled)
- 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: truein 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+
2.9.2Релиз1.21.9, 1.21.10, 1.21.11 · 19 декабря 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-ratiosandmax-creditsconfig sections - No More Hardcoded Limitations: Previously only supported
admin,premium, andvipgroups — 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
ConfigurationSectionreading for group detection - Implemented intelligent caching system for group priority calculations
- Cache automatically clears on
/afkplus reloadfor 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-prefixconfig option to separate credit tables per server - Configuration Examples: Step-by-step guides added to
config.ymlandREADME.md - New Documentation File:
MULTI_SERVER_DOCUMENTATION.mdwith 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
- Replace the old JAR with
AntiAFKPlus v2.9.2 - Update LuckPerms (or other permission plugin) with new group permissions:
- Format:
antiafkplus.credit.ratio.<groupname>
- Format:
- Optional: Customize group priority order in
config.yml - NEW: Check
config.ymlfor multi-servertable-prefixexamples if you run multiple servers - Reload with
/afkplus reloadto apply changes - Enable
debug: truein config to verify group detection
Existing
admin,premium, andvipgroups 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-prefixvalues in each server'sconfig.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+
2.9.1Релиз1.21.8, 1.21.9, 1.21.10 · 17 ноября 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-detectionstops 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 reloadcleanly restarts or shuts down pattern analysis to reflect updated settings without a server restart.
Upgrade Notes
- Replace the old JAR with
AntiAFKPlus v2.9.1. - Reload with
/afkplus reloador restart. - Verify your
modules.pattern-detectionandpattern-detection-settingsvalues; they are now enforced.
Version: 2.9.1
Release Date: 15/11/2025
Compatibility: Minecraft 1.16 - 1.21.10
Java: 17+
2.9Релиз1.21.8, 1.21.9, 1.21.10 · 14 ноября 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 kicksMESSAGE_ONLY: Suppress actions and send informational messageEXTEND_THRESHOLD: Delay final action by configurable secondsDEFAULT: 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 reloadupdates 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
- Automatically included in
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
- Replace the old JAR with
AntiAFKPlus v2.9 - Optional: Configure
afk-windowssection inconfig.ymlto enable time-based protection - Optional: Customize the
afk-window-activemessage inmessages.ymlfor localization - Update your dependency to
2.9if 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+
2.8.2Релиз1.21.8, 1.21.9, 1.21.10 · 7 ноября 2025 г.
AntiAFKPlus v2.8.2 (Hotfix Rollup)
Bug Fixes
- Pause-aware scheduling – Introduced a shared
ServerStateUtiland wrapped every repeating task scheduled throughPlatformSchedulerso 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.
2.8.1Релиз1.21.8, 1.21.9, 1.21.10 · 20 октября 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
runTaskForEntityfor 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
Комментарии
Загружаем…