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: