diff --git a/src/main/java/de/studiocode/invui/item/Item.java b/src/main/java/de/studiocode/invui/item/Item.java index 8175d89..d48f6d5 100644 --- a/src/main/java/de/studiocode/invui/item/Item.java +++ b/src/main/java/de/studiocode/invui/item/Item.java @@ -36,9 +36,11 @@ public interface Item { void removeWindow(Window window); /** - * Gets all the {@link Window}s the {@link Item} is displayed in. + * Gets an immutable {@link Set} of all the {@link Window}s where this + * {@link Item} is displayed in. * - * @return The {@link Set} of {@link Window}s the {@link Item} is displayed in. + * @return An immutable view of the {@link Set} of all the {@link Window}s + * where this {@link Item} is displayed in. */ Set getWindows(); diff --git a/src/main/java/de/studiocode/invui/item/impl/BaseItem.java b/src/main/java/de/studiocode/invui/item/impl/BaseItem.java index 1e6631a..833b350 100644 --- a/src/main/java/de/studiocode/invui/item/impl/BaseItem.java +++ b/src/main/java/de/studiocode/invui/item/impl/BaseItem.java @@ -3,6 +3,7 @@ package de.studiocode.invui.item.impl; import de.studiocode.invui.item.Item; import de.studiocode.invui.window.Window; +import java.util.Collections; import java.util.HashSet; import java.util.Set; @@ -25,7 +26,7 @@ public abstract class BaseItem implements Item { @Override public Set getWindows() { - return windows; + return Collections.unmodifiableSet(windows); } @Override diff --git a/src/main/java/de/studiocode/invui/virtualinventory/VirtualInventory.java b/src/main/java/de/studiocode/invui/virtualinventory/VirtualInventory.java index a3042c8..1ea9a98 100644 --- a/src/main/java/de/studiocode/invui/virtualinventory/VirtualInventory.java +++ b/src/main/java/de/studiocode/invui/virtualinventory/VirtualInventory.java @@ -550,6 +550,16 @@ public class VirtualInventory implements ConfigurationSerializable { windows.remove(window); } + /** + * Gets an immutable view of the {@link Set} that contains all the {@link Window}s that + * display this {@link VirtualInventory}. + * + * @return An UnmodifiableSet of all the {@link Window}s that show this {@link VirtualInventory}. + */ + public Set getWindows() { + return Collections.unmodifiableSet(windows); + } + /** * Notifies all {@link Window}s displaying this {@link VirtualInventory} to update their * representative {@link ItemStack}s.