This update adds Smart Activity Detection, AFK Pool visuals & optional auto-teleport, a Players tab, a dynamic Message kick screen, and AFK reminders — while ensuring full compatibility with
Minecraft 1.21.10 (Paper & Spigot).
All features remain stable and backwards compatible (
1.8.x → 1.21.10).
Changes & Fixes
New
Smart Activity Detection What this adds: rotation-only movement detection, inventory interactions, and optional block place/break tracking.
Tracked yaw/pitch rotation as activity to reduce false AFK.
Optional block place/break hooks (config-gated).
Reminders, Pool Auto-Teleport, Region Info, Kick Screen What this adds: periodic warn reminders, optional sound cue, auto-teleport to AFK Pool at warn, and tokens for a MiniMessage multi-line kick screen.
New fields for reminder cadence and pool auto-teleport.
Warn/kick scan logic now emits title/actionbar/sound reminders at intervals.
Added region size/volume helpers for /afkcontrol pool info.
New subcommand: /afkcontrol pool info (shows region size, capacity, players inside).
New “Players” button in the Control Panel that opens an online-players overview with player heads and AFK indicators (Active / AFK).
Visual Boundary Markers
Particle-based region visualization while selecting the AFK Pool (top→bottom cube fill).
Robust fallback chain for legacy names (e.g., HAPPY_VILLAGER ⇄ VILLAGER_HAPPY) and very old servers (Effect API fallback).
Other
Tokenized multi-line joiner and placeholder replacement supports both <key> and {key}.
YAML Updates
Code (YAML):
=========================================
Smart Activity Detection
(optional
) =========================================
activity:
trackRotation: true
# mark activity on yaw/pitch changes (no position move) trackBlockPlace: false
# mark activity when placing blocks trackBlockBreak: false
# mark activity when breaking blocks
Inventory clicks/drag are already tracked by the plugin
(no toggle needed
) =========================================
⏳ AFK Reminder Messages
=========================================
reminders:
everySeconds: 30
# 0 = disabled; repeat warn/title/actionbar this often while in warn window
=========================================
Warning sound
(plays with reminders
) =========================================
actions:
titleOnWarn: true
actionbarOnWarn: true
soundOnWarn: true
warnSound:
name: "UI_BUTTON_CLICK"# safe default; use any valid Sound enum for your version volume: 0.8
pitch: 1.4
=========================================
️ AFK Pool Auto-Teleport on Warn
=========================================
pool:
autoTeleportOnWarn: false
# when a player hits warn, teleport them into pool autoTeleportDelaySeconds: 3
# delay before teleport
Visual markers for selection
(best-effort; purely cosmetic
) visuals:
enabled: true
particle: "HAPPY_VILLAGER"# alias-aware; falls back to VILLAGER_HAPPY/others if needed durationSeconds: 60
maxParticlesPerTick: 1500
step: 2
# 1 = every block (dense), 2 = every other, etc. enabled: true
capacity: 10
# Max players in pool that are exempt wandMaterial: GOLD_AXE
# 1.8 name (auto-maps to GOLDEN_AXE on modern) selectTimeoutSeconds: 60
# /afkcontrol select timeout region:
pos1: ""# stored as "world:x:y:z" pos2: ""# stored as "world:x:y:z"
Code (YAML):
=========================================
AFK / Pool / Reminders
=========================================
poolAutoTeleported: "<gray>You were moved to the <gold>AFK Pool</gold> for inactivity warning.</gray>" Warn text used during reminders (tokens: <left>
) warn: "<gold>You’re about to be kicked in <yellow><left></yellow> seconds…</gold>" Kick screen now supports tokens: <player>, <afk>, <prefix
> kickScreen:
This maintenance release ensures full compatibility with Minecraft 1.21.10 (Paper & Spigot). All existing features remain stable and backwards compatible with earlier versions (1.8.x → 1.21.10).
Changes & Fixes
Fixed: Version check + rendering correctness.
Minor internal adjustments for Paper API 1.21.10 field/method consistency.
Ensured all Adventure/MiniMessage components render correctly under 1.21.10.
Corrected version comparison so notifications are only shown when the loaded plugin is older than the Spigot release.
No console/OP spam when the remote version is equal to or older than the local plugin version.
MiniMessage formatting now properly renders in chat.
Prefix display restored.
Players were instantly kicked upon rejoining after an AFK timeout due to outdated activity timestamps. Activity now refreshes automatically on rejoin to prevent repeat kicks.
• Added: Quality-of-life features for admins and operators.
Version update notifier: Sends a friendly join notification (with a clickable link) when a newer version is available on SpigotMC. Controlled by updates.enabled and permission afkcontrol.admin (customizable via updates.notifyPermission).
Admin Kick Command — /afkcontrol kick <player> <reason>: Confirmation-based flow with a clickable [CONFIRM KICK] button, informative hover text, colorized console logs, and tab completion for player names and common reasons. Permission: afkcontrol.kick (included under afkcontrol.admin).
AFK Control Panel Toggle: The Status item is now toggleable (left/right click) to enable/disable AFK checks, with feedback to the player and console.
• Improved: Stability, clarity, and cross-version behavior.
Cleaner YAML handling and safer configuration fallbacks.
Cross-version stability: modernized MiniMessage/legacy color rendering works seamlessly from 1.8 → 1.21.
Panel layout polish: clearer timing icons and richer hover details.
AFKManager refactor: clearer, version-safe structure for tracking player activity and AFK pool regions; cleaner API for toggles, selections, and boundaries; beginner-friendly docs throughout.
Configuration Changes
(No breaking changes — existing setups remain valid.)
messages.yml
Code (YAML):
updateAvailable: "<yellow>A new version is available:</yellow> <gold><bold><latest></bold></gold> <gray>(you have <white><current></white>)</gray>" updateLinkLabel: "Click to open the Spigot page"
This update focuses on improving player experience after AFK kicks and tightening backend performance. Players will now be able to safely rejoin after being kicked for inactivity without being instantly removed again.
Changes & Fixes
• Fixed: Players were instantly kicked upon rejoining after an AFK timeout due to outdated activity timestamps.
Activity is now automatically refreshed when a player rejoins, preventing repeated AFK detections.
• Added: New PlayerJoinEvent and PlayerQuitEvent listeners ensure player states are properly reset and cleaned up between sessions.
• Improved: The AFK tracking system now clears old data on player quit and reinitializes when they return, reducing false detections and improving accuracy.
• Enhanced Stability: Internal memory cleanup and more efficient task handling for smoother performance, especially on larger servers.
• Version-Aware Logging: The plugin now displays its version number in console messages on startup and shutdown, making it easier to confirm which build is running.
• Tested On: PaperMC 1.21.x and Spigot 1.20.6 for compatibility and stability.