Перейти к содержимому
Mineforgian

EzAfk

Modern, lightweight AFK management plugin that keeps your staff informed while gently nudging idle players back into the action

Загрузки
1K
Подписчики
4
Обновлён
6 июля 2026 г.
Лицензия
MIT

Опубликован 22 декабря 2025 г.

EzAfk

Keep AFK management simple.

EzAfk is a modern, lightweight AFK management plugin for Paper and Spigot servers. It automates AFK detection, rewards or charges players based on idle state, gives staff a real-time overview panel, and integrates with the tools you already run, all without sacrificing performance.

v3.1.1 · Minecraft 1.21+ · Java 21+ · Paper / Spigot / Bukkit / Purpur


Feature Highlights

Feature Summary
AFK Detection Idle timeout with configurable broadcasts, titles, animations, display-name changes, and a blindness-blur overlay
Anti-Bypass Block infinite water flow, vehicle riding, and bubble column tricks from resetting idle timers
AFK Kick Kick idle players after a configurable period, optionally only when the server is full
Kick Warnings Multi-stage countdown messages (chat and/or title) at custom intervals before the kick fires
Staff GUI /afk gui panel showing all AFK players with one-click kick, message, teleport, and custom command buttons
AFK Zones Cuboid regions where players earn rewards (economy, commands, or items) for being AFK
Economy Costs Charge a one-time entry fee and/or a recurring fee while AFK via any Vault economy plugin
AFK Leaderboard Per-player cumulative AFK time, /afk top leaderboard, persisted across restarts
PlaceholderAPI 16 placeholders for status, session time, totals, counts, prefix/suffix, and playtime
Multi-language EN, ES, NL, RU, ZH, DE, fully overridable per server
Storage backends YAML (default), SQLite, or MySQL
Simple Voice Chat Play a custom MP3 sound when a player goes AFK

Installation

  1. Download EzAfk-x.x.x.jar from the files tab above.
  2. Drop it into your server's plugins/ folder.
  3. Restart the server. EzAfk generates all config files automatically.
  4. Edit plugins/EzAfk/config.yml to configure your desired features.
  5. Run /afk reload in-game to apply changes without a restart.

Commands

Command Description Permission
/afk Toggle your own AFK status (none)
/afk reload Reload all configuration files ezafk.reload
/afk gui Open the AFK staff overview panel ezafk.gui
/afk toggle <player> Force a player's AFK state ezafk.toggle
/afk bypass whitelist <add|remove|list> [player] Manage the persistent bypass whitelist ezafk.bypass.manage
/afk bypass blacklist <add|remove|list> [player] Manage the persistent bypass blacklist ezafk.bypass.manage
/afk bypass <player> Toggle per-session bypass for a player ezafk.bypass.manage
/afk info <player> View a player's AFK session details ezafk.info
/afk time [player] View total AFK time ezafk.time
/afk time reset <player> Reset a player's AFK time ezafk.time.reset
/afk top Show the AFK time leaderboard ezafk.top
/afk zone pos1 / pos2 Select zone corners ezafk.zone.manage
/afk zone add <name> Create an AFK zone ezafk.zone.manage
/afk zone remove <name> Remove an AFK zone ezafk.zone.manage
/afk zone list List all zones ezafk.zone.list

Aliases: /ezafk, /ea, /afktime, /afktop


Permissions

Node Default Description
ezafk.reload OP Reload configuration
ezafk.bypass OP Never be marked AFK automatically
ezafk.bypass.manage OP Toggle bypass for other players
ezafk.toggle OP Toggle other players' AFK state
ezafk.info OP View AFK details for other players
ezafk.kick.bypass OP Never be kicked by EzAfk
ezafk.gui OP Open the staff GUI
ezafk.gui.view-active OP View non-AFK players in the GUI
ezafk.gui.actions OP Use action buttons in the GUI
ezafk.time all View own AFK time
ezafk.time.others OP View another player's AFK time
ezafk.time.reset OP Reset a player's AFK time
ezafk.top OP View the leaderboard
ezafk.economy.bypass OP Skip economy AFK charges
ezafk.zone.list OP List AFK zones
ezafk.zone.manage OP Create and remove zones

