From f88e82e36f7d32844ee8dbd68794423598b5b3aa Mon Sep 17 00:00:00 2001 From: okx-code Date: Thu, 31 Oct 2024 00:52:14 +0000 Subject: [PATCH] add anvil titles and fix inconsistencies --- .../java/net/civmc/kitpvp/anvil/AnvilGui.java | 18 +++++++++++++++++- .../java/net/civmc/kitpvp/gui/EditKitGui.java | 2 +- .../java/net/civmc/kitpvp/gui/KitListGui.java | 2 +- .../gui/selection/CountSelectionGui.java | 3 +-- .../kitpvp/gui/selection/EnchantmentGui.java | 2 +- 5 files changed, 21 insertions(+), 6 deletions(-) diff --git a/plugins/kitpvp-paper/src/main/java/net/civmc/kitpvp/anvil/AnvilGui.java b/plugins/kitpvp-paper/src/main/java/net/civmc/kitpvp/anvil/AnvilGui.java index 58be6087d..ce65e600d 100644 --- a/plugins/kitpvp-paper/src/main/java/net/civmc/kitpvp/anvil/AnvilGui.java +++ b/plugins/kitpvp-paper/src/main/java/net/civmc/kitpvp/anvil/AnvilGui.java @@ -1,11 +1,13 @@ package net.civmc.kitpvp.anvil; +import net.kyori.adventure.text.Component; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryCloseEvent; +import org.bukkit.event.inventory.InventoryOpenEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.InventoryView; @@ -15,17 +17,31 @@ import java.util.HashMap; import java.util.Map; public class AnvilGui implements Listener { + private final Map names = new HashMap<>(); private final Map anvils = new HashMap<>(); private final Map listeners = new HashMap<>(); - public void open(Player player, AnvilGuiListener listener) { + public void open(Player player, Component name, AnvilGuiListener listener) { + names.put(player, name); InventoryView view = player.openAnvil(null, true); + if (view == null) { + names.remove(player); + return; + } anvils.put(player, view.getTopInventory()); listeners.put(player, listener); view.getTopInventory().setItem(0, new ItemStack(Material.WRITABLE_BOOK)); } + @EventHandler + public void on(InventoryOpenEvent event) { + Component title = names.remove(event.getPlayer()); + if (title != null) { + event.titleOverride(title); + } + } + @EventHandler public void on(PlayerQuitEvent event) { Inventory inventory = anvils.remove(event.getPlayer()); diff --git a/plugins/kitpvp-paper/src/main/java/net/civmc/kitpvp/gui/EditKitGui.java b/plugins/kitpvp-paper/src/main/java/net/civmc/kitpvp/gui/EditKitGui.java index 48b9e74ae..0e93ac37a 100644 --- a/plugins/kitpvp-paper/src/main/java/net/civmc/kitpvp/gui/EditKitGui.java +++ b/plugins/kitpvp-paper/src/main/java/net/civmc/kitpvp/gui/EditKitGui.java @@ -106,7 +106,7 @@ public class EditKitGui { protected void clicked(@NotNull Player clicker) { inventory.setOnClose(null); player.closeInventory(); - anvilGui.open(player, new AnvilGuiListener() { + anvilGui.open(player, Component.text("Kit name"), new AnvilGuiListener() { @Override public void onClose() { JavaPlugin plugin = JavaPlugin.getProvidingPlugin(KitPvpPlugin.class); diff --git a/plugins/kitpvp-paper/src/main/java/net/civmc/kitpvp/gui/KitListGui.java b/plugins/kitpvp-paper/src/main/java/net/civmc/kitpvp/gui/KitListGui.java index 6c87db163..3260913c4 100644 --- a/plugins/kitpvp-paper/src/main/java/net/civmc/kitpvp/gui/KitListGui.java +++ b/plugins/kitpvp-paper/src/main/java/net/civmc/kitpvp/gui/KitListGui.java @@ -69,7 +69,7 @@ public class KitListGui { clicker.closeInventory(); clicker.sendMessage(Component.text("Enter kit name to create", NamedTextColor.GOLD)); - anvilGui.open(player, new AnvilGuiListener() { + anvilGui.open(player, Component.text("Kit name"), new AnvilGuiListener() { @Override public void onClose() { JavaPlugin plugin = JavaPlugin.getProvidingPlugin(KitPvpPlugin.class); diff --git a/plugins/kitpvp-paper/src/main/java/net/civmc/kitpvp/gui/selection/CountSelectionGui.java b/plugins/kitpvp-paper/src/main/java/net/civmc/kitpvp/gui/selection/CountSelectionGui.java index 5fb8413ae..4a3ce7f85 100644 --- a/plugins/kitpvp-paper/src/main/java/net/civmc/kitpvp/gui/selection/CountSelectionGui.java +++ b/plugins/kitpvp-paper/src/main/java/net/civmc/kitpvp/gui/selection/CountSelectionGui.java @@ -39,7 +39,7 @@ public class CountSelectionGui extends ItemSelectionGui { protected void clicked(@NotNull Player clicker) { inventory.setOnClose(null); clicker.closeInventory(); - anvilGui.open(clicker, new AnvilGuiListener() { + anvilGui.open(clicker, Component.text("Amount"), new AnvilGuiListener() { @Override public void onClose() { JavaPlugin plugin = JavaPlugin.getProvidingPlugin(KitPvpPlugin.class); @@ -53,7 +53,6 @@ public class CountSelectionGui extends ItemSelectionGui { num = Integer.parseInt(name); if (num < 1 || num > kitItem.getMaxStackSize()) { clicker.sendMessage(Component.text("Must be between 1 and " + kitItem.getMaxStackSize(), NamedTextColor.RED)); - open(); return false; } } catch (NumberFormatException e) { diff --git a/plugins/kitpvp-paper/src/main/java/net/civmc/kitpvp/gui/selection/EnchantmentGui.java b/plugins/kitpvp-paper/src/main/java/net/civmc/kitpvp/gui/selection/EnchantmentGui.java index 9239ddbdb..01ccb8341 100644 --- a/plugins/kitpvp-paper/src/main/java/net/civmc/kitpvp/gui/selection/EnchantmentGui.java +++ b/plugins/kitpvp-paper/src/main/java/net/civmc/kitpvp/gui/selection/EnchantmentGui.java @@ -117,7 +117,7 @@ public class EnchantmentGui extends ItemSelectionGui { protected void clicked(@NotNull Player clicker) { inventory.setOnClose(null); clicker.closeInventory(); - anvilGui.open(clicker, new AnvilGuiListener() { + anvilGui.open(clicker, Component.text("Durability"), new AnvilGuiListener() { @Override public void onClose() { JavaPlugin plugin = JavaPlugin.getProvidingPlugin(KitPvpPlugin.class);