Fix Window not set as parent of GUI after reopening

This commit is contained in:
NichtStudioCode 2024-03-31 10:31:35 +02:00
parent 954df03ea2
commit 72a5639b2d
4 changed files with 3 additions and 10 deletions

@ -24,8 +24,6 @@ public abstract class AbstractMergedWindow extends AbstractDoubleWindow {
public AbstractMergedWindow(Player player, ComponentWrapper title, AbstractGui gui, Inventory upperInventory, boolean closeable) { public AbstractMergedWindow(Player player, ComponentWrapper title, AbstractGui gui, Inventory upperInventory, boolean closeable) {
super(player, title, gui.getSize(), upperInventory, closeable); super(player, title, gui.getSize(), upperInventory, closeable);
this.gui = gui; this.gui = gui;
gui.addParent(this);
} }
@Override @Override

@ -32,8 +32,6 @@ public abstract class AbstractSingleWindow extends AbstractWindow {
this.gui = gui; this.gui = gui;
this.size = gui.getSize(); this.size = gui.getSize();
this.inventory = inventory; this.inventory = inventory;
gui.addParent(this);
} }
@Override @Override

@ -27,9 +27,6 @@ public abstract class AbstractSplitWindow extends AbstractDoubleWindow {
super(player, title, upperGui.getSize() + lowerGui.getSize(), upperInventory, closeable); super(player, title, upperGui.getSize() + lowerGui.getSize(), upperInventory, closeable);
this.upperGui = upperGui; this.upperGui = upperGui;
this.lowerGui = lowerGui; this.lowerGui = lowerGui;
upperGui.addParent(this);
lowerGui.addParent(this);
} }
@Override @Override

@ -261,6 +261,7 @@ public abstract class AbstractWindow implements Window, GuiParent {
hasHandledClose = false; hasHandledClose = false;
initItems(); initItems();
WindowManager.getInstance().addWindow(this); WindowManager.getInstance().addWindow(this);
for (AbstractGui gui : getGuis()) gui.addParent(this);
openInventory(viewer); openInventory(viewer);
} }
@ -330,9 +331,8 @@ public abstract class AbstractWindow implements Window, GuiParent {
((SlotElement.InventorySlotElement) slotElement).getInventory().removeWindow(this); ((SlotElement.InventorySlotElement) slotElement).getInventory().removeWindow(this);
} }
}); });
Arrays.stream(getGuis()) for (AbstractGui gui : getGuis()) gui.removeParent(this);
.forEach(gui -> gui.removeParent(this));
} }
@Override @Override