diff --git a/src/main/java/net/silentclient/client/mixin/mixins/AbstractClientPlayerMixin.java b/src/main/java/net/silentclient/client/mixin/mixins/AbstractClientPlayerMixin.java index 6bf364e..1012543 100644 --- a/src/main/java/net/silentclient/client/mixin/mixins/AbstractClientPlayerMixin.java +++ b/src/main/java/net/silentclient/client/mixin/mixins/AbstractClientPlayerMixin.java @@ -20,6 +20,7 @@ import net.silentclient.client.mixin.ducks.AbstractClientPlayerExt; import net.silentclient.client.mods.player.NickHiderMod; import net.silentclient.client.mods.render.AnimationsMod; import net.silentclient.client.mods.settings.CosmeticsMod; +import net.silentclient.client.utils.CustomSkin; import net.silentclient.client.utils.Players; import net.silentclient.client.utils.SCTextureManager; import net.silentclient.client.utils.types.PlayerResponse; @@ -55,6 +56,7 @@ public abstract class AbstractClientPlayerMixin implements AbstractClientPlayerE @Unique private PlayerResponse.Account silent$account; @Unique private String silent$capeType = "dynamic_curved"; @Unique private boolean silent$shouldersBool = true; + @Unique private CustomSkin silent$customSkin = new CustomSkin(); @Inject(method = "", at = @At("RETURN")) public void initCustom(World worldIn, GameProfile playerProfile, CallbackInfo ci) { @@ -92,8 +94,8 @@ public abstract class AbstractClientPlayerMixin implements AbstractClientPlayerE return; } - if(silent$getNameClear().toLowerCase().equals(Client.getInstance().getAccount().getUsername().toLowerCase()) && Client.getInstance().getAccount().getCustomSkin()) { - cir.setReturnValue(Client.getInstance().getAccount().getSkinType()); + if(Client.getInstance().getSettingsManager().getSettingByClass(CosmeticsMod.class, "Custom Skins").getValBoolean() && this.silent$getAccount() != null && this.silent$getAccount().getCustomSkin()) { + cir.setReturnValue(this.silent$getAccount().getSkinType()); cir.cancel(); } } @@ -106,22 +108,22 @@ public abstract class AbstractClientPlayerMixin implements AbstractClientPlayerE return; } - if(silent$getNameClear().toLowerCase().equals(Client.getInstance().getAccount().getUsername().toLowerCase()) && Client.getInstance().getAccount().getCustomSkin()) { - if(Client.getInstance().getCustomSkin().getLocation() == null && !Client.getInstance().getCustomSkin().isLoading()) { - Client.getInstance().getCustomSkin().setLoading(true); + if(Client.getInstance().getSettingsManager().getSettingByClass(CosmeticsMod.class, "Custom Skins").getValBoolean() && this.silent$getAccount() != null && this.silent$getAccount().getCustomSkin()) { + if(silent$customSkin.getLocation() == null && !silent$customSkin.isLoading()) { + silent$customSkin.setLoading(true); (new Thread("CustomSkinThread") { public void run() { Client.logger.info("Downloading Custom Skin"); - Client.getInstance().getCustomSkin().setImage(SCTextureManager.getImage("https://cdn.silentclient.net/skins/" + silent$nameClear.toLowerCase() + ".png")); + silent$customSkin.setImage(SCTextureManager.getImage("https://cdn.silentclient.net/skins/" + silent$nameClear.toLowerCase() + ".png")); } }).start(); } - if(Client.getInstance().getCustomSkin().getImage() != null && !Client.getInstance().getCustomSkin().isInitialized()) { - Client.getInstance().getCustomSkin().setLocation(Minecraft.getMinecraft().getTextureManager().getDynamicTextureLocation("custom_skin_" + new Random().nextLong(), new DynamicTexture(Client.getInstance().getCustomSkin().getImage()))); - Client.getInstance().getCustomSkin().setInitialized(true); + if(silent$customSkin.getImage() != null && !silent$customSkin.isInitialized()) { + silent$customSkin.setLocation(Minecraft.getMinecraft().getTextureManager().getDynamicTextureLocation("custom_skin_" + new Random().nextLong(), new DynamicTexture(silent$customSkin.getImage()))); + silent$customSkin.setInitialized(true); } - if(Client.getInstance().getCustomSkin().getLocation() != null) { - cir.setReturnValue(Client.getInstance().getCustomSkin().getLocation()); + if(silent$customSkin.getLocation() != null) { + cir.setReturnValue(silent$customSkin.getLocation()); cir.cancel(); } } diff --git a/src/main/java/net/silentclient/client/mods/settings/CosmeticsMod.java b/src/main/java/net/silentclient/client/mods/settings/CosmeticsMod.java index ea1df63..cc15599 100644 --- a/src/main/java/net/silentclient/client/mods/settings/CosmeticsMod.java +++ b/src/main/java/net/silentclient/client/mods/settings/CosmeticsMod.java @@ -35,6 +35,8 @@ public class CosmeticsMod extends Mod { this.addBooleanSetting("Bandanas", this, true); this.addBooleanSetting("Hats", this, true); this.addBooleanSetting("Shields", this, true); + + this.addBooleanSetting("Custom Skins", this, true); } @Override