From ccbe5a8e0f52f2bcfeaeae927d140e86d6bb9902 Mon Sep 17 00:00:00 2001 From: NichtStudioCode <51272202+NichtStudioCode@users.noreply.github.com> Date: Sat, 11 Sep 2021 21:19:09 +0200 Subject: [PATCH] Update BaseWindow.java --- .../de/studiocode/invui/window/impl/BaseWindow.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/InvUI/src/main/java/de/studiocode/invui/window/impl/BaseWindow.java b/InvUI/src/main/java/de/studiocode/invui/window/impl/BaseWindow.java index ddad0b9..e7c63f2 100644 --- a/InvUI/src/main/java/de/studiocode/invui/window/impl/BaseWindow.java +++ b/InvUI/src/main/java/de/studiocode/invui/window/impl/BaseWindow.java @@ -175,6 +175,8 @@ public abstract class BaseWindow implements Window { @Override public void close(boolean closeForViewer) { + if (closed) return; + closed = true; WindowManager.getInstance().removeWindow(this); @@ -199,10 +201,12 @@ public abstract class BaseWindow implements Window { @Override public void closeForViewer() { closeable = true; - // clone list to prevent ConcurrentModificationException - new ArrayList<>(getInventories()[0].getViewers()).forEach(HumanEntity::closeInventory); - handleClosed(); + Player viewer = getCurrentViewer(); + if (viewer != null) { + viewer.closeInventory(); + handleClosed(); + } } @Override