From 2e917a8558866d81c8a03e969ba292a5d2159fbc Mon Sep 17 00:00:00 2001 From: Tech Date: Mon, 22 Dec 2025 07:04:04 -0500 Subject: [PATCH] publicize container id --- .../invui/internal/menu/CustomContainerMenu.java | 10 +++++++++- .../xyz/xenondevs/invui/window/AbstractWindow.java | 7 ++++++- .../main/java/xyz/xenondevs/invui/window/Window.java | 10 +++++++++- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/invui/src/main/java/xyz/xenondevs/invui/internal/menu/CustomContainerMenu.java b/invui/src/main/java/xyz/xenondevs/invui/internal/menu/CustomContainerMenu.java index 39b20315..d31b7e3d 100644 --- a/invui/src/main/java/xyz/xenondevs/invui/internal/menu/CustomContainerMenu.java +++ b/invui/src/main/java/xyz/xenondevs/invui/internal/menu/CustomContainerMenu.java @@ -631,7 +631,15 @@ public WindowEventListener getWindowEvents() { throw new IllegalStateException("Window is not set"); return (WindowEventListener) window; } - + + /** + * Gets the container ID (window ID) for the window + * @return the container id, or -1 if the window isn't a container + */ + public int getContainerId() { + return containerId; + } + /** * A proxy {@link AbstractContainerMenu} for intercepting carried item change and general bukkit interoperability. */ diff --git a/invui/src/main/java/xyz/xenondevs/invui/window/AbstractWindow.java b/invui/src/main/java/xyz/xenondevs/invui/window/AbstractWindow.java index 2c2235ed..721cc30c 100644 --- a/invui/src/main/java/xyz/xenondevs/invui/window/AbstractWindow.java +++ b/invui/src/main/java/xyz/xenondevs/invui/window/AbstractWindow.java @@ -703,7 +703,12 @@ public int getServerWindowState() { public int getClientWindowState() { return clientWindowState; } - + + @Override + public int getContainerId() { + return menu.getContainerId(); + } + @Override public void handlePong(int id) { clientWindowState = id; diff --git a/invui/src/main/java/xyz/xenondevs/invui/window/Window.java b/invui/src/main/java/xyz/xenondevs/invui/window/Window.java index 0da3d988..0834ef2b 100644 --- a/invui/src/main/java/xyz/xenondevs/invui/window/Window.java +++ b/invui/src/main/java/xyz/xenondevs/invui/window/Window.java @@ -301,7 +301,15 @@ default void incrementWindowState() { * @param handler The window state change handler to remove */ void removeWindowStateChangeHandler(Consumer handler); - + + /** + * Gets the container ID (window ID) for the window + * @return the container id, or -1 if the window isn't a container + */ + default int getContainerId() { + return -1; + } + /** * A {@link Window} builder. *