From 6d8b291b2f23b40beab740a3365cf1dd243193f1 Mon Sep 17 00:00:00 2001 From: Torrie Fischer Date: Sun, 18 Sep 2022 15:01:58 +0200 Subject: [PATCH] ui: display banner instructions in UI --- .../regions/ui/PlayerInventoryTeleporter.java | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/src/main/java/us/camin/regions/ui/PlayerInventoryTeleporter.java b/src/main/java/us/camin/regions/ui/PlayerInventoryTeleporter.java index e94cd0c..42032fd 100644 --- a/src/main/java/us/camin/regions/ui/PlayerInventoryTeleporter.java +++ b/src/main/java/us/camin/regions/ui/PlayerInventoryTeleporter.java @@ -92,13 +92,19 @@ public class PlayerInventoryTeleporter implements Listener { if (event.getClickedInventory() == neighborInv) { ItemMeta meta = event.getCurrentItem().getItemMeta(); Material mat = event.getCurrentItem().getType(); - if (mat == Material.BEDROCK || mat == Material.COMPASS || mat == Material.LANTERN) { + final String selectedName = meta.getDisplayName(); + if (mat == Material.BEDROCK || mat == Material.COMPASS || mat == Material.LANTERN || mat == Material.SOUL_LANTERN) { return; } - m_plugin.getServer().getScheduler().runTask(m_plugin, () -> event.getView().close()); + Region nearest = m_manager.nearestRegion(player.getLocation()); - final String selectedName = meta.getDisplayName(); + if (selectedName == nearest.name()) { + return; + } + + m_plugin.getServer().getScheduler().runTask(m_plugin, () -> event.getView().close()); + final Optional destination = m_plugin.regionManager().regionsForWorld(player.getLocation().getWorld()) .stream() .filter((r) -> r.name().equals(selectedName)) @@ -213,7 +219,7 @@ public class PlayerInventoryTeleporter implements Listener { } ItemStack chargesItem = new ItemStack(event.region.charges() == 0 ? Material.SOUL_LANTERN : Material.LANTERN); ItemMeta meta = chargesItem.getItemMeta(); - meta.setDisplayName(ChatColor.BOLD + "Region Post Configuration"); + meta.setDisplayName(ChatColor.BOLD + "Region Post Charges"); ArrayList lore = new ArrayList(); lore.add(ChatColor.WHITE + "Name: "+event.region.coloredName()); lore.add(ChatColor.WHITE + "Visits: " + ChatColor.YELLOW + event.region.visits()); @@ -223,7 +229,18 @@ public class PlayerInventoryTeleporter implements Listener { meta.addEnchant(Enchantment.SOUL_SPEED, 1, true); chargesItem.setItemMeta(meta); // 22 Is the middle of the bottom row - neighborInventory.setItem(22, chargesItem); + neighborInventory.setItem(23, chargesItem); + + ItemStack iconItem = event.region.icon(); + meta = iconItem.getItemMeta(); + meta.setDisplayName(event.region.name()); + lore = new ArrayList(); + lore.add(ChatColor.BOLD + "This is the region's current banner icon."); + lore.add(ChatColor.ITALIC + "Right-click the region post with a banner to change it"); + meta.setLore(lore); + meta.addItemFlags(ItemFlag.HIDE_ENCHANTS); + iconItem.setItemMeta(meta); + neighborInventory.setItem(21, iconItem); event.player.openInventory(neighborInventory); }