From 60ece0cb469cf1692d1ce77e68c07bfca33d4d16 Mon Sep 17 00:00:00 2001 From: Sollace Date: Fri, 27 Jan 2023 11:46:23 +0000 Subject: [PATCH] Fixed legacy wearable skins using the body texture when they shouldn't be (Sorry, AJ, taixdermy is out of fashion) --- .../minelittlepony/client/hdskins/MineLPHDSkins.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/minelittlepony/client/hdskins/MineLPHDSkins.java b/src/main/java/com/minelittlepony/client/hdskins/MineLPHDSkins.java index e2666320..45e188dc 100644 --- a/src/main/java/com/minelittlepony/client/hdskins/MineLPHDSkins.java +++ b/src/main/java/com/minelittlepony/client/hdskins/MineLPHDSkins.java @@ -1,6 +1,8 @@ package com.minelittlepony.client.hdskins; import com.minelittlepony.api.pony.IPony; +import com.minelittlepony.api.pony.IPonyData; +import com.minelittlepony.api.pony.meta.Race; import com.minelittlepony.api.pony.meta.Wearable; import com.minelittlepony.client.MineLittlePony; import com.minelittlepony.client.SkinsProxy; @@ -101,8 +103,14 @@ public class MineLPHDSkins extends SkinsProxy implements ClientModInitializer { PlayerSkin main = dummy.getTextures().get(SkinType.SKIN); Wearable wearable = Wearable.REGISTRY.getOrDefault(type.getId(), Wearable.NONE); - if (wearable != Wearable.NONE && IPony.getManager().getPony(main.getId()).metadata().isWearing(wearable)) { - return Optional.of(main.getId()); + IPonyData metadata = IPony.getManager().getPony(main.getId()).metadata(); + if (wearable != Wearable.NONE && metadata.isWearing(wearable)) { + + if (wearable.isSaddlebags() && metadata.getRace() != Race.BATPONY) { + return Optional.of(main.getId()); + } + + return Optional.of(wearable.getDefaultTexture()); } }