diff options
-rw-r--r-- | src/main/java/de/cowtipper/cowlection/listener/skyblock/DungeonsListener.java | 15 | ||||
-rw-r--r-- | src/main/java/de/cowtipper/cowlection/search/GuiSearch.java | 12 |
2 files changed, 16 insertions, 11 deletions
diff --git a/src/main/java/de/cowtipper/cowlection/listener/skyblock/DungeonsListener.java b/src/main/java/de/cowtipper/cowlection/listener/skyblock/DungeonsListener.java index 1098f1e..edbadb0 100644 --- a/src/main/java/de/cowtipper/cowlection/listener/skyblock/DungeonsListener.java +++ b/src/main/java/de/cowtipper/cowlection/listener/skyblock/DungeonsListener.java @@ -10,6 +10,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.audio.SoundCategory; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.inventory.GuiChest; +import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.init.Blocks; @@ -36,6 +37,7 @@ import net.minecraftforge.event.entity.player.PlayerSetSpawnEvent; import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.gameevent.TickEvent; +import net.minecraftforge.fml.relauncher.ReflectionHelper; import net.minecraftforge.fml.relauncher.Side; import org.apache.commons.lang3.StringUtils; import org.lwjgl.input.Mouse; @@ -492,7 +494,7 @@ public class DungeonsListener { IInventory inventory = guiChest.inventorySlots.getSlot(0).inventory; if (inventory.getName().equals("Party Finder")) { // get dungeon floor nr when joining a dungeon party via party finder - Slot hoveredSlot = guiChest.getSlotUnderMouse(); + Slot hoveredSlot = getSlotUnderMouse(guiChest); if (hoveredSlot != null && hoveredSlot.getHasStack()) { // clicked on an item List<String> itemToolTip = hoveredSlot.getStack().getTooltip(Minecraft.getMinecraft().thePlayer, false); @@ -515,7 +517,7 @@ public class DungeonsListener { } } else if (inventory.getName().equals("Group Builder")) { // get dungeon floor nr when creating a dungeon party for party finder - Slot hoveredSlot = guiChest.getSlotUnderMouse(); + Slot hoveredSlot = getSlotUnderMouse(guiChest); if (hoveredSlot != null && hoveredSlot.getHasStack() && hoveredSlot.getStack().hasDisplayName()) { // clicked on an item String clickedItemName = EnumChatFormatting.getTextWithoutFormattingCodes(hoveredSlot.getStack().getDisplayName()); @@ -547,6 +549,15 @@ public class DungeonsListener { } } + private Slot getSlotUnderMouse(GuiChest guiChest) { + try { + return ReflectionHelper.getPrivateValue(GuiContainer.class, guiChest, "theSlot", "field_147006_u"); + } catch (ReflectionHelper.UnableToAccessFieldException e) { + e.printStackTrace(); + return null; + } + } + @SubscribeEvent public void onPlayerTick(TickEvent.PlayerTickEvent e) { if (e.phase != TickEvent.Phase.END && e.side != Side.CLIENT && e.type != TickEvent.Type.PLAYER) { diff --git a/src/main/java/de/cowtipper/cowlection/search/GuiSearch.java b/src/main/java/de/cowtipper/cowlection/search/GuiSearch.java index f9b68a1..1dc48c3 100644 --- a/src/main/java/de/cowtipper/cowlection/search/GuiSearch.java +++ b/src/main/java/de/cowtipper/cowlection/search/GuiSearch.java @@ -21,9 +21,9 @@ import net.minecraftforge.fml.client.config.GuiButtonExt; import net.minecraftforge.fml.client.config.GuiCheckBox; import net.minecraftforge.fml.client.config.GuiConfig; import net.minecraftforge.fml.client.config.IConfigElement; +import net.minecraftforge.fml.relauncher.ReflectionHelper; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.exception.ExceptionUtils; -import org.apache.commons.lang3.reflect.FieldUtils; import org.apache.commons.lang3.tuple.ImmutableTriple; import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; @@ -33,7 +33,6 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; -import java.lang.reflect.Field; import java.nio.file.Files; import java.nio.file.StandardCopyOption; import java.time.LocalDate; @@ -471,14 +470,9 @@ public class GuiSearch extends GuiScreen { } private float getScrollDistance() { - Field scrollDistanceField = FieldUtils.getField(GuiScrollingList.class, "scrollDistance", true); - if (scrollDistanceField == null) { - // scrollDistance field not found in class GuiScrollingList - return Float.MIN_VALUE; - } try { - return (float) scrollDistanceField.get(this); - } catch (IllegalAccessException e) { + return ReflectionHelper.getPrivateValue(GuiScrollingList.class, this, "scrollDistance"); + } catch (ReflectionHelper.UnableToAccessFieldException e) { e.printStackTrace(); return Float.MIN_VALUE; } |