Skip to content

Commit 2e694a4

Browse files
committed
add handler.setInventoryCreator method
1 parent 5536351 commit 2e694a4

3 files changed

Lines changed: 20 additions & 2 deletions

File tree

core/src/main/java/net/j4c0b3y/api/menu/Menu.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import net.j4c0b3y.api.menu.layer.impl.ForegroundLayer;
1010
import net.j4c0b3y.api.menu.template.Template;
1111
import net.j4c0b3y.api.menu.utils.Position;
12-
import org.bukkit.Bukkit;
1312
import org.bukkit.entity.Player;
1413
import org.bukkit.event.inventory.InventoryClickEvent;
1514
import org.bukkit.inventory.Inventory;
@@ -111,7 +110,7 @@ public Menu(String title, MenuSize size, Player player, MenuHandler handler) {
111110
throw new IllegalStateException("No menu handler instance found.");
112111
}
113112

114-
this.inventory = Bukkit.createInventory(player, getTotalSlots(), this.title);
113+
this.inventory = handler.getInventoryCreator().apply(player, getTotalSlots(), this.title);
115114
this.async = getClass().isAnnotationPresent(Async.class);
116115
}
117116

core/src/main/java/net/j4c0b3y/api/menu/MenuHandler.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@
55
import lombok.Setter;
66
import net.j4c0b3y.api.menu.listener.InventoryListener;
77
import net.j4c0b3y.api.menu.task.AutoUpdateTask;
8+
import net.j4c0b3y.api.menu.utils.TriFunction;
89
import org.bukkit.Bukkit;
910
import org.bukkit.entity.Player;
11+
import org.bukkit.inventory.Inventory;
1012
import org.bukkit.plugin.java.JavaPlugin;
1113

1214
import java.util.Map;
@@ -56,6 +58,12 @@ public class MenuHandler {
5658
*/
5759
@Setter private boolean closeOnBack = false;
5860

61+
/**
62+
* The method to use when creating internal menu inventories.
63+
*/
64+
@Setter private TriFunction<Player, Integer, String, Inventory> inventoryCreator =
65+
Bukkit::createInventory;
66+
5967
/**
6068
* Creates a new menu handler, starting the autoupdating
6169
* task and registering inventory and connection listeners.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package net.j4c0b3y.api.menu.utils;
2+
3+
/**
4+
* @author J4C0B3Y
5+
* @version MenuAPI
6+
* @since 7/08/2025
7+
*/
8+
@FunctionalInterface
9+
public interface TriFunction<F, S, T, R> {
10+
R apply(F first, S second, T third);
11+
}

0 commit comments

Comments
 (0)