AntiAFKPlus v1.4 - Major Refinements & New Features!
This update brings a host of internal improvements, new features, and enhanced configurability to AntiAFKPlus, making it more stable, user-friendly, and powerful!
✨ New Features & Major Improvements
Advanced Autoclicker Detection:
Detection parameters (click window, threshold, minimum idle time) are now fully configurable in config.yml. Define specific actions upon detection: LOG (default), SET_AFK, or KICK the player.
Command Tab Completion: Enjoy easier command usage with tab completion for /afk and /afkplus subcommands and arguments.
Enhanced Developer API:
Added getTimeSinceLastActivity(Player) method to the API.
Improved reliability and predictability of markAsAFK(Player) and unmarkAFK(Player) API calls.
🔧 Enhancements & Optimizations
- Core System Refactoring: Significant internal code restructuring for better stability, performance, and easier future development.
- Robust Task & Listener Management: All plugin tasks and event listeners are now managed more effectively, ensuring proper startup and shutdown, preventing potential errors or memory leaks.
- Optimized Event Handling: Refined player activity listeners (movement, interaction, etc.) for more accurate AFK state updates.
- Clearer Logging: Improved console logging for AFK events and debug information.
🐛 Bug Fixes
- Addressed various internal logic issues for more consistent AFK state transitions (manual vs. automatic).
- Corrected method calls for PlaceholderAPI integration, ensuring placeholders like %antiafkplus_afktime% work reliably.
- Resolved minor bugs in command processing and message display.
- Ensured proper cleanup of player-specific data on quit/kick and for internal listeners.
⚙️ Configuration & Permissions
Complete Message Customization: Virtually all messages sent to players are now configurable via messages.yml.
New Configuration Options: broadcast-afk-state-changes: Toggle global "Player is now AFK" / "Player is no longer AFK" messages.
Full externalization of autoclicker detection settings.
Granular & Documented Permissions:
Introduced more specific permissions (e.g., antiafkplus.reload, antiafkplus.status.check, antiafkplus.bypass.autoclick, antiafkplus.bypass.itempickup). config.yml and plugin.yml now feature improved comments and a comprehensive permission overview for easier server administration.
Before Updating:
-
Please backup your existing AntiAFKPlus configuration files (config.yml, messages.yml).
-
Review the updated config.yml and messages.yml generated by v1.4 and transfer your settings. New options have been added!
-
Thank you for using AntiAFKPlus! We hope you enjoy these improvements.
🔄 AntiAFKPlus v1.3 – Smarter, Stronger, Safer
This update brings quality-of-life improvements and intelligent detection systems to enhance AFK protection for modern Minecraft servers.
✅ New Features
🧠 Autoclick Detection (Experimental)
Detects suspicious clicking behavior without movement — can optionally trigger AFK handling.
🎯 AFK Item Pickup Blocker
Prevents AFK players from picking up items automatically. (Toggle in config.yml)
🧩 New Placeholder: %antiafkplus_afktime%
Shows how long the player has been inactive in seconds.
🌍 disabled-worlds Support
More flexible world control — disable AFK detection in specific worlds (overrides enabled-worlds).
🧪 Improved Debug System
Enable debug: true in config.yml to log warnings, kicks, AFK changes, and detections to console.
- 🛠 Configuration Changes
- ➕ New config option: block-pickup-while-afk: true
- ➕ New config option: autoclick-detection: true
- 🧠 Messages are fully externalized in messages.yml
- 📁 Updated config.yml and messages.yml are auto-generated if missing
- 🔒 Safe handling of false positives (autoclick and AFK check now respect movement better)
🧰 Technical / API
✅ Public API now includes:
getLastMovement(Player) for %afktime% placeholder
AFK toggle and state read access
🔄 Full PlaceholderAPI support with %antiafkplus_status% and %antiafkplus_afktime%
📊 bStats remains fully functional with Plugin ID 25664
📢 Reminder
This plugin is free and open-source. If you're enjoying it, please consider:
- 🌟 Leaving a positive review
- 🧪 Joining the Support Discord
- 💡 Suggesting features for future versions (GUI, MySQL, Holograms...)
✅ Tested on Paper 1.16.5 to 1.21.5 💼 Built with performance and clarity in mind.
🔄 AntiAFKPlus v1.2 – Update Changelog
A smarter and more flexible AFK system is here.
✨ New Features
-
✅ Voluntary AFK Limit Players can only stay in manual AFK mode (/afk) for a configurable maximum time.
-
✅ messages.yml support All messages are now fully customizable in a separate messages.yml file.
-
✅ New Command: /afk list Lists all currently AFK players online. Permission: antiafkplus.list.
-
✅ New Command: /afk status Shows if you or another player is currently AFK or active.
-
✅ Softdependency for PlaceholderAPI Includes placeholder %antiafkplus_status% (returns "AFK" or "ACTIVE").
-
✅ Reload messages.yml with /afkplus reload
-
✅ World Filtering Enhanced You can now use disabled-worlds: in addition to enabled-worlds: (If both are set, disabled-worlds: takes priority)
-
✅ Debug Mode Enable debug: true in config to log AFK events in console for testing.
🛠 Improvements
Improved internal checks for AFK manual mode expiration.
Better separation of config and messages logic.
Enhanced permission control and command handling.
🧩 Compatibility
✅ Supports 1.16 – 1.21.5
✅ Works with Paper, Purpur, Spigot
✅ PlaceholderAPI ready
📊 Metrics via bStats (Plugin ID: 25664)
#💬 Need help? Join our support Discord:
🔔 Don’t forget to leave a ★ on Spigot if you enjoy the plugin!
🟢 Changelog – AntiAFKPlus v1.1
🎉 AntiAFKPlus v1.1 is here with major improvements and new features!
This update focuses on customizability, stability, and player experience.
✨ New Features
- ✅ messages.yml added – fully customizable and supports colors
- ✅ /afk list command to see who is AFK (with configurable permission)
- ✅ Configurable limit for voluntary AFK (/afk) with auto-exit
- ✅ Developer API included for external plugin integration
- ✅ Configurable permission node for /afk list
⚙️ Improvements
- 🔹 Broadcasts now correctly show on AFK enter/exit
- 🔹 Kick messages are now loaded from config properly
- 🔹 Warnings before kick work at all configured intervals
- 🔹 Improved AFK detection logic for login edge cases
- 🔹 Cleaner structure, ready for future premium edition
🐛 Fixes
- 🛠️ Fixed players getting stuck in AFK kick loop after reconnect
- 🛠️ Fixed warnings not appearing due to timing errors
- 🛠️ Fixed missing broadcast messages on AFK toggle
📚 How to Update
- Stop your server
- Replace your old JAR with the new one
- Delete messages.yml if it doesn't generate (only once)
- Restart and reconfigure as needed
- Use /afkplus reload to reload configs anytime
- ✅ Supports Minecraft 1.16 to 1.21.5
- 🧠 Lightweight, async-safe, and open source
- 📈 Includes bStats (optional and anonymous)
- 🛠️ Ready for integrations via developer API
- 🧩 PlaceholderAPI support coming soon in next update
✨ 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+