Refactored GUI
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
package com.willfp.eco.core.gui;
|
||||
|
||||
import com.willfp.eco.core.gui.menu.Menu;
|
||||
import com.willfp.eco.core.gui.slot.Slot;
|
||||
import com.willfp.eco.core.gui.menu.MenuBuilder;
|
||||
import com.willfp.eco.core.gui.slot.SlotBuilder;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -15,7 +15,7 @@ public interface GUIFactory {
|
||||
* @param provider The provider.
|
||||
* @return The builder.
|
||||
*/
|
||||
Slot.Builder createSlotBuilder(@NotNull Function<Player, ItemStack> provider);
|
||||
SlotBuilder createSlotBuilder(@NotNull Function<Player, ItemStack> provider);
|
||||
|
||||
/**
|
||||
* Create menu builder.
|
||||
@@ -23,5 +23,5 @@ public interface GUIFactory {
|
||||
* @param rows The amount of rows.
|
||||
* @return The builder.
|
||||
*/
|
||||
Menu.Builder createMenuBuilder(int rows);
|
||||
MenuBuilder createMenuBuilder(int rows);
|
||||
}
|
||||
|
||||
@@ -1,15 +1,11 @@
|
||||
package com.willfp.eco.core.gui.menu;
|
||||
|
||||
import com.willfp.eco.core.Eco;
|
||||
import com.willfp.eco.core.gui.slot.FillerMask;
|
||||
import com.willfp.eco.core.gui.slot.Slot;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.InventoryCloseEvent;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public interface Menu {
|
||||
/**
|
||||
* Get the amount of rows.
|
||||
@@ -49,21 +45,7 @@ public interface Menu {
|
||||
* @param rows The rows.
|
||||
* @return The builder.
|
||||
*/
|
||||
static Builder builder(final int rows) {
|
||||
static MenuBuilder builder(final int rows) {
|
||||
return Eco.getHandler().getGUIFactory().createMenuBuilder(rows);
|
||||
}
|
||||
|
||||
interface Builder {
|
||||
Builder setTitle(@NotNull String title);
|
||||
|
||||
Builder setSlot(int row,
|
||||
int column,
|
||||
@NotNull Slot slot);
|
||||
|
||||
Builder setMask(@NotNull FillerMask mask);
|
||||
|
||||
Builder onClose(@NotNull Consumer<InventoryCloseEvent> action);
|
||||
|
||||
Menu build();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.willfp.eco.core.gui.menu;
|
||||
|
||||
import com.willfp.eco.core.gui.slot.FillerMask;
|
||||
import com.willfp.eco.core.gui.slot.Slot;
|
||||
import org.bukkit.event.inventory.InventoryCloseEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public interface MenuBuilder {
|
||||
MenuBuilder setTitle(@NotNull String title);
|
||||
|
||||
MenuBuilder setSlot(int row,
|
||||
int column,
|
||||
@NotNull Slot slot);
|
||||
|
||||
MenuBuilder setMask(@NotNull FillerMask mask);
|
||||
|
||||
MenuBuilder onClose(@NotNull Consumer<InventoryCloseEvent> action);
|
||||
|
||||
Menu build();
|
||||
}
|
||||
@@ -2,11 +2,9 @@ package com.willfp.eco.core.gui.slot;
|
||||
|
||||
import com.willfp.eco.core.Eco;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.function.BiConsumer;
|
||||
import java.util.function.Function;
|
||||
|
||||
public interface Slot {
|
||||
@@ -24,7 +22,7 @@ public interface Slot {
|
||||
* @param itemStack The ItemStack.
|
||||
* @return The builder.
|
||||
*/
|
||||
static Builder builder(@NotNull final ItemStack itemStack) {
|
||||
static SlotBuilder builder(@NotNull final ItemStack itemStack) {
|
||||
return Eco.getHandler().getGUIFactory().createSlotBuilder(player -> itemStack);
|
||||
}
|
||||
|
||||
@@ -34,21 +32,7 @@ public interface Slot {
|
||||
* @param provider The provider.
|
||||
* @return The builder.
|
||||
*/
|
||||
static Builder builder(@NotNull final Function<Player, ItemStack> provider) {
|
||||
static SlotBuilder builder(@NotNull final Function<Player, ItemStack> provider) {
|
||||
return Eco.getHandler().getGUIFactory().createSlotBuilder(provider);
|
||||
}
|
||||
|
||||
interface Builder {
|
||||
Builder onLeftClick(@NotNull BiConsumer<InventoryClickEvent, Slot> action);
|
||||
|
||||
Builder onRightClick(@NotNull BiConsumer<InventoryClickEvent, Slot> action);
|
||||
|
||||
Builder onShiftLeftClick(@NotNull BiConsumer<InventoryClickEvent, Slot> action);
|
||||
|
||||
Builder onShiftRightClick(@NotNull BiConsumer<InventoryClickEvent, Slot> action);
|
||||
|
||||
Builder onMiddleClick(@NotNull BiConsumer<InventoryClickEvent, Slot> action);
|
||||
|
||||
Slot build();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.willfp.eco.core.gui.slot;
|
||||
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.function.BiConsumer;
|
||||
|
||||
public interface SlotBuilder {
|
||||
SlotBuilder onLeftClick(@NotNull BiConsumer<InventoryClickEvent, Slot> action);
|
||||
|
||||
SlotBuilder onRightClick(@NotNull BiConsumer<InventoryClickEvent, Slot> action);
|
||||
|
||||
SlotBuilder onShiftLeftClick(@NotNull BiConsumer<InventoryClickEvent, Slot> action);
|
||||
|
||||
SlotBuilder onShiftRightClick(@NotNull BiConsumer<InventoryClickEvent, Slot> action);
|
||||
|
||||
SlotBuilder onMiddleClick(@NotNull BiConsumer<InventoryClickEvent, Slot> action);
|
||||
|
||||
Slot build();
|
||||
}
|
||||
Reference in New Issue
Block a user