Only notify debuggers that parsing GameProfile data failed and use the default skin and cape
@@ -67,6 +67,7 @@ public class SkinUtils {
private boolean alex;
public static GameProfileData from(GameProfile profile) {
+ try {
GameProfile.Property skinProperty = profile.getProperty("textures");
JsonObject skinObject = SkinProvider.GSON.fromJson(new String(Base64.getDecoder().decode(skinProperty.getValue()), Charsets.UTF_8), JsonObject.class);
@@ -84,6 +85,11 @@ public class SkinUtils {
}
return new GameProfileData(skinUrl, capeUrl, isAlex);
+ } catch (Exception exception) {
+ // return default skin with default cape when texture data is invalid
+ Geyser.getLogger().debug("Got invalid texture data for " + profile.getName() + " " + exception.getMessage());
+ return new GameProfileData("", "", false);
+ }
}
}
