6.5.0-RELEASE
What's new
Fixes players being refused during Mojang outages even though AlwaysOnline was installed, and lets them keep their skin while they're in.
Changed behaviour: /alwaysonline toggle now holds. Switching offline mode by hand used to last only until the next automatic check, which would switch it straight back if Mojang looked fine. Now a toggle stays in place until you run /alwaysonline toggle again, which hands control back to the automatic checks. While it is held, the checks still send your notifications (Discord, webhooks, Telegram, ntfy, Pushover, Gotify, console commands) when Mojang goes down or comes back, so you know when to switch back. The hold is remembered across restarts.
New: /alwaysonline status shows whether offline mode is on and whether it was set by hand, whether the automatic checks are on, the last check's result and when it ran, and which database is in use.
New: players keep their skin during outages. The skin is saved on each normal join and given back when a player is let in while Mojang is offline (BungeeCord, Velocity, Paper and Sponge). Players need one normal join on this version before it is saved.
- BungeeCord: offline mode did not actually skip Mojang. Since 6.3.1 the plugin switched Mojang login back on straight after turning it off, so players were still sent to Mojang and got "Error occurred while contacting login servers". Fixed.
- Sponge: offline mode never worked. The plugin looked for the server under the wrong class name, failed on startup, and every player was still sent to Mojang. It now switches Mojang login off properly and checks players' name and address like the other platforms. Before, there was no address check on Sponge at all. Players also keep their own UUID and skin. Tested on SpongeVanilla 1.21.8.
- Outages are now noticed when logins fail. The check used to ask Mojang for a player profile, which is cached and keeps answering through many login outages. It now asks the session server the same login question your server asks, and treats an error, a rate limit or no answer within 15 seconds as down. Before, a session server that accepted the connection and never answered held the check forever.
- MySQL: the
ipcolumn was too short for IPv6 addresses, so IPv6 players were either never saved or saved cut short and refused every outage. Existing tables are widened on startup and get two skin columns (the database user needsALTER; if it can't, the console prints the one-line fix). - MySQL: a dropped connection used to fail every lookup until the next once-a-minute keep-alive, and players looked up in that gap were refused as new. A failed query now reconnects and tries once more.
- Bedrock players (Geyser/Floodgate) are left alone during outages. They sign in through Xbox, not Mojang, but were being refused as invalid usernames.
- Paper 1.20.5+ and 26.x: players let in during an outage sometimes joined with their offline UUID (an empty, new-player profile) instead of their own. They now always keep their own UUID. Tested on Paper 26.1.2, 26.2 and 26.3.
- File storage: two players joining at the same moment could overwrite each other's entry in
playerData.txtand lose it. Saves are now one at a time and written safely, and a damaged line is skipped instead of breaking the login check. - If MySQL or MongoDB can't be reached at startup, the plugin now says so loudly, and again when offline mode switches on, because only players in the local file can join until it's fixed.
- If the automatic checks are switched off (
/alwaysonline disable, which is remembered across restarts), the console now warns on every startup, since outages won't be noticed. - Velocity: each
/alwaysonline reloadleft another copy of the Mojang check running. Fixed. Other plugins' refusals are also no longer overridden during an outage. - The update check can no longer hang a thread waiting on SpigotMC.
All Relations
- All Relations
- Embedded Library
- Optional Dependency
- Required Dependency
- Tool
- Incompatible
- Include
This mod has no related projects

