Fixed crash when opening Crafter Manager with FTB Quests installed. Fixes #2226

This commit is contained in:
raoulvdberge
2019-07-21 11:43:38 +02:00
parent 5bc750812e
commit 3408f09213
3 changed files with 15 additions and 8 deletions

View File

@@ -6,6 +6,7 @@
- Fixed Portable Grids not keeping their enchantments when placed (Darkere) - Fixed Portable Grids not keeping their enchantments when placed (Darkere)
- Shortened crafting text for the Russion translation to fix Grid overlays (yaroslav4167) - Shortened crafting text for the Russion translation to fix Grid overlays (yaroslav4167)
- Fixed JEI hotkeys not working on fluid filter slots (raoulvdberge) - Fixed JEI hotkeys not working on fluid filter slots (raoulvdberge)
- Fixed crash when opening Crafter Manager with FTB Quests installed (raoulvdberge)
### 1.6.14 ### 1.6.14
- Fixed server crash (raoulvdberge) - Fixed server crash (raoulvdberge)

View File

@@ -31,15 +31,15 @@ import java.util.function.Predicate;
public class ContainerCrafterManager extends ContainerBase { public class ContainerCrafterManager extends ContainerBase {
public class CrafterManagerListener implements IContainerListener { public class CrafterManagerListener implements IContainerListener {
private IContainerListener base; private EntityPlayerMP base;
private boolean receivedContainerData; private boolean receivedContainerData;
public CrafterManagerListener(IContainerListener base) { public CrafterManagerListener(EntityPlayerMP base) {
this.base = base; this.base = base;
} }
public EntityPlayerMP getPlayer() { public EntityPlayerMP getPlayer() {
return (EntityPlayerMP) base; return base;
} }
@Override @Override
@@ -80,7 +80,11 @@ public class ContainerCrafterManager extends ContainerBase {
@Override @Override
public void addListener(IContainerListener listener) { public void addListener(IContainerListener listener) {
super.addListener(new CrafterManagerListener(listener)); if (listener instanceof EntityPlayerMP) {
listener = new CrafterManagerListener((EntityPlayerMP) listener);
}
super.addListener(listener);
} }
public List<IContainerListener> getListeners() { public List<IContainerListener> getListeners() {

View File

@@ -19,11 +19,13 @@ public class MessageCrafterManagerRequestSlotData extends MessageHandlerPlayerTo
protected void handle(MessageCrafterManagerRequestSlotData message, EntityPlayerMP player) { protected void handle(MessageCrafterManagerRequestSlotData message, EntityPlayerMP player) {
if (player.openContainer instanceof ContainerCrafterManager) { if (player.openContainer instanceof ContainerCrafterManager) {
for (IContainerListener listener : ((ContainerCrafterManager) player.openContainer).getListeners()) { 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) { if (cmListener.getPlayer() == player) {
crafterCrafterManagerListener.setReceivedContainerData(); cmListener.setReceivedContainerData();
crafterCrafterManagerListener.sendAllContents(player.openContainer, player.openContainer.getInventory()); cmListener.sendAllContents(player.openContainer, player.openContainer.getInventory());
}
} }
} }
} }