Skip to content

Releases: CaptainRatax/JustAFK

JustAFK v1.1.0 — Runtime Controls & Input-Aware AFK Detection

Choose a tag to compare

@CaptainRatax CaptainRatax released this 30 Jul 23:22
2e6be5d

JustAFK 1.1.0 introduces complete runtime control over the plugin and a new input-aware AFK detection system.

Player activity is no longer inferred from position changes. JustAFK now detects movement input sent by the player, allowing AFK state and duration to survive external movement such as entity pushes, knockback, arrows, explosions, water, teleports, death, and respawn.

Important

JustAFK 1.1.0 requires Minecraft 1.21.3 or newer and Java 21 or newer.

Servers running Minecraft versions below 1.21.3 can continue using JustAFK v1.0.1.

Version 1.0.1 retains the previous position-based AFK detection. External movement, including knockback or entities pushing a player, may therefore reset the inactivity timer or remove AFK. It also does not include the new global and automatic-AFK configuration toggles introduced in 1.1.0.

Highlights

  • Added a global enable/disable option for the entire plugin
  • Added an independent toggle for automatic AFK detection
  • Added runtime commands for changing both options
  • Replaced position-based activity tracking with player-input detection
  • Detects forward, backward, left, right, jump, sneak, and sprint input
  • Preserves AFK state during external movement
  • Preserves AFK state and duration across death and respawn
  • Raised the minimum supported Minecraft version to 1.21.3
  • Raised the plugin bytecode requirement to Java 21
  • Updated configuration, documentation, compatibility checks, and automated tests
  • No database, NMS, or external runtime dependencies

Global plugin control

A new top-level configuration option controls whether JustAFK is active:

enabled: true

It can also be changed while the server is running:

/justafk set enabled on
/justafk set enabled off

When enabled is set to false:

  • Players are not tracked for AFK activity
  • Automatic AFK detection stops
  • /afk no longer changes AFK states
  • Administrative AFK changes are disabled
  • Existing plugin-managed AFK states are cleared
  • JustAFK player-list prefixes are restored
  • AFK announcements are disabled
  • Player-list duration updates stop

The following administration commands remain available so the plugin can still be inspected, configured, reloaded, and enabled again:

  • /justafk help
  • /justafk status
  • /justafk reload
  • /justafk set ...

Re-enabling the plugin starts a fresh activity-tracking session for online players.

Independent automatic AFK control

Automatic AFK detection can now be enabled or disabled independently:

automatic-afk-enabled: true

It can be changed at runtime using:

/justafk set automatic-afk on
/justafk set automatic-afk off

When automatic AFK detection is disabled:

  • Inactivity no longer places players into AFK automatically
  • The configured inactivity timeout is not applied automatically
  • Players can still use /afk
  • Administrators can still change another player's AFK state
  • Movement input still removes a manually applied AFK state
  • Announcements and player-list prefixes continue to work for manual AFK states

This allows servers to use JustAFK exclusively as a manual AFK system if desired.

Input-aware AFK detection

Previous versions detected activity through changes to the player's world position. This could incorrectly remove AFK when a player was moved by something outside their control.

JustAFK 1.1.0 replaces that system with the movement-input API introduced in modern Minecraft server versions.

The following inputs count as activity:

  • Forward
  • Backward
  • Left
  • Right
  • Jump
  • Sneak
  • Sprint

When one of these inputs is detected:

  • The inactivity timer is restarted
  • An AFK player immediately becomes active
  • The AFK player-list prefix is removed
  • The configured active announcement is sent

JustAFK uses both immediate input events and periodic input polling:

  • Input events detect short key presses between monitoring passes
  • Polling keeps the player active while a movement key remains held
  • Releasing all movement inputs allows the inactivity timer to progress normally

A held key or client-side movement toggle continues to count as activity for as long as the server reports that input as active.

External movement no longer counts as activity

Changes to the player's position no longer restart the inactivity timer by themselves.

An AFK player therefore remains AFK when moved by:

  • Entity collisions or pet mobs
  • Slimes and other mobs pushing the player
  • Zombie attacks
  • Skeleton arrows
  • Knockback
  • Explosions
  • Flowing water
  • Bubble columns
  • Pistons
  • Shulkers
  • Gravity or falling
  • Passive vehicle movement
  • Server or plugin teleports
  • Death
  • Respawn

The AFK state and displayed AFK duration are preserved during these events unless the player sends movement input.

Looking around with the mouse also remains ignored and does not restart the inactivity timer.

If movement input is active while knockback or another external movement occurs, the player is considered active because the server is receiving intentional movement input from the client.

Configuration compatibility

