Didn't make sense not to live for fun
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
package com.willfp.eco.core.gui.menu;
|
||||
|
||||
import org.bukkit.event.inventory.InventoryCloseEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* Interface to run on menu close.
|
||||
*/
|
||||
@FunctionalInterface
|
||||
public interface CloseHandler {
|
||||
/**
|
||||
* Performs this operation on the given arguments.
|
||||
*
|
||||
* @param event The close event.
|
||||
* @param menu The menu.
|
||||
*/
|
||||
void handle(@NotNull InventoryCloseEvent event,
|
||||
@NotNull Menu menu);
|
||||
}
|
||||
@@ -31,6 +31,14 @@ public interface MenuBuilder {
|
||||
int column,
|
||||
@NotNull Slot slot);
|
||||
|
||||
/**
|
||||
* Run function to modify the builder.
|
||||
*
|
||||
* @param modifier The modifier.
|
||||
* @return The builder.
|
||||
*/
|
||||
MenuBuilder modfiy(@NotNull Consumer<MenuBuilder> modifier);
|
||||
|
||||
/**
|
||||
* Set the menu mask.
|
||||
*
|
||||
@@ -45,7 +53,18 @@ public interface MenuBuilder {
|
||||
* @param action The handler.
|
||||
* @return The builder.
|
||||
*/
|
||||
MenuBuilder onClose(@NotNull Consumer<InventoryCloseEvent> action);
|
||||
default MenuBuilder onClose(@NotNull Consumer<InventoryCloseEvent> action) {
|
||||
onClose((event, menu) -> action.accept(event));
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the menu close handler.
|
||||
*
|
||||
* @param action The handler.
|
||||
* @return The builder.
|
||||
*/
|
||||
MenuBuilder onClose(@NotNull CloseHandler action);
|
||||
|
||||
/**
|
||||
* Build the menu.
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.willfp.eco.core.gui.slot;
|
||||
|
||||
import com.willfp.eco.core.Eco;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -26,6 +27,15 @@ public interface Slot {
|
||||
*/
|
||||
boolean isCaptive();
|
||||
|
||||
/**
|
||||
* Create a builder for an ItemStack.
|
||||
*
|
||||
* @return The builder.
|
||||
*/
|
||||
static SlotBuilder builder() {
|
||||
return Eco.getHandler().getGUIFactory().createSlotBuilder((player, menu) -> new ItemStack(Material.AIR));
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a builder for an ItemStack.
|
||||
*
|
||||
@@ -42,7 +52,6 @@ public interface Slot {
|
||||
* @param provider The provider.
|
||||
* @return The builder.
|
||||
*/
|
||||
@Deprecated
|
||||
static SlotBuilder builder(@NotNull final Function<Player, ItemStack> provider) {
|
||||
return Eco.getHandler().getGUIFactory().createSlotBuilder((player, menu) -> provider.apply(player));
|
||||
}
|
||||
|
||||
@@ -15,7 +15,6 @@ public interface SlotBuilder {
|
||||
* @param action The handler.
|
||||
* @return The builder.
|
||||
*/
|
||||
@Deprecated
|
||||
default SlotBuilder onLeftClick(@NotNull BiConsumer<InventoryClickEvent, Slot> action) {
|
||||
return onLeftClick((event, slot, menu) -> action.accept(event, slot));
|
||||
}
|
||||
@@ -34,7 +33,6 @@ public interface SlotBuilder {
|
||||
* @param action The handler.
|
||||
* @return The builder.
|
||||
*/
|
||||
@Deprecated
|
||||
default SlotBuilder onRightClick(@NotNull BiConsumer<InventoryClickEvent, Slot> action) {
|
||||
return onRightClick((event, slot, menu) -> action.accept(event, slot));
|
||||
}
|
||||
@@ -53,7 +51,6 @@ public interface SlotBuilder {
|
||||
* @param action The handler.
|
||||
* @return The builder.
|
||||
*/
|
||||
@Deprecated
|
||||
default SlotBuilder onShiftLeftClick(@NotNull BiConsumer<InventoryClickEvent, Slot> action) {
|
||||
return onShiftLeftClick((event, slot, menu) -> action.accept(event, slot));
|
||||
}
|
||||
@@ -72,7 +69,6 @@ public interface SlotBuilder {
|
||||
* @param action The handler.
|
||||
* @return The builder.
|
||||
*/
|
||||
@Deprecated
|
||||
default SlotBuilder onShiftRightClick(@NotNull BiConsumer<InventoryClickEvent, Slot> action) {
|
||||
return onShiftRightClick((event, slot, menu) -> action.accept(event, slot));
|
||||
}
|
||||
@@ -91,7 +87,6 @@ public interface SlotBuilder {
|
||||
* @param action The handler.
|
||||
* @return The builder.
|
||||
*/
|
||||
@Deprecated
|
||||
default SlotBuilder onMiddleClick(@NotNull BiConsumer<InventoryClickEvent, Slot> action) {
|
||||
return onMiddleClick((event, slot, menu) -> action.accept(event, slot));
|
||||
}
|
||||
|
||||
@@ -17,6 +17,6 @@ public interface SlotHandler {
|
||||
* @param menu The menu.
|
||||
*/
|
||||
void handle(@NotNull InventoryClickEvent event,
|
||||
@NotNull Slot slot,
|
||||
@NotNull Menu menu);
|
||||
@NotNull Slot slot,
|
||||
@NotNull Menu menu);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user