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)
- 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)

View File

@@ -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<IContainerListener> getListeners() {

View File

@@ -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());
}
}
}
}