PlaceholderAPI Placeholders

Requires PlaceholderAPI. The expansion registers automatically. No extra setup needed.

Placeholder Returns
%ezafk_status% AFK or ACTIVE
%ezafk_status_colored% &cAFK or &aACTIVE
%ezafk_since% Seconds since AFK session started (empty if not AFK)
%ezafk_last_active% Seconds since last player activity
%ezafk_total_seconds% Total lifetime AFK seconds
%ezafk_total% Total AFK time HH:MM:SS
%ezafk_total_formatted% Verbose, e.g. 2 hours 15 minutes
%ezafk_prefix% Configured AFK display-name prefix
%ezafk_suffix% Configured AFK display-name suffix
%ezafk_playtime_active_seconds% Active (non-AFK) playtime in seconds
%ezafk_playtime_active% Active playtime HH:MM:SS
%ezafk_playtime_active_formatted% Active playtime verbose
%ezafk_afk_count% / %ezafk_afk_players% Number of AFK players
%ezafk_active_count% / %ezafk_active_players% Number of non-AFK players

Configuration Overview

EzAfk's settings are spread across focused files for clarity:

config.yml    AFK detection, kick, anti-bypass, economy, integrations
gui.yml       Staff GUI layout and action buttons
zones.yml     AFK zone definitions with coordinates and rewards
mysql.yml     Database connection (only when storage.type: mysql)
messages/     Language files: en.yml, es.yml, nl.yml, ru.yml, zh.yml, de.yml

Core settings (config.yml)

afk:
  timeout: 300             # seconds of inactivity → AFK
  broadcast:
    enabled: true          # announce AFK in chat
  title:
    enabled: true          # show title to the AFK player
  anti:
    infinite-waterflow: false
    infinite-vehicle: false
    bubble-column: false

kick:
  enabled: false           # kick AFK players
  enabledWhenFull: false   # only kick when server is at capacity
  timeout: 600             # seconds AFK before kick
  warnings:
    enabled: true
    intervals: [60, 30, 10]
    mode: both             # chat | title | both

economy:
  enabled: false
  cost:
    enter:
      enabled: true
      amount: 25.0

storage:
  type: yaml               # yaml | sqlite | mysql
  flush-interval-seconds: 30

Integrations

Integration Notes
Vault / Economy Required for economy costs and zone economy rewards
PlaceholderAPI Auto-detected; provides 16 AFK placeholders
WorldGuard Adds afk-bypass region flag; use /rg flag <region> afk-bypass allow
TAB Delegate tab-list AFK prefix formatting to the TAB plugin
Simple Voice Chat Play MP3 sounds on AFK state changes
bStats Anonymous usage statistics (opt-out in config.yml)
Spigot update checker Console reminder when a new version is available

Links

  • Documentation: full configuration guide, feature pages, and API reference
  • Discord: support, bug reports, and feature requests
  • GitHub: source code and issue tracker
  • Developer API: PlayerAfkStatusChangeEvent and AfkReason enum

Ченджлог

3.1.1Релиз26.1.1, 26.1.2, 26.2 · 6 июля 2026 г.

Modrinth

Fixed

  • AFK broadcast and return messages now resolve PlaceholderAPI placeholders with the AFK player's context, so integrations like LuckPerms prefixes work correctly in messages.yml.

3.1.0Релиз26.1.1, 26.1.2, 26.2 · 28 июня 2026 г.

Modrinth

