feat: confirm cache entry delete
This commit is contained in:
parent
c8c55611a0
commit
228e3c4374
6 changed files with 100 additions and 4 deletions
34
src/main/java/xyz/atnrch/nicko/gui/ConfirmGUI.java
Normal file
34
src/main/java/xyz/atnrch/nicko/gui/ConfirmGUI.java
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
package xyz.atnrch.nicko.gui;
|
||||||
|
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import xyz.atnrch.nicko.gui.items.confirm.ActionCallback;
|
||||||
|
import xyz.atnrch.nicko.gui.items.confirm.Cancel;
|
||||||
|
import xyz.atnrch.nicko.gui.items.confirm.Confirm;
|
||||||
|
import xyz.xenondevs.invui.gui.Gui;
|
||||||
|
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
||||||
|
import xyz.xenondevs.invui.item.impl.SimpleItem;
|
||||||
|
import xyz.xenondevs.invui.window.Window;
|
||||||
|
|
||||||
|
public class ConfirmGUI {
|
||||||
|
private final Player player;
|
||||||
|
private final Gui gui;
|
||||||
|
|
||||||
|
public ConfirmGUI(Player player, ActionCallback callback) {
|
||||||
|
this.gui = Gui.normal()
|
||||||
|
.setStructure(
|
||||||
|
"@ @ @ @ % & & & &",
|
||||||
|
"@ @ @ @ I & & & &",
|
||||||
|
"@ @ @ @ % & & & &"
|
||||||
|
)
|
||||||
|
.addIngredient('@', new Confirm(callback))
|
||||||
|
.addIngredient('&', new Cancel(callback))
|
||||||
|
.addIngredient('I', new SimpleItem(new ItemBuilder(Material.PAPER).setDisplayName("§6Select an option").get()))
|
||||||
|
.build();
|
||||||
|
this.player = player;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void open() {
|
||||||
|
Window.single().setGui(gui).setTitle("... > Invalidate > Confirm").open(player);
|
||||||
|
}
|
||||||
|
}
|
|
@ -8,7 +8,7 @@ import xyz.xenondevs.invui.gui.ScrollGui;
|
||||||
import xyz.xenondevs.invui.gui.structure.Markers;
|
import xyz.xenondevs.invui.gui.structure.Markers;
|
||||||
import xyz.xenondevs.invui.item.Item;
|
import xyz.xenondevs.invui.item.Item;
|
||||||
import xyz.atnrch.nicko.NickoBukkit;
|
import xyz.atnrch.nicko.NickoBukkit;
|
||||||
import xyz.atnrch.nicko.gui.items.admin.cache.EntryPlaceholder;
|
import xyz.atnrch.nicko.gui.items.admin.cache.CacheEntry;
|
||||||
import xyz.atnrch.nicko.gui.admin.CacheManagementGUI;
|
import xyz.atnrch.nicko.gui.admin.CacheManagementGUI;
|
||||||
import xyz.atnrch.nicko.gui.items.common.ScrollDown;
|
import xyz.atnrch.nicko.gui.items.common.ScrollDown;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
@ -34,7 +34,7 @@ public class CacheDetailedGUI {
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
final List<Item> items = loadedSkins.stream()
|
final List<Item> items = loadedSkins.stream()
|
||||||
.map(EntryPlaceholder::new)
|
.map(CacheEntry::new)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
final CacheManagementGUI parent = new CacheManagementGUI(player);
|
final CacheManagementGUI parent = new CacheManagementGUI(player);
|
||||||
|
|
|
@ -5,14 +5,19 @@ import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.inventory.ClickType;
|
import org.bukkit.event.inventory.ClickType;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import xyz.atnrch.nicko.gui.ConfirmGUI;
|
||||||
|
import xyz.atnrch.nicko.gui.admin.cache.CacheDetailedGUI;
|
||||||
|
import xyz.atnrch.nicko.gui.items.confirm.ActionCallback;
|
||||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
||||||
import xyz.xenondevs.invui.item.builder.SkullBuilder;
|
import xyz.xenondevs.invui.item.builder.SkullBuilder;
|
||||||
import xyz.xenondevs.invui.item.impl.AsyncItem;
|
import xyz.xenondevs.invui.item.impl.AsyncItem;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class EntryPlaceholder extends AsyncItem {
|
public class CacheEntry extends AsyncItem {
|
||||||
public EntryPlaceholder(String name) {
|
private final String name;
|
||||||
|
|
||||||
|
public CacheEntry(String name) {
|
||||||
super(new ItemBuilder(Material.PAINTING).setDisplayName("§7§oLoading..."), () -> {
|
super(new ItemBuilder(Material.PAINTING).setDisplayName("§7§oLoading..."), () -> {
|
||||||
final String stringUUID = name.replaceAll("(.{8})(.{4})(.{4})(.{4})(.+)", "$1-$2-$3-$4-$5");
|
final String stringUUID = name.replaceAll("(.{8})(.{4})(.{4})(.{4})(.+)", "$1-$2-$3-$4-$5");
|
||||||
final UUID uuid = UUID.fromString(stringUUID);
|
final UUID uuid = UUID.fromString(stringUUID);
|
||||||
|
@ -21,12 +26,24 @@ public class EntryPlaceholder extends AsyncItem {
|
||||||
skull.addLoreLines("§7Click to invalidate skin");
|
skull.addLoreLines("§7Click to invalidate skin");
|
||||||
return skull;
|
return skull;
|
||||||
});
|
});
|
||||||
|
this.name = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleClick(@NotNull ClickType click, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
public void handleClick(@NotNull ClickType click, @NotNull Player player, @NotNull InventoryClickEvent event) {
|
||||||
if (click.isLeftClick() || click.isRightClick()) {
|
if (click.isLeftClick() || click.isRightClick()) {
|
||||||
event.getView().close();
|
event.getView().close();
|
||||||
|
new ConfirmGUI(player, new ActionCallback() {
|
||||||
|
@Override
|
||||||
|
public void onConfirm() {
|
||||||
|
player.sendMessage(name + " cleared");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCancel() {
|
||||||
|
new CacheDetailedGUI(player).open();
|
||||||
|
}
|
||||||
|
}).open();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
package xyz.atnrch.nicko.gui.items.confirm;
|
||||||
|
|
||||||
|
public interface ActionCallback {
|
||||||
|
void onConfirm();
|
||||||
|
|
||||||
|
void onCancel();
|
||||||
|
}
|
19
src/main/java/xyz/atnrch/nicko/gui/items/confirm/Cancel.java
Normal file
19
src/main/java/xyz/atnrch/nicko/gui/items/confirm/Cancel.java
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
package xyz.atnrch.nicko.gui.items.confirm;
|
||||||
|
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
||||||
|
import xyz.xenondevs.invui.item.impl.SuppliedItem;
|
||||||
|
|
||||||
|
public class Cancel extends SuppliedItem {
|
||||||
|
public Cancel(ActionCallback callback) {
|
||||||
|
super(() -> {
|
||||||
|
final ItemBuilder builder = new ItemBuilder(Material.RED_STAINED_GLASS_PANE);
|
||||||
|
builder.setDisplayName("§cCancel");
|
||||||
|
return builder;
|
||||||
|
}, click -> {
|
||||||
|
click.getEvent().getView().close();
|
||||||
|
callback.onCancel();
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
package xyz.atnrch.nicko.gui.items.confirm;
|
||||||
|
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
||||||
|
import xyz.xenondevs.invui.item.impl.SuppliedItem;
|
||||||
|
|
||||||
|
public class Confirm extends SuppliedItem {
|
||||||
|
public Confirm(ActionCallback callback) {
|
||||||
|
super(() -> {
|
||||||
|
final ItemBuilder builder = new ItemBuilder(Material.GREEN_STAINED_GLASS_PANE);
|
||||||
|
builder.setDisplayName("§aConfirm");
|
||||||
|
return builder;
|
||||||
|
}, click -> {
|
||||||
|
click.getEvent().getView().close();
|
||||||
|
callback.onConfirm();
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue