diff --git a/src/me/rockyhawk/commandpanels/commandtags/tags/other/SpecialTags.java b/src/me/rockyhawk/commandpanels/commandtags/tags/other/SpecialTags.java index a723752..8bb84e7 100644 --- a/src/me/rockyhawk/commandpanels/commandtags/tags/other/SpecialTags.java +++ b/src/me/rockyhawk/commandpanels/commandtags/tags/other/SpecialTags.java @@ -70,6 +70,20 @@ public class SpecialTags implements Listener { } return; } + if(e.name.equalsIgnoreCase("panel-title=")) { + e.commandTagUsed(); + //added into the 1.20 API + //will set the open panel title to the provided string panel-title= + //AS OF TINYTANK800's pull this only works on static panels! + if(e.args.length >= 1){ + StringBuilder title = new StringBuilder(); + for(String args : e.args){ + title.append(args).append(" "); + } + e.p.getOpenInventory().setTitle(title.toString()); + } + return; + } if(e.name.equalsIgnoreCase("title=")) { e.commandTagUsed(); //added into the 1.11 API diff --git a/src/me/rockyhawk/commandpanels/commandtags/tags/standard/ItemTags.java b/src/me/rockyhawk/commandpanels/commandtags/tags/standard/ItemTags.java index 2a6717a..0fc9c4e 100644 --- a/src/me/rockyhawk/commandpanels/commandtags/tags/standard/ItemTags.java +++ b/src/me/rockyhawk/commandpanels/commandtags/tags/standard/ItemTags.java @@ -3,6 +3,7 @@ package me.rockyhawk.commandpanels.commandtags.tags.standard; import me.rockyhawk.commandpanels.CommandPanels; import me.rockyhawk.commandpanels.commandtags.CommandTagEvent; import me.rockyhawk.commandpanels.openpanelsmanager.PanelPosition; +import org.bukkit.Material; import org.bukkit.NamespacedKey; import org.bukkit.enchantments.Enchantment; import org.bukkit.event.EventHandler; @@ -22,14 +23,27 @@ public class ItemTags implements Listener { public void commandTag(CommandTagEvent e){ if(e.name.equalsIgnoreCase("give-item=")){ e.commandTagUsed(); - ItemStack itm = plugin.itemCreate.makeCustomItemFromConfig(null,e.pos,e.panel.getConfig().getConfigurationSection("custom-item." + e.args[0]), e.p, true, true, false); - if(e.args.length == 2){ - try{ - itm.setAmount(Integer.parseInt(e.args[1])); - } catch (Exception err){ - plugin.debug(err,e.p); + ItemStack itm; + if (Material.matchMaterial(e.args[0]) == null) { + itm = plugin.itemCreate.makeCustomItemFromConfig(null,e.pos,e.panel.getConfig().getConfigurationSection("custom-item." + e.args[0]), e.p, true, true, false); + if(e.args.length == 2){ + try{ + itm.setAmount(Integer.parseInt(e.args[1])); + } catch (Exception err){ + plugin.debug(err,e.p); + } + } + } else { + itm = new ItemStack(Objects.requireNonNull(Material.matchMaterial(e.args[0]))); + if(e.args.length == 2){ + try{ + itm.setAmount(Integer.parseInt(e.args[1])); + } catch (Exception err){ + plugin.debug(err,e.p); + } } } + plugin.inventorySaver.addItem(e.p,itm); return; } diff --git a/src/me/rockyhawk/commandpanels/generatepanels/GenUtils.java b/src/me/rockyhawk/commandpanels/generatepanels/GenUtils.java index 124e43d..ee40903 100644 --- a/src/me/rockyhawk/commandpanels/generatepanels/GenUtils.java +++ b/src/me/rockyhawk/commandpanels/generatepanels/GenUtils.java @@ -31,6 +31,9 @@ public class GenUtils implements Listener { @EventHandler public void onInventoryClose(InventoryCloseEvent e) { Player p = (Player)e.getPlayer(); + if(!this.plugin.generateMode.contains(p)){ + return; + } if(!ChatColor.stripColor(e.getView().getTitle()).equals("Generate New Panel")){ return; } diff --git a/src/me/rockyhawk/commandpanels/openpanelsmanager/OpenGUI.java b/src/me/rockyhawk/commandpanels/openpanelsmanager/OpenGUI.java index 23ccefe..cf86993 100644 --- a/src/me/rockyhawk/commandpanels/openpanelsmanager/OpenGUI.java +++ b/src/me/rockyhawk/commandpanels/openpanelsmanager/OpenGUI.java @@ -26,11 +26,17 @@ public class OpenGUI { ConfigurationSection pconfig = panel.getConfig(); Inventory i; + String title = ""; if(position == PanelPosition.Top) { - String title; if(pconfig.contains("custom-title")) { //used for titles in the custom-title section, for has sections String section = plugin.has.hasSection(panel,position,pconfig.getConfigurationSection("custom-title"), p); + + //check for if there is animations inside the custom-title section + if (pconfig.contains("custom-title" + section + ".animate" + animateValue)) { + section = section + ".animate" + animateValue; + } + title = plugin.tex.placeholders(panel, position, p, pconfig.getString("custom-title" + section + ".title")); }else { //regular inventory title @@ -175,6 +181,9 @@ public class OpenGUI { } else if (openType == PanelOpenType.Refresh) { //openType 0 will just refresh the panel if(position == PanelPosition.Top) { + if(!p.getOpenInventory().getTitle().equals(title) && !title.isEmpty()){ + p.getOpenInventory().setTitle(title); + } p.getOpenInventory().getTopInventory().setContents(i.getContents()); } } else if (openType == PanelOpenType.Return) { diff --git a/src/me/rockyhawk/commandpanels/playerinventoryhandler/InventorySaver.java b/src/me/rockyhawk/commandpanels/playerinventoryhandler/InventorySaver.java index 16569cf..ab6214c 100644 --- a/src/me/rockyhawk/commandpanels/playerinventoryhandler/InventorySaver.java +++ b/src/me/rockyhawk/commandpanels/playerinventoryhandler/InventorySaver.java @@ -143,7 +143,7 @@ public class InventorySaver implements Listener { p.getInventory().addItem(item); return; } - }else { + } else { List cont = new ArrayList<>(Arrays.asList(getNormalInventory(p))); boolean found = false; for (int i = 0; 36 > i; i++){