diff --git a/CHANGELOG.md b/CHANGELOG.md index 23bc0b024..c1a7bb4f1 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ - Fixed Portable Grids not keeping their enchantments when placed (Darkere) - Shortened crafting text for the Russion translation to fix Grid overlays (yaroslav4167) - Fixed JEI hotkeys not working on fluid filter slots (raoulvdberge) +- Fixed crash when opening Crafter Manager with FTB Quests installed (raoulvdberge) ### 1.6.14 - Fixed server crash (raoulvdberge) diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerCrafterManager.java b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerCrafterManager.java index 5b6277bea..c42ef0596 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerCrafterManager.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerCrafterManager.java @@ -31,15 +31,15 @@ import java.util.function.Predicate; public class ContainerCrafterManager extends ContainerBase { public class CrafterManagerListener implements IContainerListener { - private IContainerListener base; + private EntityPlayerMP base; private boolean receivedContainerData; - public CrafterManagerListener(IContainerListener base) { + public CrafterManagerListener(EntityPlayerMP base) { this.base = base; } public EntityPlayerMP getPlayer() { - return (EntityPlayerMP) base; + return base; } @Override @@ -80,7 +80,11 @@ public class ContainerCrafterManager extends ContainerBase { @Override public void addListener(IContainerListener listener) { - super.addListener(new CrafterManagerListener(listener)); + if (listener instanceof EntityPlayerMP) { + listener = new CrafterManagerListener((EntityPlayerMP) listener); + } + + super.addListener(listener); } public List getListeners() { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageCrafterManagerRequestSlotData.java b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageCrafterManagerRequestSlotData.java index d55d2fc5c..f995c0728 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageCrafterManagerRequestSlotData.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageCrafterManagerRequestSlotData.java @@ -19,11 +19,13 @@ public class MessageCrafterManagerRequestSlotData extends MessageHandlerPlayerTo protected void handle(MessageCrafterManagerRequestSlotData message, EntityPlayerMP player) { if (player.openContainer instanceof ContainerCrafterManager) { for (IContainerListener listener : ((ContainerCrafterManager) player.openContainer).getListeners()) { - ContainerCrafterManager.CrafterManagerListener crafterCrafterManagerListener = (ContainerCrafterManager.CrafterManagerListener) listener; + if (listener instanceof ContainerCrafterManager.CrafterManagerListener) { + ContainerCrafterManager.CrafterManagerListener cmListener = (ContainerCrafterManager.CrafterManagerListener) listener; - if (crafterCrafterManagerListener.getPlayer() == player) { - crafterCrafterManagerListener.setReceivedContainerData(); - crafterCrafterManagerListener.sendAllContents(player.openContainer, player.openContainer.getInventory()); + if (cmListener.getPlayer() == player) { + cmListener.setReceivedContainerData(); + cmListener.sendAllContents(player.openContainer, player.openContainer.getInventory()); + } } } }