From 1aa2129bba8dd92c9d66c7262302def944c68369 Mon Sep 17 00:00:00 2001 From: Melledy <121644117+Melledy@users.noreply.github.com> Date: Sat, 13 Dec 2025 00:14:07 -0800 Subject: [PATCH] Add platform string for game session --- src/main/java/emu/nebula/game/ban/BanInfo.java | 2 -- src/main/java/emu/nebula/net/GameSession.java | 14 ++++++++++++++ .../server/handlers/HandlerPlayerLoginReq.java | 3 +++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/main/java/emu/nebula/game/ban/BanInfo.java b/src/main/java/emu/nebula/game/ban/BanInfo.java index 2b03353..4edf700 100644 --- a/src/main/java/emu/nebula/game/ban/BanInfo.java +++ b/src/main/java/emu/nebula/game/ban/BanInfo.java @@ -2,13 +2,11 @@ package emu.nebula.game.ban; import dev.morphia.annotations.Entity; import dev.morphia.annotations.Id; -import emu.nebula.Nebula; import emu.nebula.database.GameDatabaseObject; import emu.nebula.game.player.PlayerErrorCode; import emu.nebula.proto.Public.Error; import emu.nebula.util.Utils; import lombok.Getter; -import java.util.Date; @Getter @Entity(value = "bans", useDiscriminator = false) diff --git a/src/main/java/emu/nebula/net/GameSession.java b/src/main/java/emu/nebula/net/GameSession.java index 0062a94..17dafdc 100644 --- a/src/main/java/emu/nebula/net/GameSession.java +++ b/src/main/java/emu/nebula/net/GameSession.java @@ -10,6 +10,7 @@ import emu.nebula.Nebula; import emu.nebula.game.account.Account; import emu.nebula.game.account.AccountHelper; import emu.nebula.game.player.Player; +import emu.nebula.proto.Pb.Platform; import emu.nebula.proto.Public.MailState; import emu.nebula.proto.Public.Nil; import emu.nebula.util.AeadHelper; @@ -24,7 +25,10 @@ public class GameSession { private String token; private Account account; private Player player; + + // Details private String ipAddress; + private int platform; // Crypto private int encryptMethod; // 0 = gcm, 1 = chacha20 @@ -38,6 +42,7 @@ public class GameSession { private long lastActiveTime; public GameSession() { + this.platform = -1; this.updateLastActiveTime(); } @@ -74,6 +79,15 @@ public class GameSession { return this.player != null; } + public void setPlatform(int platform) { + this.platform = platform; + } + + public String getPlatformName() { + var platform = Platform.forNumber(this.getPlatform()); + return platform != null ? platform.getName() : "Unknown"; + } + // Encryption public void setClientKey(RepeatedByte key) { diff --git a/src/main/java/emu/nebula/server/handlers/HandlerPlayerLoginReq.java b/src/main/java/emu/nebula/server/handlers/HandlerPlayerLoginReq.java index 183f632..56ec639 100644 --- a/src/main/java/emu/nebula/server/handlers/HandlerPlayerLoginReq.java +++ b/src/main/java/emu/nebula/server/handlers/HandlerPlayerLoginReq.java @@ -50,6 +50,9 @@ public class HandlerPlayerLoginReq extends NetHandler { var banInfo = banModule.getPlayerBanInfo(session.getPlayer().getUid()); return session.encodeMsg(NetMsgId.player_login_failed_ack, banInfo.toProto()); } + + // Set platform + session.setPlatform(req.getPlatformValue()); // Regenerate session token because we are switching encrpytion method Nebula.getGameContext().generateSessionToken(session);