diff --git a/inventory-framework-anvil-input/src/main/java/me/devnatan/inventoryframework/AnvilInputNMS.java b/inventory-framework-anvil-input/src/main/java/me/devnatan/inventoryframework/AnvilInputNMS.java
index 934b75a05..7fe7f5d71 100644
--- a/inventory-framework-anvil-input/src/main/java/me/devnatan/inventoryframework/AnvilInputNMS.java
+++ b/inventory-framework-anvil-input/src/main/java/me/devnatan/inventoryframework/AnvilInputNMS.java
@@ -40,7 +40,7 @@ class AnvilInputNMS {
private static final MethodHandle SET_PLAYER_ACTIVE_CONTAINER;
private static final MethodHandle ADD_CONTAINER_SLOT_LISTENER;
private static final MethodHandle INIT_MENU;
- private static final MethodHandle GET_TOP_INVENTORY;
+ private static final MethodHandle GET_TOP_INVENTORY;
// FIELDS
private static final MethodHandle CONTAINER_CHECK_REACHABLE;
@@ -75,7 +75,8 @@ class AnvilInputNMS {
CONTAINER, "a", MethodType.methodType(void.class, getNMSClass("world.inventory.ICrafting")));
INIT_MENU = getMethod(ENTITY_PLAYER, "a", MethodType.methodType(void.class, CONTAINER));
- GET_TOP_INVENTORY = getMethod(InventoryView.class, "getTopInventory", MethodType.methodType(Inventory.class));
+ GET_TOP_INVENTORY =
+ getMethod(InventoryView.class, "getTopInventory", MethodType.methodType(Inventory.class));
} catch (Exception exception) {
throw new RuntimeException(
"Unsupported version for Anvil Input feature: " + ReflectionUtils.getVersionInformation(),
@@ -95,7 +96,8 @@ public static Inventory open(Player player, Object title, String initialInput) {
final Object anvilContainer = ANVIL_CONSTRUCTOR.invoke(windowId, GET_PLAYER_INVENTORY.invoke(entityPlayer));
CONTAINER_CHECK_REACHABLE.invoke(anvilContainer, false);
- final AnvilInventory inventory = (AnvilInventory) GET_TOP_INVENTORY.invoke(InventoryUpdate.getBukkitView.invoke(anvilContainer));
+ final AnvilInventory inventory =
+ (AnvilInventory) GET_TOP_INVENTORY.invoke(InventoryUpdate.getBukkitView.invoke(anvilContainer));
inventory.setMaximumRepairCost(0);
diff --git a/inventory-framework-api/src/main/java/me/devnatan/inventoryframework/context/IFCloseContext.java b/inventory-framework-api/src/main/java/me/devnatan/inventoryframework/context/IFCloseContext.java
index ff1aa6b74..f406e64ce 100644
--- a/inventory-framework-api/src/main/java/me/devnatan/inventoryframework/context/IFCloseContext.java
+++ b/inventory-framework-api/src/main/java/me/devnatan/inventoryframework/context/IFCloseContext.java
@@ -39,10 +39,10 @@ public interface IFCloseContext extends IFConfinedContext {
@NotNull
ViewContainer getContainer();
- /**
- * This is an internal inventory-framework API that should not be used from outside of
- * this library. No compatibility guarantees are provided.
- */
- @ApiStatus.Internal
- Object getPlatformEvent();
+ /**
+ * This is an internal inventory-framework API that should not be used from outside of
+ * this library. No compatibility guarantees are provided.
+ */
+ @ApiStatus.Internal
+ Object getPlatformEvent();
}
diff --git a/inventory-framework-api/src/main/java/me/devnatan/inventoryframework/internal/ElementFactory.java b/inventory-framework-api/src/main/java/me/devnatan/inventoryframework/internal/ElementFactory.java
index c7c38909c..97de9a70a 100644
--- a/inventory-framework-api/src/main/java/me/devnatan/inventoryframework/internal/ElementFactory.java
+++ b/inventory-framework-api/src/main/java/me/devnatan/inventoryframework/internal/ElementFactory.java
@@ -76,7 +76,8 @@ public abstract IFSlotRenderContext createSlotRenderContext(
* @param viewer The viewer that is currently the subject of the event of close.
* @return A new close context instance.
*/
- public abstract IFCloseContext createCloseContext(@NotNull Viewer viewer, @NotNull IFRenderContext parent, @NotNull Object origin);
+ public abstract IFCloseContext createCloseContext(
+ @NotNull Viewer viewer, @NotNull IFRenderContext parent, @NotNull Object origin);
/**
* Creates a new platform builder instance.
diff --git a/inventory-framework-core/src/main/java/me/devnatan/inventoryframework/pipeline/AvailableSlotInterceptor.java b/inventory-framework-core/src/main/java/me/devnatan/inventoryframework/pipeline/AvailableSlotInterceptor.java
index 682604eea..b1cfba866 100644
--- a/inventory-framework-core/src/main/java/me/devnatan/inventoryframework/pipeline/AvailableSlotInterceptor.java
+++ b/inventory-framework-core/src/main/java/me/devnatan/inventoryframework/pipeline/AvailableSlotInterceptor.java
@@ -119,6 +119,7 @@ List resolveFromLayoutSlot(IFRenderContext context) {
private boolean isSlotNotAvailableForAutoFilling(IFRenderContext context, int slot) {
if (!context.getContainer().getType().canPlayerInteractOn(slot)) return true;
+ if (context.getContainer().getSize() >= slot) return false;
// fast path -- check for already rendered items
if (context.getContainer().hasItem(slot)) return true;
diff --git a/inventory-framework-platform-bukkit/src/main/java/me/devnatan/inventoryframework/context/CloseContext.java b/inventory-framework-platform-bukkit/src/main/java/me/devnatan/inventoryframework/context/CloseContext.java
index 0902b24b5..a4d4338ae 100644
--- a/inventory-framework-platform-bukkit/src/main/java/me/devnatan/inventoryframework/context/CloseContext.java
+++ b/inventory-framework-platform-bukkit/src/main/java/me/devnatan/inventoryframework/context/CloseContext.java
@@ -22,22 +22,23 @@ public class CloseContext extends PlatformConfinedContext implements IFCloseCont
private final Viewer subject;
private final Player player;
private final IFRenderContext parent;
- private final InventoryCloseEvent closeOrigin;
+ private final InventoryCloseEvent closeOrigin;
private boolean cancelled;
@ApiStatus.Internal
- public CloseContext(@NotNull Viewer subject, @NotNull IFRenderContext parent, @NotNull InventoryCloseEvent closeOrigin) {
+ public CloseContext(
+ @NotNull Viewer subject, @NotNull IFRenderContext parent, @NotNull InventoryCloseEvent closeOrigin) {
this.subject = subject;
this.player = ((BukkitViewer) subject).getPlayer();
this.parent = parent;
- this.closeOrigin = closeOrigin;
+ this.closeOrigin = closeOrigin;
}
- @Override
- public Object getPlatformEvent() {
- return closeOrigin;
- }
+ @Override
+ public Object getPlatformEvent() {
+ return closeOrigin;
+ }
// TODO Needs documentation
public final @NotNull Player getPlayer() {
diff --git a/inventory-framework-platform-bukkit/src/main/java/me/devnatan/inventoryframework/internal/BukkitElementFactory.java b/inventory-framework-platform-bukkit/src/main/java/me/devnatan/inventoryframework/internal/BukkitElementFactory.java
index 6cb316e9b..245696266 100644
--- a/inventory-framework-platform-bukkit/src/main/java/me/devnatan/inventoryframework/internal/BukkitElementFactory.java
+++ b/inventory-framework-platform-bukkit/src/main/java/me/devnatan/inventoryframework/internal/BukkitElementFactory.java
@@ -120,7 +120,8 @@ public IFSlotRenderContext createSlotRenderContext(
}
@Override
- public IFCloseContext createCloseContext(@NotNull Viewer viewer, @NotNull IFRenderContext parent, @NotNull Object closeOrigin) {
+ public IFCloseContext createCloseContext(
+ @NotNull Viewer viewer, @NotNull IFRenderContext parent, @NotNull Object closeOrigin) {
return new CloseContext(viewer, parent, (InventoryCloseEvent) closeOrigin);
}
diff --git a/inventory-framework-platform-minestom/src/main/kotlin/me/devnatan/inventoryframework/IFInventoryListener.kt b/inventory-framework-platform-minestom/src/main/kotlin/me/devnatan/inventoryframework/IFInventoryListener.kt
index b6c853d65..1bf46577f 100644
--- a/inventory-framework-platform-minestom/src/main/kotlin/me/devnatan/inventoryframework/IFInventoryListener.kt
+++ b/inventory-framework-platform-minestom/src/main/kotlin/me/devnatan/inventoryframework/IFInventoryListener.kt
@@ -88,7 +88,8 @@ internal class IFInventoryListener(
val context: IFRenderContext = viewer.activeContext
val root: RootView = context.getRoot()
- val closeContext: IFCloseContext = root.elementFactory.createCloseContext(viewer, context, event)
+ val closeContext: IFCloseContext =
+ root.elementFactory.createCloseContext(viewer, context, event)
root.pipeline.execute(StandardPipelinePhases.CLOSE, closeContext)
}
diff --git a/inventory-framework-platform-minestom/src/main/kotlin/me/devnatan/inventoryframework/context/CloseContext.kt b/inventory-framework-platform-minestom/src/main/kotlin/me/devnatan/inventoryframework/context/CloseContext.kt
index f4af87f52..214046a39 100644
--- a/inventory-framework-platform-minestom/src/main/kotlin/me/devnatan/inventoryframework/context/CloseContext.kt
+++ b/inventory-framework-platform-minestom/src/main/kotlin/me/devnatan/inventoryframework/context/CloseContext.kt
@@ -20,7 +20,7 @@ class CloseContext
constructor(
subject: Viewer,
private val parent: IFRenderContext,
- val origin: InventoryCloseEvent
+ val origin: InventoryCloseEvent,
) : PlatformConfinedContext(),
IFCloseContext,
Context {
diff --git a/inventory-framework-platform-minestom/src/main/kotlin/me/devnatan/inventoryframework/internal/MinestomElementFactory.kt b/inventory-framework-platform-minestom/src/main/kotlin/me/devnatan/inventoryframework/internal/MinestomElementFactory.kt
index cabe0fb50..11e290abf 100644
--- a/inventory-framework-platform-minestom/src/main/kotlin/me/devnatan/inventoryframework/internal/MinestomElementFactory.kt
+++ b/inventory-framework-platform-minestom/src/main/kotlin/me/devnatan/inventoryframework/internal/MinestomElementFactory.kt
@@ -166,7 +166,11 @@ class MinestomElementFactory : ElementFactory() {
viewer: Viewer?,
): IFSlotRenderContext = SlotRenderContext(slot, parent, viewer)
- override fun createCloseContext(viewer: Viewer, parent: IFRenderContext, origin: Any): IFCloseContext = CloseContext(viewer, parent,origin as InventoryCloseEvent)
+ override fun createCloseContext(
+ viewer: Viewer,
+ parent: IFRenderContext,
+ origin: Any,
+ ): IFCloseContext = CloseContext(viewer, parent, origin as InventoryCloseEvent)
override fun createComponentBuilder(root: VirtualView): ComponentBuilder<*, Context> = MinestomItemComponentBuilder(root)
diff --git a/inventory-framework-test/src/main/java/me/devnatan/inventoryframework/internal/MockElementFactory.java b/inventory-framework-test/src/main/java/me/devnatan/inventoryframework/internal/MockElementFactory.java
index d695c1bc5..d1d311faa 100644
--- a/inventory-framework-test/src/main/java/me/devnatan/inventoryframework/internal/MockElementFactory.java
+++ b/inventory-framework-test/src/main/java/me/devnatan/inventoryframework/internal/MockElementFactory.java
@@ -96,11 +96,12 @@ public IFSlotRenderContext createSlotRenderContext(
}
@Override
- public IFCloseContext createCloseContext(@NotNull Viewer viewer, @NotNull IFRenderContext parent, @NotNull Object origin) {
+ public IFCloseContext createCloseContext(
+ @NotNull Viewer viewer, @NotNull IFRenderContext parent, @NotNull Object origin) {
IFCloseContext mock = mock(IFCloseContext.class);
when(mock.getViewer()).thenReturn(viewer);
when(mock.getParent()).thenReturn(parent);
- when(mock.getPlatformEvent()).thenReturn(origin);
+ when(mock.getPlatformEvent()).thenReturn(origin);
return mock;
}