From bc2e6642ddb4f38fed21bcf5ec066c8f2195a1a4 Mon Sep 17 00:00:00 2001 From: GeorgeRNG Date: Sat, 16 Dec 2023 13:13:39 +0000 Subject: [PATCH] remove reflection --- .../mod/features/keybinds/Keybinds.java | 1 + .../mod/mixin/inventory/MItemStack.java | 13 +--------- .../mod/mixin/inventory/MKeyboardHandler.java | 26 +++++++++++++++++++ src/main/resources/recodeLegacy.mixins.json | 1 + 4 files changed, 29 insertions(+), 12 deletions(-) create mode 100644 src/main/java/io/github/homchom/recode/mod/mixin/inventory/MKeyboardHandler.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/keybinds/Keybinds.java b/src/main/java/io/github/homchom/recode/mod/features/keybinds/Keybinds.java index cb12293f0..16cdc8145 100644 --- a/src/main/java/io/github/homchom/recode/mod/features/keybinds/Keybinds.java +++ b/src/main/java/io/github/homchom/recode/mod/features/keybinds/Keybinds.java @@ -24,6 +24,7 @@ public class Keybinds implements ClientModInitializer { final Minecraft mc = Minecraft.getInstance(); + public static boolean showingTags = false; public static KeyMapping showTags; @Override diff --git a/src/main/java/io/github/homchom/recode/mod/mixin/inventory/MItemStack.java b/src/main/java/io/github/homchom/recode/mod/mixin/inventory/MItemStack.java index b1d179b70..6f563c900 100644 --- a/src/main/java/io/github/homchom/recode/mod/mixin/inventory/MItemStack.java +++ b/src/main/java/io/github/homchom/recode/mod/mixin/inventory/MItemStack.java @@ -1,17 +1,11 @@ package io.github.homchom.recode.mod.mixin.inventory; -import com.mojang.blaze3d.platform.InputConstants; -import com.mojang.blaze3d.platform.InputConstants.Key; import io.github.homchom.recode.mod.features.keybinds.Keybinds; -import net.fabricmc.loader.api.FabricLoader; -import net.minecraft.client.KeyMapping; -import net.minecraft.client.Minecraft; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.TooltipFlag; -import org.apache.commons.lang3.reflect.FieldUtils; import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -35,13 +29,8 @@ private void getTooltipLines(Player player, TooltipFlag context, if (player == null) return; try { - String cname = FabricLoader.getInstance().isDevelopmentEnvironment() ? "key" : "field_1655"; - int keycode = ((Key) FieldUtils.getField(KeyMapping.class,cname,true).get(Keybinds.showTags)).getValue(); - - if (keycode == -1) return; - - if (InputConstants.isKeyDown(Minecraft.getInstance().getWindow().getWindow(),keycode)) { + if (Keybinds.showingTags) { List t = cir.getReturnValue(); CompoundTag tags = getTagElement("PublicBukkitValues"); diff --git a/src/main/java/io/github/homchom/recode/mod/mixin/inventory/MKeyboardHandler.java b/src/main/java/io/github/homchom/recode/mod/mixin/inventory/MKeyboardHandler.java new file mode 100644 index 000000000..f0f0a438f --- /dev/null +++ b/src/main/java/io/github/homchom/recode/mod/mixin/inventory/MKeyboardHandler.java @@ -0,0 +1,26 @@ +package io.github.homchom.recode.mod.mixin.inventory; + +import io.github.homchom.recode.mod.features.keybinds.Keybinds; +import net.minecraft.client.KeyboardHandler; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(KeyboardHandler.class) +public class MKeyboardHandler { + @Inject(method = "keyPress", at = @At(value = "HEAD")) + public void onKeyPressed(long l, int i, int j, int k, int m, CallbackInfo ci) { + if(Keybinds.showTags.matches(i,j)) { + if (k != 1 && k != 2) { + if (k == 0) { + // released + Keybinds.showingTags = false; + } + } else { + // pressed + Keybinds.showingTags = true; + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/recodeLegacy.mixins.json b/src/main/resources/recodeLegacy.mixins.json index 316bb5469..e4aeb98a6 100644 --- a/src/main/resources/recodeLegacy.mixins.json +++ b/src/main/resources/recodeLegacy.mixins.json @@ -24,6 +24,7 @@ "render.screen.MOptionsScreen" ], "client": [ + "inventory.MKeyboardHandler", "render.MAbstractContainerScreen" ], "server": [],