From 656c1470c8185ee5803858f64647145ab8fccb51 Mon Sep 17 00:00:00 2001 From: nexonerr Date: Tue, 15 Aug 2023 00:13:16 +0300 Subject: [PATCH] fix builder's glove and redstone pouch crashing in jars --- .../client/gui/ItemSorterScreen.java | 2 +- .../item/custom/BuildersGloveItem.java | 4 ++-- .../item/custom/RedstonePouchItem.java | 12 +++++++++--- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/github/manasmods/unordinary_basics/client/gui/ItemSorterScreen.java b/src/main/java/com/github/manasmods/unordinary_basics/client/gui/ItemSorterScreen.java index 91e5e2b6..79d70b29 100644 --- a/src/main/java/com/github/manasmods/unordinary_basics/client/gui/ItemSorterScreen.java +++ b/src/main/java/com/github/manasmods/unordinary_basics/client/gui/ItemSorterScreen.java @@ -103,7 +103,7 @@ public boolean keyPressed(int pKeyCode, int pScanCode, int pModifiers) { this.minecraft.player.closeContainer(); } - return !this.text.keyPressed(pKeyCode, pScanCode, pModifiers) && !this.text.canConsumeInput() ? super.keyPressed(pKeyCode, pScanCode, pModifiers) : true; + return this.text.keyPressed(pKeyCode, pScanCode, pModifiers) || this.text.canConsumeInput() || super.keyPressed(pKeyCode, pScanCode, pModifiers); } public void renderFg(PoseStack pPoseStack, int pMouseX, int pMouseY, float pPartialTick) { diff --git a/src/main/java/com/github/manasmods/unordinary_basics/item/custom/BuildersGloveItem.java b/src/main/java/com/github/manasmods/unordinary_basics/item/custom/BuildersGloveItem.java index dca04153..aba70275 100644 --- a/src/main/java/com/github/manasmods/unordinary_basics/item/custom/BuildersGloveItem.java +++ b/src/main/java/com/github/manasmods/unordinary_basics/item/custom/BuildersGloveItem.java @@ -123,8 +123,8 @@ public InteractionResult useOn(UseOnContext pContext) { int toPlace = (int) (Math.random() * (slotList.size())); BlockHitResult hitResult = null; try { - hitResult = (BlockHitResult) ObfuscationReflectionHelper.findMethod(pContext.getClass(), "getHitResult").invoke(pContext); - } catch (IllegalAccessException | InvocationTargetException e) { + hitResult = ObfuscationReflectionHelper.getPrivateValue(UseOnContext.class,pContext,"f_43705_"); + } catch (Exception e) { e.printStackTrace(); } diff --git a/src/main/java/com/github/manasmods/unordinary_basics/item/custom/RedstonePouchItem.java b/src/main/java/com/github/manasmods/unordinary_basics/item/custom/RedstonePouchItem.java index 500b6e23..883f6046 100644 --- a/src/main/java/com/github/manasmods/unordinary_basics/item/custom/RedstonePouchItem.java +++ b/src/main/java/com/github/manasmods/unordinary_basics/item/custom/RedstonePouchItem.java @@ -18,6 +18,7 @@ import net.minecraft.world.item.TooltipFlag; import net.minecraft.world.item.context.UseOnContext; import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; import net.minecraft.world.phys.BlockHitResult; import net.minecraftforge.common.capabilities.ICapabilityProvider; import net.minecraftforge.fml.util.ObfuscationReflectionHelper; @@ -39,6 +40,8 @@ public RedstonePouchItem(Properties properties) { @Override public InteractionResult useOn(UseOnContext pContext) { + if ((pContext.getLevel().isClientSide)) return InteractionResult.sidedSuccess(true); + AtomicReference result = new AtomicReference<>(InteractionResult.FAIL); //Block Place Function - from builder's glove @@ -48,8 +51,8 @@ public InteractionResult useOn(UseOnContext pContext) { BlockHitResult hitResult = null; try { - hitResult = (BlockHitResult) ObfuscationReflectionHelper.findMethod(pContext.getClass(),"getHitResult").invoke(pContext); - } catch (IllegalAccessException | InvocationTargetException e) { + hitResult = ObfuscationReflectionHelper.getPrivateValue(UseOnContext.class,pContext,"f_43705_"); + } catch (Exception e) { e.printStackTrace(); } @@ -58,7 +61,10 @@ public InteractionResult useOn(UseOnContext pContext) { UseOnContext customContext = new UseOnContext(pContext.getLevel(), pContext.getPlayer(), pContext.getHand(), blockStack, hitResult); result.set(blockStack.getItem().useOn(customContext)); - if (result.get() != InteractionResult.FAIL) handler.extractItem(RedstonePouchCapabilityProvider.getFirstNonEmptySlot(handler),1,false); + /*if (result.get() != InteractionResult.FAIL) { + handler.extractItem(RedstonePouchCapabilityProvider.getFirstNonEmptySlot(handler),1,false); + System.out.println("he"); + }*/ pouchItem.getOrCreateTag().put("inventory", ((ItemStackHandler) handler).serializeNBT()); } else {