Existing configuration files from JustAFK 1.0.0 and 1.0.1 remain compatible.

The two new options default to true when they are missing:

enabled: true
automatic-afk-enabled: true

This means that upgrading with an existing configuration preserves the previous enabled behaviour without requiring the configuration file to be regenerated.

The options can be added manually or saved through the runtime configuration commands.

Compatibility

JustAFK 1.1.0 supports the following server versions:

Platform Supported versions
Paper 1.21.3–26.2
Purpur 1.21.3–26.2
Folia 1.21.3–26.2, where a server build is available
Spigot / CraftBukkit 1.21.3–26.2
Sponge Not supported
BungeeCord / Velocity / Waterfall Not supported; these are proxy platforms

Paper 26.2 remains the primary build target.

The same source is also compatibility-compiled against Spigot 1.21.3, and both compilations must produce identical class files before the build passes.

Folia continues to use its native global and entity schedulers without requiring a separate plugin build or runtime dependency.

Compatibility with older Minecraft versions

JustAFK 1.1.0 cannot load on servers below Minecraft 1.21.3 because the required player-input event is unavailable on those versions.

For older servers, continue using JustAFK v1.0.1:

Platform JustAFK 1.0.1 compatibility
Paper 1.8.8–26.2
Purpur 1.14.1–26.2
Folia 1.19.4–26.2
Spigot / CraftBukkit 1.8.8–26.2, best-effort

JustAFK 1.0.1:

  • Uses Java 8-compatible bytecode
  • Uses position changes to detect player activity
  • May remove AFK when a player is pushed or receives knockback
  • Does not include enabled
  • Does not include automatic-afk-enabled
  • Does not include input-aware movement detection

Version 1.0.1 remains available and can continue to be used normally on servers that cannot upgrade to Minecraft 1.21.3 or newer.

Java requirements

The JustAFK 1.1.0 JAR uses Java 21 bytecode and therefore requires Java 21 or newer.

The Minecraft server may require a newer Java version depending on the server version. For example, Paper 26.2 requires Java 25.

JustAFK 1.0.1 remains available with Java 8-compatible bytecode for older Minecraft servers.

Technical changes

  • Replaced PlayerMoveEvent activity tracking with PlayerInputEvent
  • Added current-input polling through Player#getCurrentInput()
  • Added a dedicated activity predicate for all seven movement-input flags
  • Removed the obsolete position snapshot implementation
  • Removed position comparisons from the periodic AFK monitor
  • Added global and automatic-AFK flags to immutable configuration snapshots
  • Added runtime configuration commands and tab completion for both flags
  • Added safe handling for configuration changes under Folia
  • Set api-version to 1.21.3
  • Changed the emitted bytecode target from Java 8 to Java 21
  • Compiles against Paper API 26.2 build 84
  • Compatibility-compiles against Spigot API 1.21.3
  • Verifies bytecode parity between Paper and Spigot builds
  • Verifies the Java 21 class-file version
  • Verifies that no runtime dependencies are declared
  • Updated the README, default configuration, build checks, and compatibility matrix

Validation

  • 25 automated tests passed
  • All seven movement-input flags tested individually
  • Short input taps between monitor passes tested
  • Held movement input polling tested
  • Empty input and inactivity timeout behaviour tested
  • External position changes verified not to affect AFK timing
  • Global plugin disable behaviour tested
  • Automatic-AFK disable behaviour tested
  • Manual AFK removal through player input tested
  • Spigot 1.21.3 compatibility compilation passed
  • Paper 26.2 primary compilation passed
  • Paper and Spigot bytecode parity verified
  • Java 21 bytecode verified
  • No runtime dependencies detected
  • Manually tested successfully on a 26.2 test server

Updating from 1.0.1

  1. Confirm that the server is running Minecraft 1.21.3 or newer.
  2. Confirm that the server is running Java 21 or newer.
  3. Stop the server.
  4. Back up plugins/JustAFK/config.yml.
  5. Replace JustAFK-1.0.1.jar with JustAFK-1.1.0.jar.
  6. Start the server.
  7. Run /justafk status to review the active configuration.
  8. Configure the new options if required:
/justafk set enabled on
/justafk set automatic-afk on

Existing configuration values remain compa...

Read more

JustAFK v1.0.1 — Extended Version Compatibility

Choose a tag to compare

@CaptainRatax CaptainRatax released this 28 Jul 00:35
d63cbd4

JustAFK 1.0.1 greatly expands server compatibility while keeping Paper 26.2 as the primary platform.

The AFK detection rules and player-facing behavior remain unchanged. This release focuses on making the same lightweight JAR usable across many more Minecraft versions and Bukkit-compatible server platforms.

