diff --git a/versions/mappings/forge-1.12.2-1.8.9.txt b/versions/mappings/forge-1.12.2-1.8.9.txt index 3576d0f43..6266eb762 100644 --- a/versions/mappings/forge-1.12.2-1.8.9.txt +++ b/versions/mappings/forge-1.12.2-1.8.9.txt @@ -15,4 +15,6 @@ net.minecraft.util.text.TextFormatting net.minecraft.util.EnumChatFormatting net.minecraft.client.renderer.entity.RenderLiving net.minecraft.client.renderer.entity.RendererLivingEntity +net.minecraft.util.math.RayTraceResult net.minecraft.util.MovingObjectPosition + org.objectweb.asm.commons.ClassRemapper org.objectweb.asm.commons.RemappingClassAdapter diff --git a/versions/src/main/java/org/polyfrost/oneconfig/internal/mixin/Mixin_PlayerInteractEvent_LeftAction.java b/versions/src/main/java/org/polyfrost/oneconfig/internal/mixin/Mixin_PlayerInteractEvent_LeftAction.java index c09ebb33a..520e94529 100644 --- a/versions/src/main/java/org/polyfrost/oneconfig/internal/mixin/Mixin_PlayerInteractEvent_LeftAction.java +++ b/versions/src/main/java/org/polyfrost/oneconfig/internal/mixin/Mixin_PlayerInteractEvent_LeftAction.java @@ -18,10 +18,27 @@ public class Mixin_PlayerInteractEvent_LeftAction { @Shadow public MovingObjectPosition objectMouseOver; @Shadow public EntityPlayerSP thePlayer; + @Shadow private int leftClickCounter; @Unique private PlayerInteractEvent lastAttackEvent; - @Inject(method = "clickMouse", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/entity/EntityPlayerSP;swingItem()V", shift = At.Shift.BEFORE), cancellable = true) + @Inject( + method = "clickMouse", + at = @At( + //#if MC >= 1.12.2 + //$$ value = "HEAD" + //#else + value = "INVOKE", + target = "Lnet/minecraft/client/entity/EntityPlayerSP;swingItem()V", + shift = At.Shift.BEFORE + //#endif + ), + cancellable = true + ) private void onPlayerAttackCallback(CallbackInfo ci) { + if (this.leftClickCounter > 0) { + return; + } + MovingObjectPosition rayCastedObject = this.objectMouseOver; PlayerInteractEvent.Type type = PlayerInteractEvent.Type.AIR; if (rayCastedObject != null) { diff --git a/versions/src/main/java/org/polyfrost/oneconfig/internal/mixin/Mixin_PlayerInteractEvent_RightAction.java b/versions/src/main/java/org/polyfrost/oneconfig/internal/mixin/Mixin_PlayerInteractEvent_RightAction.java index 3a2fb03ed..086743c34 100644 --- a/versions/src/main/java/org/polyfrost/oneconfig/internal/mixin/Mixin_PlayerInteractEvent_RightAction.java +++ b/versions/src/main/java/org/polyfrost/oneconfig/internal/mixin/Mixin_PlayerInteractEvent_RightAction.java @@ -17,7 +17,18 @@ public class Mixin_PlayerInteractEvent_RightAction { @Shadow public MovingObjectPosition objectMouseOver; @Shadow public EntityPlayerSP thePlayer; - @Inject(method = "rightClickMouse", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/player/InventoryPlayer;getCurrentItem()Lnet/minecraft/item/ItemStack;"), cancellable = true) + @Inject( + method = "rightClickMouse", + at = @At( + value = "INVOKE", + //#if MC >= 1.12.2 + //$$ target = "Lnet/minecraft/client/entity/EntityPlayerSP;getHeldItem(Lnet/minecraft/util/EnumHand;)Lnet/minecraft/item/ItemStack;" + //#else + target = "Lnet/minecraft/entity/player/InventoryPlayer;getCurrentItem()Lnet/minecraft/item/ItemStack;" + //#endif + ), + cancellable = true + ) private void onPlayerInteractCallback(CallbackInfo ci) { MovingObjectPosition rayCastedObject = this.objectMouseOver; PlayerInteractEvent.Type type = PlayerInteractEvent.Type.AIR;