Releases: CaptainRatax/JustAFK
Release list
JustAFK v1.1.0 — Runtime Controls & Input-Aware AFK Detection
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: trueIt 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
/afkno 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: trueIt 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: trueThis 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
PlayerMoveEventactivity tracking withPlayerInputEvent - 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-versionto1.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
- Confirm that the server is running Minecraft 1.21.3 or newer.
- Confirm that the server is running Java 21 or newer.
- Stop the server.
- Back up
plugins/JustAFK/config.yml. - Replace
JustAFK-1.0.1.jarwithJustAFK-1.1.0.jar. - Start the server.
- Run
/justafk statusto review the active configuration. - Configure the new options if required:
/justafk set enabled on
/justafk set automatic-afk on
Existing configuration values remain compa...
JustAFK v1.0.1 — Extended Version Compatibility
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
- Stop the server.
- Replace
JustAFK-1.0.0.jarwithJustAFK-1.0.1.jar. - 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
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
- Download
JustAFK-1.0.0.jarfrom the assets below. - Place the JAR inside the server's
pluginsdirectory. - Start or restart the server.
- Edit
plugins/JustAFK/config.ymlif needed. - Run
/justafk reloadafter 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!