SimpleItem.of

This commit is contained in:
NichtStudioCode 2021-02-13 18:02:05 +01:00
parent f38f86d423
commit c084c1a2bc
2 changed files with 43 additions and 0 deletions

@ -0,0 +1,31 @@
package de.studiocode.invui.item;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
public class Click {
private final Player player;
private final ClickType clickType;
private final InventoryClickEvent event;
public Click(InventoryClickEvent event) {
this.player = (Player) event.getWhoClicked();
this.clickType = event.getClick();
this.event = event;
}
public Player getPlayer() {
return player;
}
public ClickType getClickType() {
return clickType;
}
public InventoryClickEvent getEvent() {
return event;
}
}

@ -1,5 +1,6 @@
package de.studiocode.invui.item.impl;
import de.studiocode.invui.item.Click;
import de.studiocode.invui.item.Item;
import de.studiocode.invui.item.itembuilder.ItemBuilder;
import org.bukkit.entity.Player;
@ -7,6 +8,8 @@ import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.jetbrains.annotations.NotNull;
import java.util.function.Consumer;
/**
* A simple {@link Item} that does nothing.
*/
@ -18,6 +21,15 @@ public class SimpleItem extends BaseItem {
this.itemBuilder = itemBuilder;
}
public static SimpleItem of(ItemBuilder itemBuilder, Consumer<Click> clickHandler) {
return new SimpleItem(itemBuilder) {
@Override
public void handleClick(ClickType clickType, Player player, InventoryClickEvent event) {
clickHandler.accept(new Click(event));
}
};
}
public ItemBuilder getItemBuilder() {
return itemBuilder;
}