From 33390c66d435c1a458301380dcd3a26ebe6edf47 Mon Sep 17 00:00:00 2001 From: Matthew Messinger Date: Thu, 8 Dec 2016 04:02:22 -0500 Subject: [PATCH] Fix missing wing when using optifine. Why didn't I think of this earlier? --- .../mixin/MixinImageBufferDownload.java | 36 ++++--------------- 1 file changed, 7 insertions(+), 29 deletions(-) diff --git a/src/hdskins/java/com/voxelmodpack/hdskins/mixin/MixinImageBufferDownload.java b/src/hdskins/java/com/voxelmodpack/hdskins/mixin/MixinImageBufferDownload.java index c105f392..58be43b9 100644 --- a/src/hdskins/java/com/voxelmodpack/hdskins/mixin/MixinImageBufferDownload.java +++ b/src/hdskins/java/com/voxelmodpack/hdskins/mixin/MixinImageBufferDownload.java @@ -5,11 +5,8 @@ import net.minecraft.client.renderer.IImageBuffer; import net.minecraft.client.renderer.ImageBufferDownload; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.At.Shift; import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.Surrogate; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.spongepowered.asm.mixin.injection.callback.LocalCapture; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import java.awt.Graphics; import java.awt.image.BufferedImage; @@ -19,35 +16,16 @@ public abstract class MixinImageBufferDownload implements IImageBuffer { @Inject( 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) { + at = @At("RETURN"), + cancellable = true) + private void update(BufferedImage image, CallbackInfoReturnable ci) { // convert skins from mojang server + BufferedImage image2 = ci.getReturnValue(); 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, boolean isLegacy) { - // convert skins from mojang server if (isLegacy) { + Graphics graphics = image2.getGraphics(); HDSkinManager.INSTANCE.convertSkin(image2, graphics); + graphics.dispose(); } }