Added

  • Bypass whitelist and blacklist - Two persistent lists (stored in bypass-lists.yml) let admins fine-tune who bypasses AFK detection:

    • Whitelist — players that always bypass, regardless of the afk.bypass.enabled config flag or whether they hold the ezafk.bypass permission.
    • Blacklist - players that are never allowed to bypass, even when they hold ezafk.bypass (useful for ops/admins who want to be subject to AFK detection and zone rewards for testing or fairness).
    • Blacklist takes precedence over whitelist.
    • Managed in-game with /afk bypass whitelist <add|remove|list> [player] and /afk bypass blacklist <add|remove|list> [player] (requires ezafk.bypass.manage).
    • Tab completion is provided for all three argument depths.
    • Lists are reloaded on /afk reload.
  • AFK zone entry / exit messages - Players now receive a chat message when they enter or leave an AFK zone (afkzone.enter / afkzone.exit message keys in messages.yml; both support the %zone% placeholder).

  • AFK zone reward countdowns via EzCountdown - When EzCountdown is installed, players in AFK zones see a live countdown to their next reward (action bar, title, boss bar, scoreboard, or dialog — configurable per zone). The countdown resets automatically after each payout.

  • Global zone reward defaults - A top-level defaults.reward block in zones.yml lets you configure economy reward amount, interval, and notification settings once for all zones. Individual zones can still override any value. When Vault is present and defaults.reward.enabled: true, all zones automatically grant small economy rewards without per-zone configuration.

  • Session reward stats per player per zone - EzAfk now tracks how many rewards and how much currency each player has received in each zone for the current server session (resets on restart). Available via PlaceholderAPI:

    • %ezafk_zone_rewards_grants% - total grants across all zones
    • %ezafk_zone_rewards_amount% - total currency earned across all zones
    • %ezafk_zone_reward_<zone>_grants% - grants in a specific zone
    • %ezafk_zone_reward_<zone>_amount% - currency earned in a specific zone
  • New notification config fields on zone rewards: reward.notification.enabled, reward.notification.displays, reward.notification.message, reward.notification.duration.

Fixed

  • Duplicate reward: YAML key under afkzone: in messages.yml — the second block (failed:) was silently overwriting the first (granted.*), making all reward granted messages fall back to their hardcoded defaults.

    EzCountdown plugin. Detected automatically when present (integration.ezcountdown: auto).

  • Configurable kick-warning display typeskick.warnings.displays accepts a list of display types: CHAT, TITLE, ACTION_BAR, BOSS_BAR. Multiple types can be active at once (e.g. [ACTION_BAR, BOSS_BAR]). When the list is empty the legacy kick.warnings.mode value is used for backward compatibility.

  • New message keys kick.warning.action_bar and kick.warning.boss_bar in messages.yml for the new display types.

Changed

  • CompatibilityUtil now handles sendActionBar, showBossBarWarning, and removeWarningBossBar via reflection - safe on servers without the BossBar API (pre-1.9) or without the action-bar method available.
  • Java 21+ is now required. maven.compiler.release raised from 11 to 21; the plugin JAR targets Java 21 bytecode (class file version 65). Servers running Minecraft 1.21+ already require Java 21, so this is a no-op for all supported server versions.
  • Minimum supported Minecraft version is now 1.21 (was 1.19). Older versions are no longer tested or guaranteed to work.

Removed

  • Paper 1.20.4 / Java 17 legacy CI smoke test (not needed after dropping Java 17 support).

3.0.0Релиз26.1, 26.1.1, 26.1.2 · 26 апреля 2026 г.
  • Updated plugin to Java 25
  • Updated to Paper 26.1
  • Integrated Jaloquent for the storage
    • Added optional Jaloquent logging
2.4.1Релиз1.21.9, 1.21.10, 1.21.11 · 25 апреля 2026 г.
2.4.0Релиз1.21.9, 1.21.10, 1.21.11 · 26 марта 2026 г.
  • Added Japanese translations (ja)
  • Added German translations (de)
  • Fixed issue, making it possible to create custom language files and use them
2.3.3Релиз1.21.9, 1.21.10, 1.21.11 · 18 февраля 2026 г.
  • Fixed issue in TAB integration
2.3.2Релиз1.21.9, 1.21.10, 1.21.11 · 9 февраля 2026 г.

Feature changes

  • Fixed bug in WorldGuard being required, error on server startup when WorldGuard not available

Code changes

  • Fixed MockBukkit testing
  • Added automated test tools
  • Added feature tests for all commands
2.3.1Релиз1.21.9, 1.21.10, 1.21.11 · 8 февраля 2026 г.
  • Added new sound for when player comes back from being AFK.
unafk:
  sound:
    enabled: true
    # Path to the MP3 file to play when returning from AFK (relative to plugin folder)
    file: "mp3/ezafk-sound.mp3"

Комментарии

Загружаем…