diff --git a/src/main/java/cn/nukkit/utils/ClientChainData.java b/src/main/java/cn/nukkit/utils/ClientChainData.java index dbb1fac22da..5a99ab58862 100644 --- a/src/main/java/cn/nukkit/utils/ClientChainData.java +++ b/src/main/java/cn/nukkit/utils/ClientChainData.java @@ -3,6 +3,7 @@ import cn.nukkit.network.encryption.EncryptionUtils; import cn.nukkit.network.protocol.LoginPacket; import com.google.gson.Gson; +import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.reflect.TypeToken; import com.nimbusds.jose.JWSObject; @@ -249,7 +250,11 @@ private void decodeChainData() { if (extra.has("displayName")) this.username = extra.get("displayName").getAsString(); if (extra.has("identity")) this.clientUUID = UUID.fromString(extra.get("identity").getAsString()); if (extra.has("XUID")) this.xuid = extra.get("XUID").getAsString(); - if (extra.has("titleId")) this.titleId = extra.get("titleId").getAsString(); + + JsonElement titleIdElement = extra.get("titleId"); + if (titleIdElement != null && !titleIdElement.isJsonNull()) { + this.titleId = titleIdElement.getAsString(); + } } if (chainMap.has("identityPublicKey")) {