From 74a09d7b0c45cc83a2967085a229cbaf9fcaa734 Mon Sep 17 00:00:00 2001 From: Sollace Date: Tue, 16 Jul 2019 09:20:40 +0200 Subject: [PATCH] Fixed crash when rendering player skulls for a player without a loaded skin --- src/main/java/com/minelittlepony/client/SkinsProxy.java | 6 ++++++ .../com/minelittlepony/client/hdskins/HDSkinsProxy.java | 2 ++ .../render/tileentities/skull/PlayerSkullRenderer.java | 3 ++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/minelittlepony/client/SkinsProxy.java b/src/main/java/com/minelittlepony/client/SkinsProxy.java index 44ce1b5b..0ec44d48 100644 --- a/src/main/java/com/minelittlepony/client/SkinsProxy.java +++ b/src/main/java/com/minelittlepony/client/SkinsProxy.java @@ -16,7 +16,13 @@ public class SkinsProxy { public Identifier getSkinTexture(GameProfile profile) { PlayerSkinProvider skins = MinecraftClient.getInstance().getSkinProvider(); + @Nullable MinecraftProfileTexture texture = skins.getTextures(profile).get(MinecraftProfileTexture.Type.SKIN); + + if (texture == null) { + return null; + } + return skins.loadSkin(texture, MinecraftProfileTexture.Type.SKIN); } } diff --git a/src/main/java/com/minelittlepony/client/hdskins/HDSkinsProxy.java b/src/main/java/com/minelittlepony/client/hdskins/HDSkinsProxy.java index b58214ee..76565a18 100644 --- a/src/main/java/com/minelittlepony/client/hdskins/HDSkinsProxy.java +++ b/src/main/java/com/minelittlepony/client/hdskins/HDSkinsProxy.java @@ -12,9 +12,11 @@ class HDSkinsProxy extends SkinsProxy { public Identifier getSkinTexture(GameProfile profile) { Identifier skin = HDSkins.getInstance().getTextures(profile).get(MinecraftProfileTexture.Type.SKIN); + if (skin != null) { return skin; } + return super.getSkinTexture(profile); } } diff --git a/src/main/java/com/minelittlepony/client/render/tileentities/skull/PlayerSkullRenderer.java b/src/main/java/com/minelittlepony/client/render/tileentities/skull/PlayerSkullRenderer.java index edf90949..e8d720a6 100644 --- a/src/main/java/com/minelittlepony/client/render/tileentities/skull/PlayerSkullRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/tileentities/skull/PlayerSkullRenderer.java @@ -37,11 +37,12 @@ public class PlayerSkullRenderer extends PonySkull { deadMau5.setVisible(profile != null && "deadmau5".equals(profile.getName())); if (profile != null) { - Identifier skin = SkinsProxy.instance.getSkinTexture(profile); + if (skin != null) { return skin; } + return DefaultSkinHelper.getTexture(PlayerEntity.getUuidFromProfile(profile)); }