Skip to content

Commit 188c752

Browse files
committed
fix(premium): Re-order session handling, so premium user don't consume session uselessly
1 parent 2afe536 commit 188c752

1 file changed

Lines changed: 16 additions & 15 deletions

File tree

authme-core/src/main/java/fr/xephi/authme/process/join/AsynchronousJoin.java

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -178,13 +178,16 @@ public void processJoin(Player player) {
178178
}
179179
}
180180

181-
// Session logic
182-
if (sessionService.canResumeSession(player)) {
183-
service.send(player, MessageKey.SESSION_RECONNECTION);
184-
// Run commands
185-
bukkitService.scheduleSyncTaskFromOptionallyAsyncTask(player,
186-
() -> commandManager.runCommandsOnSessionLogin(player));
187-
bukkitService.runTaskOptionallyAsync(() -> asynchronousLogin.forceLogin(player));
181+
// Premium players are always verified by Mojang — skip the session mechanism entirely,
182+
// which would send a misleading SESSION_RECONNECTION message and run session commands.
183+
if (canBypassWithPremium(player)) {
184+
// Premium bypass: player has a verified Mojang UUID matching the connecting player's UUID
185+
if (bungeeSender.isEnabled()) {
186+
// Proxy handles routing; do not attempt backend-side BungeeCord redirect
187+
bukkitService.runTaskOptionallyAsync(() -> asynchronousLogin.forceLoginFromProxy(player));
188+
} else {
189+
bukkitService.runTaskOptionallyAsync(() -> asynchronousLogin.forceLogin(player));
190+
}
188191
return;
189192
} else if (proxySessionManager.shouldResumeSession(name)) {
190193
service.send(player, MessageKey.SESSION_RECONNECTION);
@@ -198,14 +201,12 @@ public void processJoin(Player player) {
198201
logger.info("The user " + player.getName() + " has been automatically logged in, "
199202
+ "as present in autologin queue.");
200203
return;
201-
} else if (canBypassWithPremium(player)) {
202-
// Premium bypass: player has a verified Mojang UUID matching the connecting player's UUID
203-
if (bungeeSender.isEnabled()) {
204-
// Proxy handles routing; do not attempt backend-side BungeeCord redirect
205-
bukkitService.runTaskOptionallyAsync(() -> asynchronousLogin.forceLoginFromProxy(player));
206-
} else {
207-
bukkitService.runTaskOptionallyAsync(() -> asynchronousLogin.forceLogin(player));
208-
}
204+
} else if (sessionService.canResumeSession(player)) {
205+
service.send(player, MessageKey.SESSION_RECONNECTION);
206+
// Run commands
207+
bukkitService.scheduleSyncTaskFromOptionallyAsyncTask(player,
208+
() -> commandManager.runCommandsOnSessionLogin(player));
209+
bukkitService.runTaskOptionallyAsync(() -> asynchronousLogin.forceLogin(player));
209210
return;
210211
}
211212
} else if (!service.getProperty(RegistrationSettings.FORCE) && pendingRegistration == null) {

0 commit comments

Comments
 (0)