From 90c4ea78a7285aa734e94400ec7f75e5b2f8ef0e Mon Sep 17 00:00:00 2001 From: chris Date: Thu, 24 Aug 2023 23:32:25 +0200 Subject: [PATCH] Don't throw errors when loading chunks with invalid skulls (#4081) * Don't throw errors with invalid skulls * Move IllegalArgumentException check to loadFromJson() method --- .../main/java/org/geysermc/geyser/skin/SkinManager.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/org/geysermc/geyser/skin/SkinManager.java b/core/src/main/java/org/geysermc/geyser/skin/SkinManager.java index 79f181636..f7d6d7510 100644 --- a/core/src/main/java/org/geysermc/geyser/skin/SkinManager.java +++ b/core/src/main/java/org/geysermc/geyser/skin/SkinManager.java @@ -278,7 +278,14 @@ public class SkinManager { } public static GameProfileData loadFromJson(String encodedJson) throws IOException, IllegalArgumentException { - JsonNode skinObject = GeyserImpl.JSON_MAPPER.readTree(new String(Base64.getDecoder().decode(encodedJson), StandardCharsets.UTF_8)); + JsonNode skinObject; + try { + skinObject = GeyserImpl.JSON_MAPPER.readTree(new String(Base64.getDecoder().decode(encodedJson), StandardCharsets.UTF_8)); + } catch (IllegalArgumentException e) { + GeyserImpl.getInstance().getLogger().debug("Invalid base64 encoded skin entry: " + encodedJson); + return null; + } + JsonNode textures = skinObject.get("textures"); if (textures == null) {