Fix rare NPE in skin handling code (#3357)

This commit is contained in:
Kevin Ludwig 2022-10-20 20:17:08 +02:00 committed by GitHub
parent ece1b2a8ce
commit e8764c6a81
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -258,21 +258,26 @@ public class SkinManager {
JsonNode skinObject = GeyserImpl.JSON_MAPPER.readTree(new String(Base64.getDecoder().decode(encodedJson), StandardCharsets.UTF_8));
JsonNode textures = skinObject.get("textures");
if (textures != null) {
JsonNode skinTexture = textures.get("SKIN");
String skinUrl = skinTexture.get("url").asText().replace("http://", "https://");
boolean isAlex = skinTexture.has("metadata");
String capeUrl = null;
JsonNode capeTexture = textures.get("CAPE");
if (capeTexture != null) {
capeUrl = capeTexture.get("url").asText().replace("http://", "https://");
}
return new GameProfileData(skinUrl, capeUrl, isAlex);
if (textures == null) {
return null;
}
return null;
JsonNode skinTexture = textures.get("SKIN");
if (skinTexture == null) {
return null;
}
String skinUrl = skinTexture.get("url").asText().replace("http://", "https://");
boolean isAlex = skinTexture.has("metadata");
String capeUrl = null;
JsonNode capeTexture = textures.get("CAPE");
if (capeTexture != null) {
capeUrl = capeTexture.get("url").asText().replace("http://", "https://");
}
return new GameProfileData(skinUrl, capeUrl, isAlex);
}
/**