Highlights

  • Expanded compatibility from Minecraft 1.8.8 through 26.2
  • Added Java 8-compatible bytecode
  • Kept Paper 26.2 as the primary API target
  • Added compatibility validation against Spigot 1.8.8
  • Added native Folia scheduler support across the supported Folia range
  • Improved compatibility with older Bukkit YAML implementations
  • Added stronger automated compatibility checks
  • No configuration migration required
  • No runtime dependencies

Compatibility

Platform Versions
Paper 1.8.8–26.2
Purpur 1.14.1–26.2
Folia 1.19.4–26.2
Spigot / CraftBukkit 1.8.8–26.2, best-effort
Sponge Not supported
BungeeCord / Velocity / Waterfall Not supported

Folia 26.2 does not currently have a public server build. The Folia scheduler implementation was runtime-tested on the latest available Folia 26.1.2 build.

Technical changes

  • Compiles against Paper API 26.2 build 84
  • Compatibility-compiles against Spigot API 1.8.8
  • Produces Java 8 class files
  • Verifies bytecode parity between Paper and Spigot builds
  • Loads YAML comment support reflectively when available
  • Verifies that no runtime dependencies are declared
  • Includes additional regression tests for compatibility-sensitive classes

Validation

  • 11 automated tests passed
  • Paper 1.8.8 startup and plugin lifecycle tested
  • Paper 26.2 startup and plugin activation tested
  • Purpur 26.2 plugin lifecycle tested
  • Folia 26.1.2 scheduler and plugin lifecycle tested
  • All 20 release classes verified as Java 8 bytecode

Updating from 1.0.0

  1. Stop the server.
  2. Replace JustAFK-1.0.0.jar with JustAFK-1.0.1.jar.
  3. Start the server.

Existing configuration files remain compatible and do not need to be regenerated.

Java requirements

The plugin JAR uses Java 8-compatible bytecode, but the server must still run with the Java version required by its Minecraft version.

For example, Paper 26.2 requires Java 25.

Download

Download JustAFK-1.0.1.jar from the assets below and place it in the server's plugins directory.

SHA-256

B7373CA6793783A87BAFED46BF302AF0FDCC1198084DC88EA2A11D80802C865F

JustAFK v1.0.0 — Initial Release

Choose a tag to compare

@CaptainRatax CaptainRatax released this 27 Jul 21:12
f6167c9

JustAFK v1.0.0

The first public release of JustAFK, a lightweight and configurable AFK plugin for Minecraft 26.2 servers.

✨ Highlights

  • Automatic AFK detection after a configurable period without positional movement
  • Looking around does not reset the inactivity timer
  • Positional movement immediately removes the AFK state
  • Manual AFK toggling with /afk
  • Operator control over other online players
  • Configurable announcements for everyone, operators only, or nobody
  • Optional AFK duration prefix in the TAB player list
  • Immediate persistence of command-based configuration changes
  • Bukkit and Folia-aware scheduling
  • No NMS usage or external runtime dependencies

🧰 Commands

  • /afk
  • /afk <player> [on|off|toggle]
  • /justafk help
  • /justafk status
  • /justafk reload
  • /justafk set timeout <seconds>
  • /justafk set announcements <all|ops|none>
  • /justafk set playerlist <on|off>

The /jafk alias is also available for administrative commands.

⚙️ Requirements

  • Minecraft 26.2
  • Java 25

✅ Compatibility

  • Paper 26.2 — primary platform
  • Purpur 26.2 — supported as a Paper fork
  • Folia — scheduler support included
  • Spigot and Bukkit — best-effort compatibility
  • Sponge — not supported

📦 Installation

  1. Download JustAFK-1.0.0.jar from the assets below.
  2. Place the JAR inside the server's plugins directory.
  3. Start or restart the server.
  4. Edit plugins/JustAFK/config.yml if needed.
  5. Run /justafk reload after manual configuration changes.

🧪 Build and tests

This release was built using:

  • Java 25
  • Gradle 9.1
  • Paper API 26.2.build.84-stable
  • JUnit 5

Test results:

  • 7 tests executed
  • 0 failures
  • 0 errors
  • 0 skipped

🔐 Checksum

JustAFK-1.0.0.jar

SHA-256: F52A5D5653B29ECB2EEAD79F74A5391C6E04893AC5B4186EBF653C564B0BB922

⚠️ Notes

  • Folia scheduler support is included, but additional live-server validation is recommended.
  • Spigot and Bukkit support is provided on a best-effort basis.
  • Changes to the TAB prefix format may only become visible when the displayed duration changes.
  • The generated plugin JAR is provided as a release asset and is not stored in the source repository.

Thank you for trying JustAFK!