From 53763d70fec0050f27be0465abf7bdaee4f05988 Mon Sep 17 00:00:00 2001 From: Brianna Date: Wed, 24 Apr 2019 03:42:29 -0400 Subject: [PATCH] Fix for Anvil GUI exception. --- .../ultimatekits/utils/gui/AbstractAnvilGUI.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/songoda/ultimatekits/utils/gui/AbstractAnvilGUI.java b/src/main/java/com/songoda/ultimatekits/utils/gui/AbstractAnvilGUI.java index 0bcbfe5..531eb72 100644 --- a/src/main/java/com/songoda/ultimatekits/utils/gui/AbstractAnvilGUI.java +++ b/src/main/java/com/songoda/ultimatekits/utils/gui/AbstractAnvilGUI.java @@ -178,16 +178,18 @@ public class AbstractAnvilGUI { int c = (int) nextContainerCounterMethod.invoke(entityPlayer); Constructor chatMessageConstructor = ChatMessageClass.getConstructor(String.class, Object[].class); + Object inventoryTitle = chatMessageConstructor.newInstance("Repairing", new Object[]{}); + Object packet; if (NMSUtil.getVersionNumber() > 13) { packet = PacketPlayOutOpenWindowClass .getConstructor(int.class, ContainersClass, IChatBaseComponentClass) - .newInstance(c, ContainersClass.getField("ANVIL").get(null), chatMessageConstructor.newInstance("Repairing", new Object[]{})); + .newInstance(c, ContainersClass.getField("ANVIL").get(null), inventoryTitle); } else { packet = PacketPlayOutOpenWindowClass .getConstructor(int.class, String.class, IChatBaseComponentClass, int.class) - .newInstance(c, "minecraft:anvil", chatMessageConstructor.newInstance("Repairing", new Object[]{}), 0); + .newInstance(c, "minecraft:anvil", inventoryTitle, 0); } NMSUtil.sendPacket(player, packet); @@ -199,6 +201,10 @@ public class AbstractAnvilGUI { NMSUtil.getField(ContainerClass, "windowId", true).set(activeContainerField.get(entityPlayer), c); Method addSlotListenerMethod = activeContainerField.get(entityPlayer).getClass().getMethod("addSlotListener", ICraftingClass); addSlotListenerMethod.invoke(activeContainerField.get(entityPlayer), entityPlayer); + + if (NMSUtil.getVersionNumber() > 13) { + ContainerClass.getMethod("setTitle", IChatBaseComponentClass).invoke(container, inventoryTitle); + } } } catch (Exception e) { e.printStackTrace();