Tags
Creators
Details
3.1.0
Compatibility
Changes
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.enabledconfig flag or whether they hold theezafk.bypasspermission. - 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](requiresezafk.bypass.manage). - Tab completion is provided for all three argument depths.
- Lists are reloaded on
/afk reload.
- Whitelist — players that always bypass, regardless of the
-
AFK zone entry / exit messages - Players now receive a chat message when they enter or leave an AFK zone (
afkzone.enter/afkzone.exitmessage keys inmessages.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.rewardblock inzones.ymllets you configure economy reward amount, interval, and notification settings once for all zones. Individual zones can still override any value. When Vault is present anddefaults.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 underafkzone:inmessages.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 types —
kick.warnings.displaysaccepts 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 legacykick.warnings.modevalue is used for backward compatibility. -
New message keys
kick.warning.action_barandkick.warning.boss_barinmessages.ymlfor the new display types.
Changed
CompatibilityUtilnow handlessendActionBar,showBossBarWarning, andremoveWarningBossBarvia 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.releaseraised from11to21; 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).
Optional dependencies
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:lFROrcEl:XnbmjJxH"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:lFROrcEl:XnbmjJxH"
}

