From 11ea526a358313b8fcbdae72c67110d356ad0d93 Mon Sep 17 00:00:00 2001 From: Melledy <121644117+Melledy@users.noreply.github.com> Date: Thu, 11 Dec 2025 23:25:49 -0800 Subject: [PATCH] Fix null pointer error when logging into a new account --- src/main/java/emu/nebula/net/GameSession.java | 3 +-- .../emu/nebula/server/handlers/HandlerPlayerLoginReq.java | 7 ++----- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/main/java/emu/nebula/net/GameSession.java b/src/main/java/emu/nebula/net/GameSession.java index 6a499b8..0062a94 100644 --- a/src/main/java/emu/nebula/net/GameSession.java +++ b/src/main/java/emu/nebula/net/GameSession.java @@ -122,8 +122,7 @@ public class GameSession { return false; } - // Note: We should cache players in case multiple sessions try to login to the - // same player at the time + // Note: We should cache players in case multiple sessions try to login to the same player at the time // Get player by account var player = Nebula.getGameContext().getPlayerModule().loadPlayer(account); diff --git a/src/main/java/emu/nebula/server/handlers/HandlerPlayerLoginReq.java b/src/main/java/emu/nebula/server/handlers/HandlerPlayerLoginReq.java index 50d5860..183f632 100644 --- a/src/main/java/emu/nebula/server/handlers/HandlerPlayerLoginReq.java +++ b/src/main/java/emu/nebula/server/handlers/HandlerPlayerLoginReq.java @@ -1,7 +1,6 @@ package emu.nebula.server.handlers; import emu.nebula.Nebula; -import emu.nebula.game.player.Player; import emu.nebula.game.player.PlayerErrorCode; import emu.nebula.net.GameSession; import emu.nebula.net.HandlerId; @@ -31,7 +30,6 @@ public class HandlerPlayerLoginReq extends NetHandler { loginToken = req.getOfficial().getToken(); } - var banModule = Nebula.getGameContext().getBanModule(); // Check IP ban @@ -48,9 +46,8 @@ public class HandlerPlayerLoginReq extends NetHandler { } // Check player ban - int playerUid = session.getPlayer().getUid(); - if (banModule.isPlayerBanned(playerUid)) { - var banInfo = banModule.getPlayerBanInfo(playerUid); + if (session.getPlayer() != null && banModule.isPlayerBanned(session.getPlayer().getUid())) { + var banInfo = banModule.getPlayerBanInfo(session.getPlayer().getUid()); return session.encodeMsg(NetMsgId.player_login_failed_ack, banInfo.toProto()); }