diff --git a/src/hdskins/java/com/voxelmodpack/hdskins/mixin/MixinImageBufferDownload.java b/src/hdskins/java/com/voxelmodpack/hdskins/mixin/MixinImageBufferDownload.java index 242c0dec..6ebbdb44 100644 --- a/src/hdskins/java/com/voxelmodpack/hdskins/mixin/MixinImageBufferDownload.java +++ b/src/hdskins/java/com/voxelmodpack/hdskins/mixin/MixinImageBufferDownload.java @@ -20,25 +20,35 @@ import net.minecraft.client.renderer.ImageBufferDownload; public abstract class MixinImageBufferDownload implements IImageBuffer { @Inject( - method = "parseUserSkin", - locals = LocalCapture.CAPTURE_FAILSOFT, + method = "parseUserSkin(Ljava/awt/image/BufferedImage;)Ljava/awt/image/BufferedImage;", + locals = LocalCapture.CAPTURE_FAILEXCEPTION, at = @At( value = "INVOKE", shift = Shift.BEFORE, target = "Ljava/awt/Graphics;dispose()V", remap = false)) - private void update(BufferedImage image, CallbackInfo ci, BufferedImage image2, Graphics graphics) { + private void update(BufferedImage image, CallbackInfo ci, BufferedImage image2) { // convert skins from mojang server - if (image.getHeight() == 32) { + boolean isLegacy = image.getHeight() == 32; + Graphics graphics = image2.getGraphics(); + if (isLegacy) { + HDSkinManager.INSTANCE.convertSkin(image2, graphics); + } + } + + // development + @Surrogate + private void update(BufferedImage image, CallbackInfo ci, BufferedImage image2, Graphics graphics, boolean isLegacy) { + if (isLegacy) { HDSkinManager.INSTANCE.convertSkin(image2, graphics); } } // for optifine @Surrogate - private void update(BufferedImage image, CallbackInfo ci, int w, int h, int k, BufferedImage image2, Graphics graphics) { + private void update(BufferedImage image, CallbackInfo ci, int w, int h, int k, BufferedImage image2, Graphics graphics, boolean isLegacy) { // convert skins from mojang server - if (image.getHeight() == 32) { + if (isLegacy) { HDSkinManager.INSTANCE.convertSkin(image2, graphics); } }