From f7a03b3c7f5c0ffbc278a46e44f7b1d6e1ed9a23 Mon Sep 17 00:00:00 2001 From: Deftu Date: Wed, 25 Dec 2024 18:00:29 +0200 Subject: [PATCH] Forge is really and truly evil and shouldn't exist :) --- versions/mappings/forge-1.12.2-1.8.9.txt | 1 + versions/mappings/forge-1.17.1-1.16.5.txt | 7 ++++++ versions/mappings/forge-1.18.2-1.17.1.txt | 2 ++ .../Mixin_PlayerInteractEvent_LeftAction.java | 24 ++++++++++++++++-- ...Mixin_PlayerInteractEvent_RightAction.java | 25 +++++++++++++++++-- 5 files changed, 55 insertions(+), 4 deletions(-) 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 6266eb762..9ed260d85 100644 --- a/versions/mappings/forge-1.12.2-1.8.9.txt +++ b/versions/mappings/forge-1.12.2-1.8.9.txt @@ -16,5 +16,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 +net.minecraft.util.math.RayTraceResult$Type net.minecraft.util.MovingObjectPosition$MovingObjectType org.objectweb.asm.commons.ClassRemapper org.objectweb.asm.commons.RemappingClassAdapter diff --git a/versions/mappings/forge-1.17.1-1.16.5.txt b/versions/mappings/forge-1.17.1-1.16.5.txt index 0ab46e1d0..fdd558dbd 100644 --- a/versions/mappings/forge-1.17.1-1.16.5.txt +++ b/versions/mappings/forge-1.17.1-1.16.5.txt @@ -1,3 +1,10 @@ +net.minecraft.client.Minecraft hitResult objectMouseOver +net.minecraft.client.Minecraft startAttack() clickMouse() +net.minecraft.client.Minecraft continueAttack() sendClickBlockToController() +net.minecraft.client.Minecraft startUseItem() rightClickMouse() + +net.minecraft.world.phys.HitResult net.minecraft.util.math.RayTraceResult + com.mojang.blaze3d.pipeline.RenderTarget blitToScreen() framebufferRender() com.mojang.blaze3d.pipeline.RenderTarget net.minecraft.client.shader.Framebuffer diff --git a/versions/mappings/forge-1.18.2-1.17.1.txt b/versions/mappings/forge-1.18.2-1.17.1.txt index 90b8b98ab..3674e8c75 100644 --- a/versions/mappings/forge-1.18.2-1.17.1.txt +++ b/versions/mappings/forge-1.18.2-1.17.1.txt @@ -1,3 +1,5 @@ +net.minecraft.client.Minecraft missTime leftClickCounter + net.minecraftforge.client.event.ClientPlayerNetworkEvent getConnection() getNetworkManager() net.minecraftforge.client.event.ScreenOpenEvent getScreen() getGui() 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 520e94529..c3a598ed2 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 @@ -1,5 +1,9 @@ package org.polyfrost.oneconfig.internal.mixin; +//#if MC >= 1.18.2 +//$$ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +//#endif + import net.minecraft.client.Minecraft; import net.minecraft.client.entity.EntityPlayerSP; import net.minecraft.util.MovingObjectPosition; @@ -34,7 +38,13 @@ public class Mixin_PlayerInteractEvent_LeftAction { ), cancellable = true ) - private void onPlayerAttackCallback(CallbackInfo ci) { + private void onPlayerAttackCallback( + //#if MC >= 1.18.2 + //$$ CallbackInfoReturnable cir + //#else + CallbackInfo ci + //#endif + ) { if (this.leftClickCounter > 0) { return; } @@ -42,7 +52,13 @@ private void onPlayerAttackCallback(CallbackInfo ci) { MovingObjectPosition rayCastedObject = this.objectMouseOver; PlayerInteractEvent.Type type = PlayerInteractEvent.Type.AIR; if (rayCastedObject != null) { - switch (rayCastedObject.typeOfHit) { + MovingObjectPosition.MovingObjectType typeOfHit = + //#if MC >= 1.16.5 + //$$ rayCastedObject.getType(); + //#else + rayCastedObject.typeOfHit; + //#endif + switch (typeOfHit) { case BLOCK: type = PlayerInteractEvent.Type.BLOCK; break; @@ -55,7 +71,11 @@ private void onPlayerAttackCallback(CallbackInfo ci) { lastAttackEvent = new PlayerInteractEvent(this.thePlayer, PlayerInteractEvent.Action.LEFT, type); EventManager.INSTANCE.post(lastAttackEvent); if (lastAttackEvent.cancelled) { + //#if MC >= 1.18.2 + //$$ cir.setReturnValue(false); + //#else ci.cancel(); + //#endif } } 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 086743c34..7ae39da4b 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 @@ -21,7 +21,22 @@ public class Mixin_PlayerInteractEvent_RightAction { method = "rightClickMouse", at = @At( value = "INVOKE", - //#if MC >= 1.12.2 + //#if MC >= 1.16.5 + //#if FABRIC + //$$ target = "Lnet/minecraft/client/network/ClientPlayerEntity;getStackInHand(Lnet/minecraft/util/Hand;)Lnet/minecraft/item/ItemStack;" + //#else + //#if MC >= 1.19.4 + //$$ target = "Lnet/minecraftforge/client/ForgeHooksClient;onClickInput(ILnet/minecraft/client/KeyMapping;Lnet/minecraft/world/InteractionHand;)Lnet/minecraftforge/client/event/InputEvent$InteractionKeyMappingTriggered;", + //#elseif MC >= 1.18.2 + //$$ target = "Lnet/minecraftforge/client/ForgeHooksClient;onClickInput(ILnet/minecraft/client/KeyMapping;Lnet/minecraft/world/InteractionHand;)Lnet/minecraftforge/client/event/InputEvent$ClickInputEvent;", + //#elseif MC >= 1.17.1 + //$$ target = "Lnet/minecraftforge/client/ForgeHooksClient;onClickInput(ILnet/minecraft/client/KeyMapping;Lnet/minecraft/world/InteractionHand;)Lnet/minecraftforge/client/event/InputEvent$ClickInputEvent;", + //#else + //$$ target = "Lnet/minecraftforge/client/ForgeHooksClient;onClickInput(ILnet/minecraft/client/settings/KeyBinding;Lnet/minecraft/util/Hand;)Lnet/minecraftforge/client/event/InputEvent$ClickInputEvent;", + //#endif + //$$ remap = false + //#endif + //#elseif 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;" @@ -33,7 +48,13 @@ private void onPlayerInteractCallback(CallbackInfo ci) { MovingObjectPosition rayCastedObject = this.objectMouseOver; PlayerInteractEvent.Type type = PlayerInteractEvent.Type.AIR; if (rayCastedObject != null) { - switch (rayCastedObject.typeOfHit) { + MovingObjectPosition.MovingObjectType typeOfHit = + //#if MC >= 1.16.5 + //$$ rayCastedObject.getType(); + //#else + rayCastedObject.typeOfHit; + //#endif + switch (typeOfHit) { case BLOCK: type = PlayerInteractEvent.Type.BLOCK; break;