auth-limbo/docs/compatibility.md
s8n-ru cb746147f0 Rename: LoginLimbo -> AuthLimbo
User wants name to literally be 'auth-limbo' to match the auth_limbo
world the plugin manages. Same functionality, same code, just renamed.
2026-04-30 19:19:26 +01:00

3.7 KiB

Compatibility

Tested matrix

Component Version Status Notes
Paper 1.21.11 Verified Primary target. Builds against 1.21.11-R0.1-SNAPSHOT.
Purpur 1.21.11 Expected to work Purpur is a Paper fork with a superset of the Paper API used here. Untested in CI but the relevant API surface (teleportAsync, setChunkForceLoaded, modern ChunkGenerator) is identical.
Folia any Untested Folia's regionised threading model changes how LoginEvent is dispatched. The current Bukkit.getScheduler().runTaskLater calls would need to be reworked to use Folia's region scheduler. Do not run this plugin on Folia until it has been audited.
Java 21 Required pom.xml targets Java 21.
Java 22 / 23 / 24 Expected to work Source compatibility level is 21. No reflection or unsafe APIs are used.

Auth plugins

Plugin Version Status Notes
AuthMe-ReReloaded (HaHaWTH fork) b49 Verified Hard dependency. The fork's SQLite schema is the one we read.
AuthMe-ReReloaded (other 5.x forks) any Expected to work Other forks track the same upstream schema (authme table with username, x, y, z, world, yaw, pitch). The plugin will compile and load against any 5.x AuthMe binary because we depend on fr.xephi.authme.events.LoginEvent which has been stable since 5.0.
AuthMe-ReReloaded (6.x) any Untested API likely the same; no reason to expect a break.
Original AuthMe (fr.xephi:authme 5.x) any Expected to work Same Java package, same event class.
nLogin / FastLogin / SimpleAuth / others n/a Not supported This plugin is hard-coupled to AuthMe events. It will refuse to load without AuthMe in plugin.yml.
MySQL-backed AuthMe n/a Not supported (yet) The plugin reads authme.db directly via SQLite JDBC. If your AuthMe stores data in MySQL, the LoginEvent restore is a no-op.

Other plugins

Plugin Status Notes
Multiverse-Core Untested Multiverse intercepts teleports for portals and respawn. The two plugins should coexist because AuthLimbo runs at MONITOR priority and overrides whatever Multiverse does to the post-login location. If you only run Multiverse for the limbo world, you do not need it any more — AuthLimbo's LimboWorldManager covers that case.
EssentialsX Untested Essentials' spawn-on-join (spawn-on-join in essentials.yml) is the most common conflicting feature. With Essentials' default ordering, AuthLimbo's MONITOR listener still runs last and wins. If you see the spawn-on-join location winning, set spawn-on-join: false.
WorldGuard Should not interfere WorldGuard does not teleport on login.
BetterReload / PlugManX Avoid Hot-reloading any of (AuthLimbo, AuthMe, Paper itself) will leave dangling listeners. Always restart.

Database compatibility

The plugin opens plugins/AuthMe/authme.db with a fresh JDBC connection per query. AuthMe also keeps a connection open to the same file. SQLite supports multiple readers under WAL mode, which is AuthMe's default; we never PRAGMA journal_mode ourselves, never write, and never wrap the read in a transaction. There is no risk of corruption from this access pattern.

If AuthMe is configured to use MySQL or PostgreSQL instead of SQLite, this plugin will log a warning on first lookup and the LoginEvent restore will be skipped. A MySQL backend is on the wishlist but not implemented.

Reporting compatibility results

If you run this plugin on a configuration not covered above, please open an issue or PR an update to this table.