diff --git a/.idea/libraries/HeadDatabaseAPI.xml b/.idea/libraries/HeadDatabaseAPI.xml new file mode 100644 index 0000000..5aad340 --- /dev/null +++ b/.idea/libraries/HeadDatabaseAPI.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/HeadDatabaseAPI1.xml b/.idea/libraries/HeadDatabaseAPI1.xml deleted file mode 100644 index a16e755..0000000 --- a/.idea/libraries/HeadDatabaseAPI1.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/PlaceholderAPI_2_10_21.xml b/.idea/libraries/PlaceholderAPI_2_10_21.xml index 0685287..db11d32 100644 --- a/.idea/libraries/PlaceholderAPI_2_10_21.xml +++ b/.idea/libraries/PlaceholderAPI_2_10_21.xml @@ -1,7 +1,7 @@ - + diff --git a/.idea/libraries/TokenManager_3_2_4.xml b/.idea/libraries/TokenManager_3_2_4.xml index 007be0c..01e9b39 100644 --- a/.idea/libraries/TokenManager_3_2_4.xml +++ b/.idea/libraries/TokenManager_3_2_4.xml @@ -1,7 +1,7 @@ - + diff --git a/.idea/libraries/Vault.xml b/.idea/libraries/Vault.xml index a0276b2..917155b 100644 --- a/.idea/libraries/Vault.xml +++ b/.idea/libraries/Vault.xml @@ -1,7 +1,7 @@ - + diff --git a/.idea/libraries/VotingPlugin.xml b/.idea/libraries/VotingPlugin.xml index a3ad0d3..e5d22d4 100644 --- a/.idea/libraries/VotingPlugin.xml +++ b/.idea/libraries/VotingPlugin.xml @@ -1,7 +1,7 @@ - + diff --git a/.idea/libraries/spigot_1_16_1.xml b/.idea/libraries/spigot_1_16_1.xml index 44a0841..1394be5 100644 --- a/.idea/libraries/spigot_1_16_1.xml +++ b/.idea/libraries/spigot_1_16_1.xml @@ -1,11 +1,11 @@ - + - + \ No newline at end of file diff --git a/Command Panels.iml b/Command Panels.iml index 65f5c86..dc985bf 100644 --- a/Command Panels.iml +++ b/Command Panels.iml @@ -8,7 +8,7 @@ - + diff --git a/resource/config.yml b/resource/config.yml index 98c2388..0f3ca52 100644 --- a/resource/config.yml +++ b/resource/config.yml @@ -18,6 +18,7 @@ config: - '%cp-tag%&aEnter Input for Command' - '&cType &4%cp-args% &cto Cancel the command' format: + tag: '&6[&bCommandPanels&6]' perms: '&cNo permission.' reload: '&aReloaded.' nopanel: '&cPanel not found.' @@ -28,6 +29,5 @@ config: needitems: '&cInsufficient Items!' bought: '&aSuccessfully Bought For $%cp-args%' sold: '&aSuccessfully Sold For $%cp-args%' - tag: '&6[&bCommandPanels&6]' offline: 'Offline' offlineHeadValue: 'eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNmU1Mjg2YzQ3MGY2NmZmYTFhMTgzMzFjYmZmYjlhM2MyYTQ0MjRhOGM3MjU5YzQ0MzZmZDJlMzU1ODJhNTIyIn19fQ==' diff --git a/resource/example.yml b/resource/example.yml index 70cd980..90430e1 100644 --- a/resource/example.yml +++ b/resource/example.yml @@ -24,14 +24,17 @@ panels: material: LEATHER_HELMET name: '&d&lPURPLE' leatherarmor: PURPLE + damage: 30 '9': material: LEATHER_CHESTPLATE name: '&9&lBLUE' leatherarmor: BLUE + damage: 20 '18': material: LEATHER_LEGGINGS name: '&a&lLIME' leatherarmor: LIME + damage: 40 '2': material: cps= eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGJiMjczN2VjYmY5MTBlZmUzYjI2N2RiN2Q0YjMyN2YzNjBhYmM3MzJjNzdiZDBlNGVmZjFkNTEwY2RlZiJ9fX0= name: '&e&lE' @@ -85,6 +88,7 @@ panels: material: LEATHER_BOOTS name: '&e&lYELLOW' leatherarmor: YELLOW + damage: 50 '32': material: COMPASS stack: 12 diff --git a/resource/plugin.yml b/resource/plugin.yml index 911219d..21dd122 100644 --- a/resource/plugin.yml +++ b/resource/plugin.yml @@ -1,4 +1,4 @@ -version: 3.6.0 +version: 3.7.0 main: me.rockyhawk.commandPanels.commandpanels name: CommandPanels author: RockyHawk diff --git a/src/me/rockyhawk/commandPanels/commandpanels.java b/src/me/rockyhawk/commandPanels/commandpanels.java index ea4ae71..266b145 100644 --- a/src/me/rockyhawk/commandPanels/commandpanels.java +++ b/src/me/rockyhawk/commandPanels/commandpanels.java @@ -12,6 +12,8 @@ import java.lang.reflect.Field; import java.net.HttpURLConnection; import java.net.URL; import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import me.arcaniax.hdb.api.HeadDatabaseAPI; import me.clip.placeholderapi.PlaceholderAPI; @@ -40,6 +42,7 @@ import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.craftbukkit.libs.org.apache.commons.io.IOUtils; import org.bukkit.craftbukkit.libs.org.apache.commons.io.input.CharSequenceReader; import org.bukkit.enchantments.Enchantment; +import org.bukkit.inventory.meta.Damageable; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.InventoryHolder; @@ -62,12 +65,14 @@ public class commandpanels extends JavaPlugin { public boolean update = false; public boolean debug = false; public boolean openWithItem = false; //this will be true if there is a panel with open-with-item - public List generateMode = new ArrayList(); //players that are currently in generate mode - public List panelRunning = new ArrayList(); - public List userInputStrings = new ArrayList(); - public List editorInputStrings = new ArrayList(); - public ArrayList panelFiles = new ArrayList(); //names of all the files in the panels folder including extension - public ArrayList panelNames = new ArrayList(); //this will return something like {"mainMenuPanel","4"} which means the 4 is for panelFiles.get(4). So you know which file it is for + + public List generateMode = new ArrayList<>(); //players that are currently in generate mode + public List panelRunning = new ArrayList<>(); + public List userInputStrings = new ArrayList<>(); + public List editorInputStrings = new ArrayList<>(); + public List panelFiles = new ArrayList<>(); //names of all the files in the panels folder including extension + public List panelNames = new ArrayList<>(); //this will return something like {"mainMenuPanel","4"} which means the 4 is for panelFiles.get(4). So you know which file it is for + public File panelsf; public YamlConfiguration blockConfig; //where panel block locations are stored @@ -139,7 +144,7 @@ public class commandpanels extends JavaPlugin { } if (Objects.requireNonNull(this.config.getString("config.update-notifications")).equalsIgnoreCase("true")) { - githubNewUpdate(); + githubNewUpdate(true); } //load panelFiles @@ -158,10 +163,10 @@ public class commandpanels extends JavaPlugin { Inventory i; if (onOpen != 3) { //use the regular inventory - i = Bukkit.createInventory((InventoryHolder) null, Integer.parseInt(Objects.requireNonNull(pconfig.getString("panels." + panels + ".rows"))) * 9, ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(pconfig.getString("panels." + panels + ".title")))); + i = Bukkit.createInventory(null, Integer.parseInt(Objects.requireNonNull(pconfig.getString("panels." + panels + ".rows"))) * 9, papi( Objects.requireNonNull(pconfig.getString("panels." + panels + ".title")))); } else { //this means it is the Editor window - i = Bukkit.createInventory((InventoryHolder) null, Integer.parseInt(Objects.requireNonNull(pconfig.getString("panels." + panels + ".rows"))) * 9, ChatColor.translateAlternateColorCodes('&', ChatColor.GRAY + "Editing Panel: " + pconfig.getString("panels." + panels + ".title"))); + i = Bukkit.createInventory(null, Integer.parseInt(Objects.requireNonNull(pconfig.getString("panels." + panels + ".rows"))) * 9, papi( ChatColor.GRAY + "Editing Panel: " + pconfig.getString("panels." + panels + ".title"))); } String item = ""; @@ -178,69 +183,9 @@ public class commandpanels extends JavaPlugin { break; } String section = ""; - //onOpen needs to not be 3 so the editor won't include hasperm and noperm items + //onOpen needs to not be 3 so the editor won't include hasperm and hasvalue, etc items if (onOpen != 3) { - if (pconfig.contains("panels." + panels + ".item." + item.split("\\s")[c] + ".hasvalue")) { - //loop through possible hasvalue 1,2,3,etc - for (int count = 0; Objects.requireNonNull(pconfig.getConfigurationSection("panels." + panels + ".item." + item.split("\\s")[c])).getKeys(false).size() > count; count++) { - if (pconfig.contains("panels." + panels + ".item." + item.split("\\s")[c] + ".hasvalue" + count)) { - boolean outputValue = true; - //outputValue will default to true - if (pconfig.contains("panels." + panels + ".item." + item.split("\\s")[c] + ".hasvalue" + count + ".output")) { - //if output is true, and values match it will be this item, vice versa - outputValue = pconfig.getBoolean("panels." + panels + ".item." + item.split("\\s")[c] + ".hasvalue" + count + ".output"); - } - String value = pconfig.getString("panels." + panels + ".item." + item.split("\\s")[c] + ".hasvalue" + count + ".value"); - String compare = ChatColor.stripColor(papi(p,setCpPlaceholders(p,pconfig.getString("panels." + panels + ".item." + item.split("\\s")[c] + ".hasvalue" + count + ".compare")))); - if (compare.equals(value) == outputValue) { - //onOpen being 3 means it is the editor panel.. hasvalue items cannot be included to avoid item breaking - section = ".hasvalue" + count; - break; - } - } - } - //this will do the hasvalue without any numbers - boolean outputValue = true; - //outputValue will default to true - if (pconfig.contains("panels." + panels + ".item." + item.split("\\s")[c] + ".hasvalue.output")) { - //if output is true, and values match it will be this item, vice versa - outputValue = pconfig.getBoolean("panels." + panels + ".item." + item.split("\\s")[c] + ".hasvalue.output"); - } - String value = pconfig.getString("panels." + panels + ".item." + item.split("\\s")[c] + ".hasvalue.value"); - String compare = ChatColor.stripColor(papi(p,setCpPlaceholders(p,pconfig.getString("panels." + panels + ".item." + item.split("\\s")[c] + ".hasvalue.compare")))); - if (compare.equals(value) == outputValue) { - //onOpen being 3 means it is the editor panel.. hasvalue items cannot be included to avoid item breaking - section = ".hasvalue"; - } - } - if (pconfig.contains("panels." + panels + ".item." + item.split("\\s")[c] + ".hasperm")) { - //loop through possible noperm/hasperm 1,2,3,etc - for (int count = 0; Objects.requireNonNull(pconfig.getConfigurationSection("panels." + panels + ".item." + item.split("\\s")[c])).getKeys(false).size() > count; count++) { - if (pconfig.contains("panels." + panels + ".item." + item.split("\\s")[c] + ".hasperm" + count)) { - boolean outputValue = true; - //outputValue will default to true - if (pconfig.contains("panels." + panels + ".item." + item.split("\\s")[c] + ".hasperm" + count + ".output")) { - //if output is true, and values match it will be this item, vice versa - outputValue = pconfig.getBoolean("panels." + panels + ".item." + item.split("\\s")[c] + ".hasperm" + count + ".output"); - } - if (p.hasPermission(Objects.requireNonNull(pconfig.getString("panels." + panels + ".item." + item.split("\\s")[c] + ".hasperm" + count + ".perm"))) == outputValue) { - //onOpen being 3 means it is the editor panel.. noPerm and hasPerm items cannot be included to avoid item breaking - section = ".hasperm" + count; - break; - } - } - } - //this will do the hasperm without any numbers - boolean outputValue = true; - //outputValue will default to true - if (pconfig.contains("panels." + panels + ".item." + item.split("\\s")[c] + ".hasperm" + ".output")) { - //if output is true, and values match it will be this item, vice versa - outputValue = pconfig.getBoolean("panels." + panels + ".item." + item.split("\\s")[c] + ".hasperm" + ".output"); - } - if (p.hasPermission(Objects.requireNonNull(pconfig.getString("panels." + panels + ".item." + item.split("\\s")[c] + ".hasperm.perm"))) == outputValue) { - section = ".hasperm"; - } - } + section = hasSection(panels, pconfig, Integer.parseInt(item.split("\\s")[c]), p); //This section is for animations below here: VISUAL ONLY //check for if there is animations inside the items section @@ -251,13 +196,13 @@ public class commandpanels extends JavaPlugin { } } } - ItemStack s = makeItemFromConfig(Objects.requireNonNull(pconfig.getConfigurationSection("panels." + panels + ".item." + item.split("\\s")[c] + section)), p, onOpen != 3); + ItemStack s = makeItemFromConfig(Objects.requireNonNull(pconfig.getConfigurationSection("panels." + panels + ".item." + item.split("\\s")[c] + section)), p, onOpen != 3, onOpen != 3); try { i.setItem(Integer.parseInt(item.split("\\s")[c]), s); } catch (ArrayIndexOutOfBoundsException var24) { debug(var24); if (debug) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + papi(p, this.config.getString("config.format.error") + " item: One of the items does not fit in the Panel!"))); + p.sendMessage(papi(tag + this.config.getString("config.format.error") + " item: One of the items does not fit in the Panel!")); } } } @@ -280,7 +225,7 @@ public class commandpanels extends JavaPlugin { } } catch (IllegalArgumentException | NullPointerException var26) { debug(var26); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + papi(p, this.config.getString("config.format.error") + " empty: " + pconfig.getString("panels." + panels + ".empty")))); + p.sendMessage(papi(tag + this.config.getString("config.format.error") + " empty: " + pconfig.getString("panels." + panels + ".empty"))); return null; } @@ -295,24 +240,24 @@ public class commandpanels extends JavaPlugin { } } } - if (ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(pconfig.getString("panels." + panels + ".title"))).equals("Chest")) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + papi(p, this.config.getString("config.format.error") + " Title: Cannot be named Chest"))); + if (papi( Objects.requireNonNull(pconfig.getString("panels." + panels + ".title"))).equals("Chest")) { + p.sendMessage(papi(tag + this.config.getString("config.format.error") + " Title: Cannot be named Chest")); return null; } - if (ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(pconfig.getString("panels." + panels + ".title"))).contains("Editing Panel:")) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + papi(p, this.config.getString("config.format.error") + " Title: Cannot contain Editing Panel:"))); + if (papi( Objects.requireNonNull(pconfig.getString("panels." + panels + ".title"))).contains("Editing Panel:")) { + p.sendMessage(papi(tag + this.config.getString("config.format.error") + " Title: Cannot contain Editing Panel:")); return null; } - if (ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(pconfig.getString("panels." + panels + ".title"))).contains("Panel Settings:")) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + papi(p, this.config.getString("config.format.error") + " Title: Cannot contain Panel Settings:"))); + if (papi( Objects.requireNonNull(pconfig.getString("panels." + panels + ".title"))).contains("Panel Settings:")) { + p.sendMessage(papi(tag + this.config.getString("config.format.error") + " Title: Cannot contain Panel Settings:")); return null; } - if (ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(pconfig.getString("panels." + panels + ".title"))).contains("Item Settings:")) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + papi(p, this.config.getString("config.format.error") + " Title: Cannot contain Item Settings:"))); + if (papi( Objects.requireNonNull(pconfig.getString("panels." + panels + ".title"))).contains("Item Settings:")) { + p.sendMessage(papi(tag + this.config.getString("config.format.error") + " Title: Cannot contain Item Settings:")); return null; } - if (ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(pconfig.getString("panels." + panels + ".title"))).equals("Command Panels Editor")) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + papi(p, this.config.getString("config.format.error") + " Title: Cannot be named Command Panels Editor"))); + if (papi( Objects.requireNonNull(pconfig.getString("panels." + panels + ".title"))).equals("Command Panels Editor")) { + p.sendMessage(papi(tag + this.config.getString("config.format.error") + " Title: Cannot be named Command Panels Editor")); return null; } if (onOpen == 1 || onOpen == 3) { @@ -327,32 +272,35 @@ public class commandpanels extends JavaPlugin { } return i; } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + papi(p, this.config.getString("config.format.error") + " rows: " + pconfig.getString("panels." + panels + ".rows")))); + p.sendMessage(papi(tag + this.config.getString("config.format.error") + " rows: " + pconfig.getString("panels." + panels + ".rows"))); return null; } } - public void setName(ItemStack renamed, String customName, List lore, Player p, Boolean usePlaceholders) { + public void setName(ItemStack renamed, String customName, List lore, Player p, Boolean usePlaceholders, Boolean useColours) { try { ItemMeta renamedMeta = renamed.getItemMeta(); //set cp placeholders - if(usePlaceholders) { - customName = papi(p, setCpPlaceholders(p, customName)); + if(usePlaceholders && useColours){ + customName = papi(p,customName); + }else if(useColours){ + customName = papi(customName); + }else{ + customName = setCpPlaceholders(p, customName); } assert renamedMeta != null; renamedMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES); if (customName != null) { - renamedMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', customName)); + renamedMeta.setDisplayName(customName); } - List clore = new ArrayList(); + List clore = new ArrayList<>(); if (lore != null) { - for (int i = 0; lore.size() > i; ++i) { - clore.add(ChatColor.translateAlternateColorCodes('&', lore.get(i).toString())); - if(usePlaceholders) { - clore.set(i, papi(p, setCpPlaceholders(p, clore.get(i)))); - } + if(usePlaceholders && useColours){ + papi(p, clore, true); + }else if(useColours){ + papi(p, clore, false); } renamedMeta.setLore(clore); } @@ -448,16 +396,28 @@ public class commandpanels extends JavaPlugin { if (this.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) { setpapi = PlaceholderAPI.setPlaceholders(p, setpapi); } - return ChatColor.translateAlternateColorCodes('&', setpapi); + setpapi = setCpPlaceholders(p,setpapi); + setpapi = translateHexColorCodes(ChatColor.translateAlternateColorCodes('&', setpapi)); + return setpapi; + }catch(NullPointerException e){ + return setpapi; + } + } + + //regular string papi, but only colours so Player doesn't need to be there + public String papi(String setpapi) { + try { + setpapi = translateHexColorCodes(ChatColor.translateAlternateColorCodes('&', setpapi)); + return setpapi; }catch(NullPointerException e){ return setpapi; } } //papi except if it is a String List - public List papi(Player p, List setpapi) { + public List papi(Player p, List setpapi, boolean placeholders) { try { - if (this.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) { + if (this.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI") && placeholders) { setpapi = PlaceholderAPI.setPlaceholders(p, setpapi); } }catch(Exception ignore){ @@ -468,7 +428,7 @@ public class commandpanels extends JavaPlugin { //change colour for(String temp : setpapi){ try { - setpapi.set(tempInt, ChatColor.translateAlternateColorCodes('&', temp)); + setpapi.set(tempInt, translateHexColorCodes(ChatColor.translateAlternateColorCodes('&', temp))); }catch(NullPointerException ignore){ } @@ -494,16 +454,16 @@ public class commandpanels extends JavaPlugin { boolean isop = p.isOp(); try { p.setOp(true); - Bukkit.dispatchCommand(p, ChatColor.translateAlternateColorCodes('&', papi(p, command.replace("op=", "").trim()))); + Bukkit.dispatchCommand(p,papi(p, command.replace("op=", "").trim())); p.setOp(isop); } catch (Exception exc) { p.setOp(isop); debug(exc); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + papi(p, config.getString("config.format.error") + " op=: Error in op command!"))); + p.sendMessage(tag + papi( config.getString("config.format.error") + " op=: Error in op command!")); } } else if (command.split("\\s")[0].equalsIgnoreCase("console=")) { //if player uses console= it will perform command in the console - Bukkit.dispatchCommand(Bukkit.getConsoleSender(), ChatColor.translateAlternateColorCodes('&', papi(p, command.replace("console=", "").trim()))); + Bukkit.dispatchCommand(Bukkit.getConsoleSender(), papi(p, command.replace("console=", "").trim())); } else if (command.split("\\s")[0].equalsIgnoreCase("buy=")) { //if player uses buy= it will be eg. buy= try { @@ -512,7 +472,7 @@ public class commandpanels extends JavaPlugin { econ.withdrawPlayer(p, Double.parseDouble(command.split("\\s")[1])); //if the message is empty don't send if(!Objects.requireNonNull(config.getString("config.format.bought")).isEmpty()){ - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + Objects.requireNonNull(config.getString("config.format.bought")).replaceAll("%cp-args%", command.split("\\s")[1]))); + p.sendMessage(papi( tag + Objects.requireNonNull(config.getString("config.format.bought")).replaceAll("%cp-args%", command.split("\\s")[1]))); } if (p.getInventory().firstEmpty() >= 0) { p.getInventory().addItem(new ItemStack(Objects.requireNonNull(Material.matchMaterial(command.split("\\s")[2])), Integer.parseInt(command.split("\\s")[3]))); @@ -520,14 +480,14 @@ public class commandpanels extends JavaPlugin { Objects.requireNonNull(p.getLocation().getWorld()).dropItemNaturally(p.getLocation(), new ItemStack(Objects.requireNonNull(Material.matchMaterial(command.split("\\s")[2])), Integer.parseInt(command.split("\\s")[3]))); } } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + config.getString("config.format.needmoney"))); + p.sendMessage(papi( tag + config.getString("config.format.needmoney"))); } } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + "Buying Requires Vault and an Economy to work!")); + p.sendMessage(papi( tag + ChatColor.RED + "Buying Requires Vault and an Economy to work!")); } } catch (Exception buy) { debug(buy); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + papi(p, config.getString("config.format.error") + " " + "commands: " + command))); + p.sendMessage(papi(tag + config.getString("config.format.error") + " " + "commands: " + command)); } } else if (command.split("\\s")[0].equalsIgnoreCase("tokenbuy=")) { //if player uses tokenbuy= it will be eg. tokenbuy= @@ -540,7 +500,7 @@ public class commandpanels extends JavaPlugin { api.removeTokens(p, Long.parseLong(command.split("\\s")[1])); //if the message is empty don't send if(!Objects.requireNonNull(config.getString("config.format.bought")).isEmpty()) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + Objects.requireNonNull(config.getString("config.format.bought")).replaceAll("%cp-args%", command.split("\\s")[1]))); + p.sendMessage(papi( tag + Objects.requireNonNull(config.getString("config.format.bought")).replaceAll("%cp-args%", command.split("\\s")[1]))); } if (p.getInventory().firstEmpty() >= 0) { p.getInventory().addItem(new ItemStack(Objects.requireNonNull(Material.matchMaterial(command.split("\\s")[2])), Integer.parseInt(command.split("\\s")[3]))); @@ -548,14 +508,14 @@ public class commandpanels extends JavaPlugin { Objects.requireNonNull(p.getLocation().getWorld()).dropItemNaturally(p.getLocation(), new ItemStack(Objects.requireNonNull(Material.matchMaterial(command.split("\\s")[2])), Integer.parseInt(command.split("\\s")[3]))); } } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + config.getString("config.format.needmoney"))); + p.sendMessage(papi( tag + config.getString("config.format.needmoney"))); } } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + "Buying Requires TokenManager to work!")); + p.sendMessage(papi( tag + ChatColor.RED + "Buying Requires TokenManager to work!")); } } catch (Exception buy) { debug(buy); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + papi(p, config.getString("config.format.error") + " " + "commands: " + command))); + p.sendMessage(papi(tag + config.getString("config.format.error") + " " + "commands: " + command)); } } else if (command.split("\\s")[0].equalsIgnoreCase("sell=")) { //if player uses sell= it will be eg. sell= [enchanted:KNOCKBACK:1] [potion:JUMP] @@ -598,7 +558,7 @@ public class commandpanels extends JavaPlugin { PotionMeta potionMeta = (PotionMeta) itm.getItemMeta(); assert potionMeta != null; if (!potionMeta.getBasePotionData().getType().name().equalsIgnoreCase(potion)) { - p.sendMessage(papi(p, tag + ChatColor.RED + "Your item has the wrong potion effect")); + p.sendMessage(papi( tag + ChatColor.RED + "Your item has the wrong potion effect")); return; } } @@ -618,19 +578,19 @@ public class commandpanels extends JavaPlugin { } } if (!sold) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + config.getString("config.format.needitems"))); + p.sendMessage(papi( tag + config.getString("config.format.needitems"))); } else { //if the message is empty don't send if(!Objects.requireNonNull(config.getString("config.format.sold")).isEmpty()) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + Objects.requireNonNull(config.getString("config.format.sold")).replaceAll("%cp-args%", command.split("\\s")[1]))); + p.sendMessage(papi( tag + Objects.requireNonNull(config.getString("config.format.sold")).replaceAll("%cp-args%", command.split("\\s")[1]))); } } } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + "Selling Requires Vault and an Economy to work!")); + p.sendMessage(papi( tag + ChatColor.RED + "Selling Requires Vault and an Economy to work!")); } } catch (Exception sell) { debug(sell); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + papi(p, config.getString("config.format.error") + " " + "commands: " + command))); + p.sendMessage(papi(tag + config.getString("config.format.error") + " " + "commands: " + command)); } } else if (command.split("\\s")[0].equalsIgnoreCase("tokensell=")) { //if player uses tokensell= it will be eg. tokensell= [enchanted:KNOCKBACK:1] [potion:JUMP] @@ -654,7 +614,7 @@ public class commandpanels extends JavaPlugin { PotionMeta potionMeta = (PotionMeta) itm.getItemMeta(); assert potionMeta != null; if (!potionMeta.getBasePotionData().getType().name().equalsIgnoreCase(potion)) { - p.sendMessage(papi(p, tag + ChatColor.RED + "Your item has the wrong potion effect")); + p.sendMessage(papi( tag + ChatColor.RED + "Your item has the wrong potion effect")); return; } } @@ -676,30 +636,30 @@ public class commandpanels extends JavaPlugin { } } if (!sold) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + config.getString("config.format.needitems"))); + p.sendMessage(papi( tag + config.getString("config.format.needitems"))); } else { //if the message is empty don't send if(!Objects.requireNonNull(config.getString("config.format.sold")).isEmpty()) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + Objects.requireNonNull(config.getString("config.format.sold")).replaceAll("%cp-args%", command.split("\\s")[1]))); + p.sendMessage(papi( tag + Objects.requireNonNull(config.getString("config.format.sold")).replaceAll("%cp-args%", command.split("\\s")[1]))); } } } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + "Selling Requires TokenManager to work!")); + p.sendMessage(papi( tag + ChatColor.RED + "Selling Requires TokenManager to work!")); } } catch (Exception sell) { debug(sell); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + papi(p, config.getString("config.format.error") + " " + "commands: " + command))); + p.sendMessage(papi(tag + config.getString("config.format.error") + " " + "commands: " + command)); } } else if (command.split("\\s")[0].equalsIgnoreCase("msg=")) { //if player uses msg= it will send the player a message - p.sendMessage(ChatColor.translateAlternateColorCodes('&', papi(p, command.replace("msg=", "").trim()))); + p.sendMessage(papi(p, command.replace("msg=", "").trim())); } else if (command.split("\\s")[0].equalsIgnoreCase("sound=")) { //if player uses sound= it will play a sound (sound= [sound]) try { p.playSound(p.getLocation(), Sound.valueOf(command.split("\\s")[1]), 1F, 1F); } catch (Exception s) { debug(s); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + papi(p, config.getString("config.format.error") + " " + "commands: " + command))); + p.sendMessage(papi(tag + config.getString("config.format.error") + " " + "commands: " + command)); } } else if (command.split("\\s")[0].equalsIgnoreCase("tokenbuycommand=")) { //if player uses tokenbuycommand [price] [command] @@ -715,20 +675,20 @@ public class commandpanels extends JavaPlugin { commandp = commandp.replace("tokenbuycommand=", "").trim(); String price = commandp.split(" ", 2)[0]; commandp = commandp.split(" ", 2)[1]; - Bukkit.dispatchCommand(Bukkit.getConsoleSender(), ChatColor.translateAlternateColorCodes('&', papi(p, commandp))); + Bukkit.dispatchCommand(Bukkit.getConsoleSender(), papi(p, commandp)); //if the message is empty don't send if(!Objects.requireNonNull(config.getString("config.format.bought")).isEmpty()) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + Objects.requireNonNull(config.getString("config.format.bought")).replaceAll("%cp-args%", price))); + p.sendMessage(papi( tag + Objects.requireNonNull(config.getString("config.format.bought")).replaceAll("%cp-args%", price))); } } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + config.getString("config.format.needmoney"))); + p.sendMessage(papi( tag + config.getString("config.format.needmoney"))); } } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + "Buying Requires Vault and an Economy to work!")); + p.sendMessage(papi( tag + ChatColor.RED + "Buying Requires Vault and an Economy to work!")); } } catch (Exception buyc) { debug(buyc); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + papi(p, config.getString("config.format.error") + " " + "commands: " + command))); + p.sendMessage(papi(tag + config.getString("config.format.error") + " " + "commands: " + command)); } } else if (command.split("\\s")[0].equalsIgnoreCase("buycommand=")) { //if player uses buycommand [price] [command] @@ -741,20 +701,20 @@ public class commandpanels extends JavaPlugin { commandp = commandp.replace("buycommand=", "").trim(); String price = commandp.split(" ", 2)[0]; commandp = commandp.split(" ", 2)[1]; - Bukkit.dispatchCommand(Bukkit.getConsoleSender(), ChatColor.translateAlternateColorCodes('&', papi(p, commandp))); + Bukkit.dispatchCommand(Bukkit.getConsoleSender(), papi( papi(p, commandp))); //if the message is empty don't send if(!Objects.requireNonNull(config.getString("config.format.bought")).isEmpty()) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + Objects.requireNonNull(config.getString("config.format.bought")).replaceAll("%cp-args%", price))); + p.sendMessage(papi( tag + Objects.requireNonNull(config.getString("config.format.bought")).replaceAll("%cp-args%", price))); } } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + config.getString("config.format.needmoney"))); + p.sendMessage(papi( tag + config.getString("config.format.needmoney"))); } } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + "Buying Requires Vault and an Economy to work!")); + p.sendMessage(papi( tag + ChatColor.RED + "Buying Requires Vault and an Economy to work!")); } } catch (Exception buyc) { debug(buyc); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + papi(p, config.getString("config.format.error") + " " + "commands: " + command))); + p.sendMessage(papi(tag + config.getString("config.format.error") + " " + "commands: " + command)); } } else if (command.split("\\s")[0].equalsIgnoreCase("teleport=")) { //if player uses teleport= x y z (optional other player) @@ -782,7 +742,7 @@ public class commandpanels extends JavaPlugin { assert otherplayer != null; otherplayer.teleport(new Location(otherplayer.getWorld(), x, y, z)); } catch (Exception tpe) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + config.getString("config.format.notitem"))); + p.sendMessage(tag + config.getString("config.format.notitem")); } } } else if (command.split("\\s")[0].equalsIgnoreCase("stopsound=")) { @@ -791,13 +751,13 @@ public class commandpanels extends JavaPlugin { p.stopSound(Sound.valueOf(command.split("\\s")[1])); } catch (Exception ss) { debug(ss); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + papi(p, config.getString("config.format.error") + " " + "commands: " + command))); + p.sendMessage(papi(tag + config.getString("config.format.error") + " " + "commands: " + command)); } } else if (command.split("\\s")[0].equalsIgnoreCase("sudo=")) { //if player uses sudo= [command] - p.chat(ChatColor.translateAlternateColorCodes('&', papi(p, "/" + command.replaceAll("sudo=", "").trim()))); + p.chat(papi(p, "/" + command.replaceAll("sudo=", "").trim())); } else { - Bukkit.dispatchCommand(p, ChatColor.translateAlternateColorCodes('&', papi(p, command))); + Bukkit.dispatchCommand(p, papi(p, command)); } } @@ -817,7 +777,7 @@ public class commandpanels extends JavaPlugin { String playerLocation = str.substring(start, end).replace("%cp-player-online-", ""); Player[] playerFind = Bukkit.getOnlinePlayers().toArray(new Player[Bukkit.getOnlinePlayers().size()]); if (Integer.parseInt(playerLocation) > playerFind.length) { - str = str.replace(str.substring(start, end) + "-find%", papi(p, ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("config.format.offline"))))); + str = str.replace(str.substring(start, end) + "-find%", papi(p,Objects.requireNonNull(config.getString("config.format.offline")))); } else { str = str.replace(str.substring(start, end) + "-find%", playerFind[Integer.parseInt(playerLocation) - 1].getName()); } @@ -849,7 +809,7 @@ public class commandpanels extends JavaPlugin { for (String temp : inputMessages) { temp = temp.replaceAll("%cp-args%", Objects.requireNonNull(config.getString("config.input-cancel"))); temp = temp.replaceAll("%cp-tag%", tag); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', papi(p, temp))); + p.sendMessage(papi(p, temp)); } str = "commandpanels:commandpanelclose"; } @@ -867,20 +827,20 @@ public class commandpanels extends JavaPlugin { econ.withdrawPlayer(p, Double.parseDouble(command.split("\\s")[1])); //if the message is empty don't send if(!config.getString("config.format.bought").isEmpty()) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + Objects.requireNonNull(config.getString("config.format.bought")).replaceAll("%cp-args%", command.split("\\s")[1]))); + p.sendMessage(papi( tag + Objects.requireNonNull(config.getString("config.format.bought")).replaceAll("%cp-args%", command.split("\\s")[1]))); } return 1; } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + config.getString("config.format.needmoney"))); + p.sendMessage(papi( tag + config.getString("config.format.needmoney"))); return 0; } } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + "Paying Requires Vault and an Economy to work!")); + p.sendMessage(papi( tag + ChatColor.RED + "Paying Requires Vault and an Economy to work!")); return 0; } } catch (Exception buyc) { debug(buyc); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + papi(p, config.getString("config.format.error") + " " + "commands: " + command))); + p.sendMessage(papi(p, tag + config.getString("config.format.error") + " " + "commands: " + command)); return 0; } } else if (command.split("\\s")[0].equalsIgnoreCase("tokenpaywall=")) { @@ -894,20 +854,20 @@ public class commandpanels extends JavaPlugin { api.removeTokens(p, Long.parseLong(command.split("\\s")[1])); //if the message is empty don't send if(!Objects.requireNonNull(config.getString("config.format.bought")).isEmpty()) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + Objects.requireNonNull(config.getString("config.format.bought")).replaceAll("%cp-args%", command.split("\\s")[1]))); + p.sendMessage(papi( tag + Objects.requireNonNull(config.getString("config.format.bought")).replaceAll("%cp-args%", command.split("\\s")[1]))); } return 1; } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + config.getString("config.format.needmoney"))); + p.sendMessage(papi( tag + config.getString("config.format.needmoney"))); return 0; } } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + "Paying TokenManager to work!")); + p.sendMessage(papi( tag + ChatColor.RED + "Paying TokenManager to work!")); return 0; } } catch (Exception buyc) { debug(buyc); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + papi(p, config.getString("config.format.error") + " " + "commands: " + command))); + p.sendMessage(papi(p, tag + config.getString("config.format.error") + " " + "commands: " + command)); return 0; } } else if (command.split("\\s")[0].equalsIgnoreCase("xp-paywall=")) { @@ -918,16 +878,16 @@ public class commandpanels extends JavaPlugin { p.setLevel(p.getLevel() - Integer.parseInt(command.split("\\s")[1])); //if the message is empty don't send if(!Objects.requireNonNull(config.getString("config.format.bought")).isEmpty()) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + Objects.requireNonNull(config.getString("config.format.bought")).replaceAll("%cp-args%", command.split("\\s")[1]))); + p.sendMessage(papi( tag + Objects.requireNonNull(config.getString("config.format.bought")).replaceAll("%cp-args%", command.split("\\s")[1]))); } return 1; } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + config.getString("config.format.needmoney"))); + p.sendMessage(papi( tag + config.getString("config.format.needmoney"))); return 0; } } catch (Exception buyc) { debug(buyc); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + papi(p, config.getString("config.format.error") + " " + "commands: " + command))); + p.sendMessage(papi(p, tag + config.getString("config.format.error") + " " + "commands: " + command)); return 0; } } else { @@ -975,7 +935,7 @@ public class commandpanels extends JavaPlugin { public void helpMessage(CommandSender p) { String tag = config.getString("config.format.tag") + " "; - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Commands:")); + p.sendMessage(papi( tag + ChatColor.GREEN + "Commands:")); p.sendMessage(ChatColor.GOLD + "/cp [player:item] [player] " + ChatColor.WHITE + "Open a command panel."); if (p.hasPermission("commandpanel.reload")) { p.sendMessage(ChatColor.GOLD + "/cpr " + ChatColor.WHITE + "Reloads plugin config."); @@ -1042,8 +1002,8 @@ public class commandpanels extends JavaPlugin { } for (String s : Objects.requireNonNull(temp.getConfigurationSection("panels")).getKeys(false)) { key = s; - panelNames.add(ChatColor.translateAlternateColorCodes('&', key)); - panelTitles.add(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(temp.getString("panels." + key + ".title")))); + panelNames.add(papi( key)); + panelTitles.add(papi( Objects.requireNonNull(temp.getString("panels." + key + ".title")))); if (temp.contains("panels." + key + ".open-with-item.material")) { panelItems.add(Material.matchMaterial(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.material")))); } else { @@ -1072,10 +1032,10 @@ public class commandpanels extends JavaPlugin { //make all the bottom bar items ItemStack temp; temp = new ItemStack(Material.SUNFLOWER, 1); - setName(temp, ChatColor.WHITE + "Page " + pageNumber, null, p, true); + setName(temp, ChatColor.WHITE + "Page " + pageNumber, null, p, true, true); i.setItem(49, temp); temp = new ItemStack(Material.BARRIER, 1); - setName(temp, ChatColor.RED + "Exit Menu", null, p, true); + setName(temp, ChatColor.RED + "Exit Menu", null, p, true, true); i.setItem(45, temp); temp = new ItemStack(Material.BOOK, 1); List lore = new ArrayList(); @@ -1087,18 +1047,18 @@ public class commandpanels extends JavaPlugin { lore.add(ChatColor.GRAY + " type 'remove' to set a"); lore.add(ChatColor.GRAY + " value to default, and use"); lore.add(ChatColor.GRAY + " '" + config.getString("config.input-cancel") + "' to cancel."); - setName(temp, ChatColor.WHITE + "Panel Editor Tips", lore, p, true); + setName(temp, ChatColor.WHITE + "Panel Editor Tips", lore, p, true, true); i.setItem(53, temp); if (pageNumber != 1) { //only show previous page button if number is not one temp = new ItemStack(Material.PAPER, 1); - setName(temp, ChatColor.WHITE + "Previous Page", null, p, true); + setName(temp, ChatColor.WHITE + "Previous Page", null, p, true, true); i.setItem(48, temp); } if (pageNumber < pagesAmount) { //if page number is under pages amount temp = new ItemStack(Material.PAPER, 1); - setName(temp, ChatColor.WHITE + "Next Page", null, p, true); + setName(temp, ChatColor.WHITE + "Next Page", null, p, true, true); i.setItem(50, temp); } int count = 0; @@ -1107,7 +1067,7 @@ public class commandpanels extends JavaPlugin { //count is +1 because count starts at 0 not 1 if ((pageNumber * 45 - 45) < (count + 1) && (pageNumber * 45) > (count)) { temp = new ItemStack(panelItems.get(count), 1); - setName(temp, ChatColor.WHITE + panelName, null, p, true); + setName(temp, ChatColor.WHITE + panelName, null, p, true, true); i.setItem(slot, temp); slot += 1; } @@ -1136,7 +1096,7 @@ public class commandpanels extends JavaPlugin { lore.add(ChatColor.WHITE + "--------------------------------"); lore.add(ChatColor.WHITE + "commandpanel.panel." + cf.getString("panels." + panelName + ".perm")); } - setName(temp, ChatColor.WHITE + "Panel Permission", lore, p,true); + setName(temp, ChatColor.WHITE + "Panel Permission", lore, p,true, true); i.setItem(1, temp); temp = new ItemStack(Material.NAME_TAG, 1); @@ -1146,7 +1106,7 @@ public class commandpanels extends JavaPlugin { lore.add(ChatColor.WHITE + "------------------"); lore.add(ChatColor.WHITE + cf.getString("panels." + panelName + ".title")); } - setName(temp, ChatColor.WHITE + "Panel Title", lore, p,true); + setName(temp, ChatColor.WHITE + "Panel Title", lore, p,true, true); i.setItem(3, temp); temp = new ItemStack(Material.JUKEBOX, 1); @@ -1156,7 +1116,7 @@ public class commandpanels extends JavaPlugin { lore.add(ChatColor.WHITE + "------------------------"); lore.add(ChatColor.WHITE + Objects.requireNonNull(cf.getString("panels." + panelName + ".sound-on-open")).toUpperCase()); } - setName(temp, ChatColor.WHITE + "Panel Sound", lore, p,true); + setName(temp, ChatColor.WHITE + "Panel Sound", lore, p,true, true); i.setItem(5, temp); temp = new ItemStack(Material.IRON_DOOR, 1); @@ -1166,20 +1126,20 @@ public class commandpanels extends JavaPlugin { lore.add(ChatColor.WHITE + "----------------------------"); lore.add(ChatColor.WHITE + cf.getString("panels." + panelName + ".command")); } - setName(temp, ChatColor.WHITE + "Panel Command", lore, p,true); + setName(temp, ChatColor.WHITE + "Panel Command", lore, p,true, true); i.setItem(7, temp); temp = new ItemStack(Material.LAVA_BUCKET, 1); lore.clear(); lore.add(ChatColor.DARK_RED + "Permanently delete Panel"); - setName(temp, ChatColor.RED + "Delete Panel", lore, p,true); + setName(temp, ChatColor.RED + "Delete Panel", lore, p,true, true); i.setItem(21, temp); temp = new ItemStack(Material.PISTON, 1); lore.clear(); lore.add(ChatColor.GRAY + "How many rows the panel will be"); lore.add(ChatColor.GRAY + "choose an integer from 1 to 6"); - setName(temp, ChatColor.WHITE + "Panel Rows", lore, p,true); + setName(temp, ChatColor.WHITE + "Panel Rows", lore, p,true, true); i.setItem(23, temp); temp = new ItemStack(Material.BLACK_STAINED_GLASS, 1); @@ -1189,7 +1149,7 @@ public class commandpanels extends JavaPlugin { lore.add(ChatColor.WHITE + "-----------------------"); lore.add(ChatColor.WHITE + Objects.requireNonNull(cf.getString("panels." + panelName + ".empty")).toUpperCase()); } - setName(temp, ChatColor.WHITE + "Panel Empty Item", lore, p,true); + setName(temp, ChatColor.WHITE + "Panel Empty Item", lore, p,true, true); i.setItem(13, temp); temp = new ItemStack(Material.COMMAND_BLOCK, 1); @@ -1205,7 +1165,7 @@ public class commandpanels extends JavaPlugin { count += 1; } } - setName(temp, ChatColor.WHITE + "Panel Commands", lore, p,true); + setName(temp, ChatColor.WHITE + "Panel Commands", lore, p,true, true); i.setItem(15, temp); temp = new ItemStack(Material.ITEM_FRAME, 1); @@ -1214,16 +1174,16 @@ public class commandpanels extends JavaPlugin { lore.add(ChatColor.GRAY + "/cp [name]"); lore.add(ChatColor.WHITE + "-----------------------"); lore.add(ChatColor.WHITE + panelName); - setName(temp, ChatColor.WHITE + "Panel Name", lore, p,true); + setName(temp, ChatColor.WHITE + "Panel Name", lore, p,true, true); i.setItem(11, temp); temp = new ItemStack(Material.BARRIER, 1); - setName(temp, ChatColor.RED + "Back", null, p,true); + setName(temp, ChatColor.RED + "Back", null, p,true, true); i.setItem(18, temp); //This will create a wall of glass panes, separating panel settings with hotbar settings temp = new ItemStack(Material.BLACK_STAINED_GLASS_PANE, 1); - setName(temp, ChatColor.WHITE + "", null, p,false); + setName(temp, ChatColor.WHITE + "", null, p,false, true); for(int d = 27; d < 36; d++){ i.setItem(d, temp); } @@ -1245,7 +1205,7 @@ public class commandpanels extends JavaPlugin { lore.add(ChatColor.WHITE + "-----------------------"); lore.add(ChatColor.RED + "DISABLED"); } - setName(temp, ChatColor.WHITE + "Panel Hotbar Item", lore, p,true); + setName(temp, ChatColor.WHITE + "Panel Hotbar Item", lore, p,true, true); i.setItem(40, temp); if(hotbarItems) { @@ -1256,7 +1216,7 @@ public class commandpanels extends JavaPlugin { lore.add(ChatColor.WHITE + "----------"); lore.add(ChatColor.WHITE + Objects.requireNonNull(cf.getString("panels." + panelName + ".open-with-item.name"))); } - setName(temp, ChatColor.WHITE + "Hotbar Item Name", lore, p, true); + setName(temp, ChatColor.WHITE + "Hotbar Item Name", lore, p, true, true); i.setItem(38, temp); temp = new ItemStack(Material.SPRUCE_SIGN, 1); @@ -1272,7 +1232,7 @@ public class commandpanels extends JavaPlugin { count += 1; } } - setName(temp, ChatColor.WHITE + "Hotbar Lore", lore, p,true); + setName(temp, ChatColor.WHITE + "Hotbar Lore", lore, p,true, true); i.setItem(36, temp); temp = new ItemStack(Material.BEDROCK, 1); @@ -1285,7 +1245,7 @@ public class commandpanels extends JavaPlugin { int location = cf.getInt("panels." + panelName + ".open-with-item.stationary") + 1; lore.add(ChatColor.WHITE + String.valueOf(location)); } - setName(temp, ChatColor.WHITE + "Hotbar Item Location", lore, p, true); + setName(temp, ChatColor.WHITE + "Hotbar Item Location", lore, p, true, true); i.setItem(42, temp); temp = new ItemStack(Material.BOOK, 1); @@ -1294,7 +1254,7 @@ public class commandpanels extends JavaPlugin { lore.add(ChatColor.GRAY + " /cp " + panelName + " item"); lore.add(ChatColor.GRAY + "- Hotbar items will need a"); lore.add(ChatColor.GRAY + " name to work properly."); - setName(temp, ChatColor.WHITE + "Hotbar Item Tips", lore, p, true); + setName(temp, ChatColor.WHITE + "Hotbar Item Tips", lore, p, true, true); i.setItem(44, temp); } @@ -1322,7 +1282,7 @@ public class commandpanels extends JavaPlugin { lore.add(ChatColor.WHITE + cf.getString("panels." + panelName + ".item." + itemNumber + ".name")); } } - setName(temp, ChatColor.WHITE + "Item Name", lore, p,true); + setName(temp, ChatColor.WHITE + "Item Name", lore, p,true, true); i.setItem(1, temp); temp = new ItemStack(Material.COMMAND_BLOCK, 1); @@ -1338,7 +1298,7 @@ public class commandpanels extends JavaPlugin { count += 1; } } - setName(temp, ChatColor.WHITE + "Item Commands", lore, p,true); + setName(temp, ChatColor.WHITE + "Item Commands", lore, p,true, true); i.setItem(3, temp); temp = new ItemStack(Material.EXPERIENCE_BOTTLE, 1); @@ -1353,7 +1313,7 @@ public class commandpanels extends JavaPlugin { lore.add(ChatColor.WHITE + "--------------------------------"); lore.add(ChatColor.WHITE + "false"); } - setName(temp, ChatColor.WHITE + "Item Enchantment", lore, p,true); + setName(temp, ChatColor.WHITE + "Item Enchantment", lore, p,true, true); i.setItem(5, temp); temp = new ItemStack(Material.POTION, 1); @@ -1365,7 +1325,7 @@ public class commandpanels extends JavaPlugin { lore.add(ChatColor.WHITE + cf.getString("panels." + panelName + ".item." + itemNumber + ".potion")); } } - setName(temp, ChatColor.WHITE + "Item Potion Effect", lore, p,true); + setName(temp, ChatColor.WHITE + "Item Potion Effect", lore, p,true, true); i.setItem(7, temp); temp = new ItemStack(Material.SPRUCE_SIGN, 1); @@ -1381,7 +1341,7 @@ public class commandpanels extends JavaPlugin { count += 1; } } - setName(temp, ChatColor.WHITE + "Item Lores", lore, p, true); + setName(temp, ChatColor.WHITE + "Item Lores", lore, p, true, true); i.setItem(19, temp); temp = new ItemStack(Material.ITEM_FRAME, 2); @@ -1397,7 +1357,7 @@ public class commandpanels extends JavaPlugin { lore.add(ChatColor.WHITE + cf.getString("panels." + panelName + ".item." + itemNumber + ".stack")); } } - setName(temp, ChatColor.WHITE + "Item Stack Size", lore, p, true); + setName(temp, ChatColor.WHITE + "Item Stack Size", lore, p, true, true); i.setItem(21, temp); temp = new ItemStack(Material.ANVIL, 1); @@ -1409,7 +1369,7 @@ public class commandpanels extends JavaPlugin { lore.add(ChatColor.WHITE + cf.getString("panels." + panelName + ".item." + itemNumber + ".customdata")); } } - setName(temp, ChatColor.WHITE + "Custom Model Data", lore, p, true); + setName(temp, ChatColor.WHITE + "Custom Model Data", lore, p, true, true); i.setItem(23, temp); temp = new ItemStack(Material.LEATHER_HELMET, 1); @@ -1422,11 +1382,11 @@ public class commandpanels extends JavaPlugin { lore.add(ChatColor.WHITE + cf.getString("panels." + panelName + ".item." + itemNumber + ".leatherarmor")); } } - setName(temp, ChatColor.WHITE + "Leather Armor Colour", lore, p, true); + setName(temp, ChatColor.WHITE + "Leather Armor Colour", lore, p, true, true); i.setItem(25, temp); temp = new ItemStack(Material.BARRIER, 1); - setName(temp, ChatColor.RED + "Back", null, p, true); + setName(temp, ChatColor.RED + "Back", null, p, true, true); i.setItem(27, temp); if(Objects.requireNonNull(cf.getString("panels." + panelName + ".item." + itemNumber + ".material")).startsWith("cps=")){ @@ -1481,7 +1441,7 @@ public class commandpanels extends JavaPlugin { lore.clear(); lore.add(ChatColor.GRAY + "Click to set custom material"); lore.add(ChatColor.GRAY + "typically for custom heads"); - setName(temp, ChatColor.WHITE + "Item Slot " + itemNumber + " Preview", lore, p, true); + setName(temp, ChatColor.WHITE + "Item Slot " + itemNumber + " Preview", lore, p, true, true); i.setItem(35, temp); p.openInventory(i); @@ -1493,38 +1453,54 @@ public class commandpanels extends JavaPlugin { return new CharSequenceReader(new String(buffer)); } - public void githubNewUpdate(){ + public String githubNewUpdate(boolean sendMessages){ HttpURLConnection connection; String gitVersion; if(this.getDescription().getVersion().contains("-")){ - Bukkit.getConsoleSender().sendMessage("[CommandPanels]" + ChatColor.GREEN + " Running a custom version."); - return; + if(sendMessages) { + Bukkit.getConsoleSender().sendMessage("[CommandPanels]" + ChatColor.GREEN + " Running a custom version."); + } + return null; } try{ connection = (HttpURLConnection) new URL("https://raw.githubusercontent.com/rockyhawk64/CommandPanels/master/resource/plugin.yml").openConnection(); connection.connect(); gitVersion = new BufferedReader(new InputStreamReader(connection.getInputStream())).readLine().split("\\s")[1]; if(gitVersion.contains("-")){ - Bukkit.getConsoleSender().sendMessage("[CommandPanels]" + ChatColor.RED + " Cannot check for update."); - return; + if(sendMessages) { + Bukkit.getConsoleSender().sendMessage("[CommandPanels]" + ChatColor.RED + " Cannot check for update."); + } + return null; } if(!this.getDescription().getVersion().equals(gitVersion)){ - Bukkit.getConsoleSender().sendMessage("[CommandPanels]" + " ================================================"); - Bukkit.getConsoleSender().sendMessage("[CommandPanels]" + " An update for CommandPanels is available."); - Bukkit.getConsoleSender().sendMessage("[CommandPanels]" + " Download version " + gitVersion + " here:"); - Bukkit.getConsoleSender().sendMessage("[CommandPanels]" + " https://www.spigotmc.org/resources/command-panels-custom-guis.67788/"); - Bukkit.getConsoleSender().sendMessage("[CommandPanels]" + " ================================================"); + if(sendMessages) { + Bukkit.getConsoleSender().sendMessage("[CommandPanels]" + " ================================================"); + Bukkit.getConsoleSender().sendMessage("[CommandPanels]" + " An update for CommandPanels is available."); + Bukkit.getConsoleSender().sendMessage("[CommandPanels]" + " Download version " + gitVersion + " here:"); + Bukkit.getConsoleSender().sendMessage("[CommandPanels]" + " https://www.spigotmc.org/resources/command-panels-custom-guis.67788/"); + Bukkit.getConsoleSender().sendMessage("[CommandPanels]" + " ================================================"); + } + return gitVersion; } }catch(IOException e){ - Bukkit.getConsoleSender().sendMessage("[CommandPanels]" + ChatColor.RED + " Error checking for updates online."); + if(sendMessages) { + Bukkit.getConsoleSender().sendMessage("[CommandPanels]" + ChatColor.RED + " Error checking for updates online."); + } debug(e); } + return null; } - public ItemStack makeItemFromConfig(ConfigurationSection itemSection, Player p, boolean placeholders){ + public ItemStack makeItemFromConfig(ConfigurationSection itemSection, Player p, boolean placeholders, boolean colours){ String tag = this.config.getString("config.format.tag") + " "; String material = itemSection.getString("material"); - if (Objects.requireNonNull(itemSection.getString("material")).equalsIgnoreCase("AIR")) { + try { + if (Objects.requireNonNull(itemSection.getString("material")).equalsIgnoreCase("AIR")) { + return null; + } + }catch(NullPointerException e){ + debug(e); + p.sendMessage(papi(tag + this.config.getString("config.format.error") + " material: could not load material!")); return null; } ItemStack s; @@ -1571,7 +1547,7 @@ public class commandpanels extends JavaPlugin { assert meta != null; meta.setOwningPlayer(Bukkit.getOfflinePlayer(UUID.fromString(skullname))); } catch (Exception var23) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + this.config.getString("config.format.error") + " material: cps= self")); + p.sendMessage(papi( tag + this.config.getString("config.format.error") + " material: cps= self")); debug(var23); } s.setItemMeta(meta); @@ -1580,7 +1556,7 @@ public class commandpanels extends JavaPlugin { s = this.getItem(matskull.split("\\s")[1]); } } catch (Exception var32) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + this.config.getString("config.format.error") + " head material: Could not load skull")); + p.sendMessage(papi( tag + this.config.getString("config.format.error") + " head material: Could not load skull")); debug(var32); } } @@ -1599,11 +1575,11 @@ public class commandpanels extends JavaPlugin { try { s = api.getItemHead(matskull.split("\\s")[1].trim()); } catch (Exception var22) { - p.sendMessage(this.papi(p, ChatColor.translateAlternateColorCodes('&', tag + this.config.getString("config.format.error") + " hdb: could not load skull!"))); + p.sendMessage(papi(tag + this.config.getString("config.format.error") + " hdb: could not load skull!")); debug(var22); } } else { - p.sendMessage(this.papi(p, ChatColor.translateAlternateColorCodes('&', tag + "Download HeadDatabaseHook from Spigot to use this feature!"))); + p.sendMessage(papi(tag + "Download HeadDatabaseHook from Spigot to use this feature!")); } } if (itemSection.contains("map")) { @@ -1634,10 +1610,10 @@ public class commandpanels extends JavaPlugin { meta.setMapView(map); s.setItemMeta(meta); }else{ - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + papi(p, this.config.getString("config.format.error") + " map: File not found."))); + p.sendMessage(papi(tag + this.config.getString("config.format.error") + " map: File not found.")); } }catch(Exception map){ - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + papi(p, this.config.getString("config.format.error") + " map: " + itemSection.getString("map")))); + p.sendMessage(papi(tag + this.config.getString("config.format.error") + " map: " + itemSection.getString("map"))); debug(map); } } @@ -1657,7 +1633,7 @@ public class commandpanels extends JavaPlugin { s.setItemMeta(EnchantMeta); } } catch (Exception ench) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + papi(p, this.config.getString("config.format.error") + " enchanted: " + itemSection.getString("enchanted")))); + p.sendMessage(papi(tag + this.config.getString("config.format.error") + " enchanted: " + itemSection.getString("enchanted"))); debug(ench); } } @@ -1694,7 +1670,7 @@ public class commandpanels extends JavaPlugin { } catch (Exception er) { //don't colour the armor debug(er); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + papi(p, this.config.getString("config.format.error") + " leatherarmor: " + itemSection.getString("leatherarmor")))); + p.sendMessage(papi(tag + this.config.getString("config.format.error") + " leatherarmor: " + itemSection.getString("leatherarmor"))); } } if (itemSection.contains("potion")) { @@ -1710,7 +1686,18 @@ public class commandpanels extends JavaPlugin { } catch (Exception er) { //don't add the effect debug(er); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + this.config.getString("config.format.error") + " potion: " + itemSection.getString("potion"))); + p.sendMessage(papi(tag + ChatColor.RED + this.config.getString("config.format.error") + " potion: " + itemSection.getString("potion"))); + } + } + if (itemSection.contains("damage")) { + //change the damage amount (placeholders accepted) + try { + Damageable itemDamage = (Damageable) s.getItemMeta(); + itemDamage.setDamage(Integer.parseInt(Objects.requireNonNull(papi(p, itemSection.getString("damage"))))); + s.setItemMeta((ItemMeta) itemDamage); + }catch(Exception e){ + debug(e); + p.sendMessage(papi(tag + this.config.getString("config.format.error") + " damage: " + itemSection.getString("damage"))); } } if (itemSection.contains("stack")) { @@ -1719,14 +1706,248 @@ public class commandpanels extends JavaPlugin { } } catch (IllegalArgumentException | NullPointerException var33) { debug(var33); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + papi(p, this.config.getString("config.format.error") + " material: " + itemSection.getString("material")))); + p.sendMessage(papi(tag + this.config.getString("config.format.error") + " material: " + itemSection.getString("material"))); return null; } if (placeholders) { - this.setName(s, papi(p, itemSection.getString("name")), papi(p, itemSection.getStringList("lore")), p, true); + this.setName(s, papi(p, itemSection.getString("name")), papi(p, itemSection.getStringList("lore"),true), p, true, colours); }else{ - this.setName(s, itemSection.getString("name"), itemSection.getList("lore"), p, false); + this.setName(s, itemSection.getString("name"), itemSection.getStringList("lore"), p, false, colours); } return s; } + + //hasperm hasvalue, etc sections will be done here + public String hasSection(String panelName, YamlConfiguration cf, int slot, Player p){ + if (cf.contains("panels." + panelName + ".item." + slot + ".hasvalue")) { + //loop through possible hasvalue 1,2,3,etc + for (int count = 0; Objects.requireNonNull(cf.getConfigurationSection("panels." + panelName + ".item." + slot)).getKeys(false).size() > count; count++) { + if (cf.contains("panels." + panelName + ".item." + slot + ".hasvalue" + count)) { + boolean outputValue = true; + //outputValue will default to true + if (cf.contains("panels." + panelName + ".item." + slot + ".hasvalue" + count + ".output")) { + //if output is true, and values match it will be this item, vice versa + outputValue = cf.getBoolean("panels." + panelName + ".item." + slot + ".hasvalue" + count + ".output"); + } + String value = cf.getString("panels." + panelName + ".item." + slot + ".hasvalue" + count + ".value"); + String compare = ChatColor.stripColor(papi(p,setCpPlaceholders(p,cf.getString("panels." + panelName + ".item." + slot + ".hasvalue" + count + ".compare")))); + if (compare.equals(value) == outputValue) { + //onOpen being 3 means it is the editor panel.. hasvalue items cannot be included to avoid item breaking + return ".hasvalue" + count; + } + } + } + //this will do the hasvalue without any numbers + boolean outputValue = true; + //outputValue will default to true + if (cf.contains("panels." + panelName + ".item." + slot + ".hasvalue.output")) { + //if output is true, and values match it will be this item, vice versa + outputValue = cf.getBoolean("panels." + panelName + ".item." + slot + ".hasvalue.output"); + } + String value = cf.getString("panels." + panelName + ".item." + slot + ".hasvalue.value"); + String compare = ChatColor.stripColor(papi(p,setCpPlaceholders(p,cf.getString("panels." + panelName + ".item." + slot + ".hasvalue.compare")))); + if (compare.equals(value) == outputValue) { + //onOpen being 3 means it is the editor panel.. hasvalue items cannot be included to avoid item breaking + return ".hasvalue"; + } + } + if (cf.contains("panels." + panelName + ".item." + slot + ".hasgreater")) { + //loop through possible hasgreater 1,2,3,etc + for (int count = 0; Objects.requireNonNull(cf.getConfigurationSection("panels." + panelName + ".item." + slot)).getKeys(false).size() > count; count++) { + if (cf.contains("panels." + panelName + ".item." + slot + ".hasgreater" + count)) { + boolean outputValue = true; + //outputValue will default to true + if (cf.contains("panels." + panelName + ".item." + slot + ".hasgreater" + count + ".output")) { + //if output is true, and values match it will be this item, vice versa + outputValue = cf.getBoolean("panels." + panelName + ".item." + slot + ".hasgreater" + count + ".output"); + } + int value = cf.getInt("panels." + panelName + ".item." + slot + ".hasgreater" + count + ".value"); + double compare = Double.parseDouble(ChatColor.stripColor(papi(p,setCpPlaceholders(p,cf.getString("panels." + panelName + ".item." + slot + ".hasgreater" + count + ".compare"))))); + if ((compare >= value) == outputValue) { + //onOpen being 3 means it is the editor panel.. hasgreater items cannot be included to avoid item breaking + return ".hasgreater" + count; + } + } + } + //this will do the hasgreater without any numbers + boolean outputValue = true; + //outputValue will default to true + if (cf.contains("panels." + panelName + ".item." + slot + ".hasgreater.output")) { + //if output is true, and values match it will be this item, vice versa + outputValue = cf.getBoolean("panels." + panelName + ".item." + slot + ".hasgreater.output"); + } + int value = cf.getInt("panels." + panelName + ".item." + slot + ".hasgreater.value"); + double compare = Double.parseDouble(ChatColor.stripColor(papi(p,setCpPlaceholders(p,cf.getString("panels." + panelName + ".item." + slot + ".hasgreater.compare"))))); + if ((compare >= value) == outputValue) { + //onOpen being 3 means it is the editor panel.. hasgreater items cannot be included to avoid item breaking + return ".hasgreater"; + } + } + if (cf.contains("panels." + panelName + ".item." + slot + ".hasperm")) { + for(int count = 0; Objects.requireNonNull(cf.getConfigurationSection("panels." + panelName + ".item." + slot)).getKeys(false).size() > count; count++){ + if (cf.contains("panels." + panelName + ".item." + slot + ".hasperm" + count) && cf.contains("panels." + panelName + ".item." + slot + ".hasperm" + count + ".perm")) { + boolean outputValue = true; + //outputValue will default to true + if (cf.contains("panels." + panelName + ".item." + slot + ".hasperm" + count + ".output")) { + //if output is true, and values match it will be this item, vice versa + outputValue = cf.getBoolean("panels." + panelName + ".item." + slot + ".hasperm" + count + ".output"); + } + if (p.hasPermission(Objects.requireNonNull(cf.getString("panels." + panelName + ".item." + slot + ".hasperm" + count + ".perm"))) == outputValue) { + if (cf.contains("panels." + panelName + ".item." + slot + ".hasperm" + count + ".commands")) { + return ".hasperm" + count; + } + } + } + } + //this will do hasperm with no numbers + boolean outputValue = true; + //outputValue will default to true + if (cf.contains("panels." + panelName + ".item." + slot + ".hasperm" + ".output")) { + //if output is true, and values match it will be this item, vice versa + outputValue = cf.getBoolean("panels." + panelName + ".item." + slot + ".hasperm" + ".output"); + } + if (p.hasPermission(Objects.requireNonNull(cf.getString("panels." + panelName + ".item." + slot + ".hasperm.perm"))) == outputValue) { + if (cf.contains("panels." + panelName + ".item." + slot + ".hasperm.commands")) { + return ".hasperm"; + } + } + } + return ""; + } + + //this is the main method to open a panel + public void openCommandPanel(CommandSender sender, Player p, String panels, YamlConfiguration cf, boolean sendOpenedMessage){ + String tag = config.getString("config.format.tag") + " "; + if (sender.hasPermission("commandpanel.panel." + cf.getString("panels." + panels + ".perm"))) { + //if the sender has OTHER perms, or if sendOpenedMessage is false, implying it is not for another person + if(sender.hasPermission("commandpanel.other") || !sendOpenedMessage) { + try { + if (cf.contains("panels." + panels + ".disabled-worlds")) { + List disabledWorlds = cf.getStringList("panels." + panels + ".disabled-worlds"); + if (disabledWorlds.contains(p.getWorld().getName())) { + //panel cannot be used in the players world! + if (Objects.requireNonNull(config.getString("config.disabled-world-message")).equalsIgnoreCase("true")) { + sender.sendMessage(papi(tag + ChatColor.RED + "Panel is disabled in the world!")); + } + return; + } + } + }catch(NullPointerException offlinePlayer){ + //SKIP because player is offline + sender.sendMessage(papi(tag + config.getString("config.format.notitem"))); + return; + } + try { + if (cf.contains("panels." + panels + ".sound-on-open")) { + //play sound when panel is opened + if(!Objects.requireNonNull(cf.getString("panels." + panels + ".sound-on-open")).equalsIgnoreCase("off")) { + try { + p.playSound(p.getLocation(), Sound.valueOf(Objects.requireNonNull(cf.getString("panels." + panels + ".sound-on-open")).toUpperCase()), 1F, 1F); + } catch (Exception s) { + p.sendMessage(papi(tag + config.getString("config.format.error") + " " + "sound-on-open: " + cf.getString("panels." + panels + ".sound-on-open"))); + } + } + } + if (cf.contains("panels." + panels + ".commands-on-open")) { + //execute commands on panel open + try { + List commands = cf.getStringList("panels." + panels + ".commands-on-open"); + for (int i = 0; commands.size() - 1 >= i; i++) { + int val = commandPayWall(p,commands.get(i)); + if(val == 0){ + break; + } + if(val == 2){ + commandTags(p, commands.get(i)); + } + } + }catch(Exception s){ + p.sendMessage(papi(tag + config.getString("config.format.error") + " " + "commands-on-open: " + cf.getString("panels." + panels + ".commands-on-open"))); + } + } + openGui(panels, p, cf,1,0); + if(sendOpenedMessage) { + sender.sendMessage(papi( tag + ChatColor.GREEN + "Panel Opened for " + p.getDisplayName())); + } + } catch (Exception r) { + debug(r); + sender.sendMessage(papi(tag + config.getString("config.format.notitem"))); + } + }else{ + sender.sendMessage(papi(tag + config.getString("config.format.perms"))); + } + return; + } + sender.sendMessage(papi(tag + config.getString("config.format.perms"))); + } + + //this will give a hotbar item to a player + public void giveHotbarItem(CommandSender sender, Player p, String panels, YamlConfiguration cf, boolean sendGiveMessage){ + String tag = config.getString("config.format.tag") + " "; + if (sender.hasPermission("commandpanel.item." + cf.getString("panels." + panels + ".perm")) && cf.contains("panels." + panels + ".open-with-item")) { + try { + if (cf.contains("panels." + panels + ".disabled-worlds")) { + List disabledWorlds = cf.getStringList("panels." + panels + ".disabled-worlds"); + if (disabledWorlds.contains(p.getWorld().getName())) { + //panel cannot be used in the players world! + if (Objects.requireNonNull(config.getString("config.disabled-world-message")).equalsIgnoreCase("true")) { + sender.sendMessage(papi(tag + ChatColor.RED + "Panel is disabled in the world!")); + } + return; + } + } + }catch(NullPointerException offlinePlayer){ + //SKIP because player is offline + sender.sendMessage(papi(tag + config.getString("config.format.notitem"))); + return; + } + ItemStack s; + try { + s = makeItemFromConfig(Objects.requireNonNull(cf.getConfigurationSection("panels." + panels + ".open-with-item")), p, false, true); + }catch(Exception n){ + sender.sendMessage(papi(tag + config.getString("config.format.error") + " open-with-item: material")); + return; + } + setName(s, cf.getString("panels." + panels + ".open-with-item.name"), cf.getStringList("panels." + panels + ".open-with-item.lore"),p,true, false); + //if the sender has OTHER perms, or if sendGiveMessage is false, implying it is not for another person + if(sender.hasPermission("commandpanel.other") || !sendGiveMessage) { + try { + if(cf.contains("panels." + panels + ".open-with-item.stationary")) { + p.getInventory().setItem(Integer.parseInt(Objects.requireNonNull(cf.getString("panels." + panels + ".open-with-item.stationary"))), s); + }else{ + p.getInventory().addItem(s); + } + if(sendGiveMessage) { + sender.sendMessage(papi( tag + ChatColor.GREEN + "Item Given to " + p.getDisplayName())); + } + } catch (Exception r) { + sender.sendMessage(papi(tag + config.getString("config.format.notitem"))); + } + }else{ + sender.sendMessage(papi(tag + config.getString("config.format.perms"))); + } + return; + } + if (!cf.contains("panels." + panels + ".open-with-item")) { + sender.sendMessage(papi(tag + config.getString("config.format.noitem"))); + return; + } + sender.sendMessage(papi(tag + config.getString("config.format.perms"))); + } + + //used to translate hex colours into ChatColors + public String translateHexColorCodes(String message) { + final Pattern hexPattern = Pattern.compile("#" + "([A-Fa-f0-9]{6})"); + Matcher matcher = hexPattern.matcher(message); + StringBuffer buffer = new StringBuffer(message.length() + 4 * 8); + while (matcher.find()) { + String group = matcher.group(1); + matcher.appendReplacement(buffer, ChatColor.COLOR_CHAR + "x" + + ChatColor.COLOR_CHAR + group.charAt(0) + ChatColor.COLOR_CHAR + group.charAt(1) + + ChatColor.COLOR_CHAR + group.charAt(2) + ChatColor.COLOR_CHAR + group.charAt(3) + + ChatColor.COLOR_CHAR + group.charAt(4) + ChatColor.COLOR_CHAR + group.charAt(5) + ); + } + return matcher.appendTail(buffer).toString(); + } } diff --git a/src/me/rockyhawk/commandPanels/commands/commandpanel.java b/src/me/rockyhawk/commandPanels/commands/commandpanel.java index 3be52b7..314774e 100644 --- a/src/me/rockyhawk/commandPanels/commands/commandpanel.java +++ b/src/me/rockyhawk/commandPanels/commands/commandpanel.java @@ -2,15 +2,12 @@ package me.rockyhawk.commandPanels.commands; import me.rockyhawk.commandPanels.commandpanels; import org.bukkit.ChatColor; -import org.bukkit.Material; -import org.bukkit.Sound; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; -import org.bukkit.inventory.ItemStack; import java.io.File; import java.util.*; @@ -35,10 +32,10 @@ public class commandpanel implements CommandExecutor { for(String fileName : plugin.panelFiles) { //will loop through all the files in folder YamlConfiguration temp = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + fileName)); if(!plugin.checkPanels(temp)){ - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.error") + ": Panel with syntax error found!")); + sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + ": Panel with syntax error found!")); return true; } - for (String key : temp.getConfigurationSection("panels").getKeys(false)) { + for (String key : Objects.requireNonNull(temp.getConfigurationSection("panels")).getKeys(false)) { apanels.add(temp.getString("panels." + key + ".title")); opanels.add(key); if (args[0].equalsIgnoreCase(key)){ @@ -53,530 +50,131 @@ public class commandpanel implements CommandExecutor { return true; } if(!found){ - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.nopanel"))); + sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.nopanel"))); return true; } //below will start the command, once it got the right file and panel if (cmd.getName().equalsIgnoreCase("cp") || cmd.getName().equalsIgnoreCase("commandpanel") || cmd.getName().equalsIgnoreCase("cpanel")) { - //if command executed from console + boolean nfound = true; + for (int i = 0; panels.split("\\s").length - 1 >= i; ++i) { + if (args[0].equalsIgnoreCase(panels.split("\\s")[i])) { + panels = panels.split("\\s")[i]; + nfound = false; + } + } + if (nfound) { + sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.nopanel"))); + return true; + }else if (!checkconfig(panels, sender, cf)) { + //if the config is missing an element (message will be sent to user via the public boolean) + return true; + } + checkDuplicatePanel(sender,opanels,apanels); if(!(sender instanceof Player)) { + //do console command command if(args.length == 2){ if(!args[1].equals("item")){ - boolean nfound = true; - for (int i = 0; panels.split("\\s").length - 1 >= i; ++i) { - if (args[0].equalsIgnoreCase(panels.split("\\s")[i])) { - panels = panels.split("\\s")[i]; - nfound = false; - } - } - Player sp; - try { - sp = plugin.getServer().getPlayer(args[1]); - }catch(Exception e){ - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.notitem"))); - return true; - } - if (nfound) { - if (plugin.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) { - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(sp, plugin.config.getString("config.format.nopanel")))); - } else { - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.nopanel"))); - } - return true; - }else if (!checkconfig(panels, sp, cf)) { - //if the config is missing an element (message will be sent to user via the public boolean) - return true; - } - if (sender.hasPermission("commandpanel.panel." + cf.getString("panels." + panels + ".perm"))) { - if(sender.hasPermission("commandpanel.other")) { - try { - if (cf.contains("panels." + panels + ".disabled-worlds")) { - List disabledWorlds = cf.getStringList("panels." + panels + ".disabled-worlds"); - if (disabledWorlds.contains(sp.getWorld().getName())) { - //panel cannot be used in the players world! - if (Objects.requireNonNull(plugin.config.getString("config.disabled-world-message")).equalsIgnoreCase("true")) { - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + "Panel is disabled in players world!")); - } - return true; - } - } - }catch(NullPointerException offlinePlayer){ - //SKIP because player is offline - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.notitem"))); - return true; - } - try { - if (cf.contains("panels." + panels + ".sound-on-open")) { - //play sound when panel is opened - if(!Objects.requireNonNull(cf.getString("panels." + panels + ".sound-on-open")).equalsIgnoreCase("off")) { - try { - sp.playSound(sp.getLocation(), Sound.valueOf(Objects.requireNonNull(cf.getString("panels." + panels + ".sound-on-open")).toUpperCase()), 1F, 1F); - } catch (Exception s) { - sp.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + plugin.papi(sp, plugin.config.getString("config.format.error") + " " + "sound-on-open: " + cf.getString("panels." + panels + ".sound-on-open")))); - } - } - } - if (cf.contains("panels." + panels + ".commands-on-open")) { - //execute commands on panel open - try { - List commands = cf.getStringList("panels." + panels + ".commands-on-open"); - for (int i = 0; commands.size() - 1 >= i; i++) { - int val = plugin.commandPayWall(sp,commands.get(i)); - if(val == 0){ - break; - } - if(val == 2){ - plugin.commandTags(sp, commands.get(i)); - } - } - }catch(Exception s){ - sp.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + plugin.papi(sp, plugin.config.getString("config.format.error") + " " + "commands-on-open: " + cf.getString("panels." + panels + ".commands-on-open")))); - } - } - plugin.openGui(panels, sp, cf,1,0); - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Panel Opened for " + sp.getDisplayName())); - } catch (Exception r) { - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.notitem"))); - } - }else{ - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.perms"))); - } - return true; - } - - if (plugin.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) { - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(sp, plugin.config.getString("config.format.perms")))); - return true; - } else { - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.perms"))); - return true; - } + plugin.openCommandPanel(sender,plugin.getServer().getPlayer(args[1]),panels,cf,true); + return true; }else{ - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + "Usage: /cp [item] [player]")); + sender.sendMessage(plugin.papi(tag + ChatColor.RED + "Usage: /cp [item] [player]")); return true; } }else if(args.length == 3){ if (args[1].equals("item")) { - boolean nfound = true; - for (int i = 0; panels.split("\\s").length - 1 >= i; ++i) { - if (args[0].equalsIgnoreCase(panels.split("\\s")[i])) { - panels = panels.split("\\s")[i]; - nfound = false; - } - } - Player sp; - try { - sp = plugin.getServer().getPlayer(args[2]); - }catch(Exception e){ - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.notitem"))); - return true; - } - if (nfound) { - if (plugin.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) { - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(sp, plugin.config.getString("config.format.nopanel")))); - } else { - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.nopanel"))); - } - return true; - } - - if (sender.hasPermission("commandpanel.item." + cf.getString("panels." + panels + ".perm")) && cf.contains("panels." + panels + ".open-with-item")) { - if(cf.contains("panels." + panels + ".disabled-worlds")){ - List disabledWorlds = cf.getStringList("panels." + panels + ".disabled-worlds"); - if(disabledWorlds.contains(sp.getWorld().getName())){ - //panel cannot be used in the players world! - if(Objects.requireNonNull(plugin.config.getString("config.disabled-world-message")).equalsIgnoreCase("true")){ - sp.sendMessage(ChatColor.RED + "Panel is disabled in this world!"); - } - return true; - } - } - ItemStack s; - try { - s = new ItemStack(Objects.requireNonNull(Material.matchMaterial(Objects.requireNonNull(cf.getString("panels." + panels + ".open-with-item.material")))), 1); - }catch(Exception n){ - if (plugin.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) { - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(sp, plugin.config.getString("config.format.error") + " open-with-item: material"))); - } else { - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.error") + " open-with-item: material")); - } - return true; - } - plugin.setName(s, cf.getString("panels." + panels + ".open-with-item.name"), cf.getList("panels." + panels + ".open-with-item.lore"),sp,true); - if(sender.hasPermission("commandpanel.other")) { - try { - if(cf.contains("panels." + panels + ".open-with-item.stationary")) { - sp.getInventory().setItem(Integer.parseInt(Objects.requireNonNull(cf.getString("panels." + panels + ".open-with-item.stationary"))), s); - }else{ - sp.getInventory().addItem(s); - } - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Item Given to " + plugin.getServer().getPlayer(args[2]).getDisplayName())); - } catch (Exception r) { - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.notitem"))); - } - }else{ - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.perms"))); - } - return true; - } - if (!cf.contains("panels." + panels + ".open-with-item")) { - if (plugin.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) { - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(sp, plugin.config.getString("config.format.noitem")))); - return true; - } else { - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.noitem"))); - return true; - } - } - if (plugin.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) { - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(sp, plugin.config.getString("config.format.perms")))); - return true; - } else { - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.perms"))); - return true; - } + plugin.giveHotbarItem(sender,plugin.getServer().getPlayer(args[2]),panels,cf,true); + return true; }else{ - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + "Usage: /cp item [player]")); + sender.sendMessage(plugin.papi(tag + ChatColor.RED + "Usage: /cp item [player]")); return true; } } else { - sender.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + "Please execute command directed to a Player!")); + sender.sendMessage(plugin.papi( tag + ChatColor.RED + "Please execute command directed to a Player!")); return true; } - } - Player p = (Player) sender; - //names is a list of the titles for the Panels - Set oset = new HashSet(opanels); - if (oset.size() < opanels.size()) { - //there are duplicate panel names - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(p, plugin.config.getString("config.format.error") + " panels: You cannot have duplicate panel names!"))); - if(plugin.debug){ - ArrayList opanelsTemp = new ArrayList(); - for(String tempName : opanels){ - if(opanelsTemp.contains(tempName)){ - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + " The duplicate panel is: " + tempName)); - return true; - } - opanelsTemp.add(tempName); - } - } - return true; - } - Set set = new HashSet(apanels); - if (set.size() < apanels.size()) { - //there are duplicate panel titles - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(p, plugin.config.getString("config.format.error") + " title: You cannot have duplicate title names!"))); - if(plugin.debug){ - ArrayList apanelsTemp = new ArrayList(); - for(String tempName : apanels){ - if(apanelsTemp.contains(tempName)){ - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + " The duplicate title is: " + tempName)); - return true; - } - apanelsTemp.add(tempName); - } - } - return true; - } - - if (args.length == 1) { - boolean nfound = true; - - for (int i = 0; panels.split("\\s").length - 1 >= i; ++i) { - if (args[0].equalsIgnoreCase(panels.split("\\s")[i])) { - panels = panels.split("\\s")[i]; - nfound = false; - } - } - if (nfound) { - if (plugin.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(p, plugin.config.getString("config.format.nopanel")))); - } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.nopanel"))); + }else{ + //get player + Player p = (Player) sender; + //do player command + if (args.length == 1) { + plugin.openCommandPanel(sender, p, panels, cf,false); + return true; + }else if(args.length == 2){ + if (args[1].equals("item")) { + plugin.giveHotbarItem(sender, p, panels, cf, false); + }else{ + plugin.openCommandPanel(sender, plugin.getServer().getPlayer(args[1]), panels, cf,true); } return true; - }else if (!checkconfig(panels, p, cf)) { - //if the config is missing an element (message will be sent to user via the public boolean) + }else if(args.length == 3){ + plugin.giveHotbarItem(sender, plugin.getServer().getPlayer(args[2]), panels, cf,true); return true; } - if (p.hasPermission("commandpanel.panel." + cf.getString("panels." + panels + ".perm"))) { - if(cf.contains("panels." + panels + ".disabled-worlds")){ - List disabledWorlds = cf.getStringList("panels." + panels + ".disabled-worlds"); - if(disabledWorlds.contains(p.getWorld().getName())){ - //panel cannot be used in the players world! - if(Objects.requireNonNull(plugin.config.getString("config.disabled-world-message")).equalsIgnoreCase("true")){ - p.sendMessage(ChatColor.RED + "Panel is disabled in this world!"); - } - return true; - } - } - if (cf.contains("panels." + panels + ".sound-on-open")) { - //play sound when panel is opened - if(!Objects.requireNonNull(cf.getString("panels." + panels + ".sound-on-open")).equalsIgnoreCase("off")) { - try { - p.playSound(p.getLocation(), Sound.valueOf(Objects.requireNonNull(cf.getString("panels." + panels + ".sound-on-open")).toUpperCase()), 1F, 1F); - } catch (Exception s) { - plugin.debug(s); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + plugin.papi(p, plugin.config.getString("config.format.error") + " " + "sound-on-open: " + cf.getString("panels." + panels + ".sound-on-open")))); - } - } - } - if (cf.contains("panels." + panels + ".commands-on-open")) { - //execute commands on panel open - try { - List commands = cf.getStringList("panels." + panels + ".commands-on-open"); - for (int i = 0; commands.size() - 1 >= i; i++) { - int val = plugin.commandPayWall(p,commands.get(i)); - if(val == 0){ - break; - } - if(val == 2){ - plugin.commandTags(p, commands.get(i)); - } - } - }catch(Exception s){ - plugin.debug(s); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + plugin.papi(p, plugin.config.getString("config.format.error") + " " + "commands-on-open: " + cf.getString("panels." + panels + ".commands-on-open")))); - } - } - plugin.openGui(panels, p, cf, 1,0); - return true; - } - - if (plugin.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(p, plugin.config.getString("config.format.perms")))); - return true; - } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.perms"))); - return true; - } - } - if (args.length == 2) { - if (args[1].equals("item")) { - boolean nfound = true; - - for (int i = 0; panels.split("\\s").length - 1 >= i; ++i) { - if (args[0].equalsIgnoreCase(panels.split("\\s")[i])) { - panels = panels.split("\\s")[i]; - nfound = false; - } - } - - if (nfound) { - if (plugin.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(p, plugin.config.getString("config.format.nopanel")))); - } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.nopanel"))); - } - return true; - } - - if (p.hasPermission("commandpanel.item." + cf.getString("panels." + panels + ".perm")) && cf.contains("panels." + panels + ".open-with-item")) { - if(cf.contains("panels." + panels + ".disabled-worlds")){ - List disabledWorlds = cf.getStringList("panels." + panels + ".disabled-worlds"); - if(disabledWorlds.contains(p.getWorld().getName())){ - //panel cannot be used in the players world! - if(Objects.requireNonNull(plugin.config.getString("config.disabled-world-message")).equalsIgnoreCase("true")){ - p.sendMessage(ChatColor.RED + "Panel is disabled in this world!"); - } - return true; - } - } - ItemStack s; - try { - s = new ItemStack(Objects.requireNonNull(Material.matchMaterial(cf.getString("panels." + panels + ".open-with-item.material"))), 1); - }catch(Exception n){ - plugin.debug(n); - if (plugin.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(p, plugin.config.getString("config.format.error") + " open-with-item: material"))); - } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.error") + " open-with-item: material")); - } - return true; - } - plugin.setName(s, cf.getString("panels." + panels + ".open-with-item.name"), cf.getList("panels." + panels + ".open-with-item.lore"),p,true); - if(cf.contains("panels." + panels + ".open-with-item.stationary")) { - p.getInventory().setItem(Integer.parseInt(Objects.requireNonNull(cf.getString("panels." + panels + ".open-with-item.stationary"))), s); - }else{ - p.getInventory().addItem(s); - } - return true; - } - if (!cf.contains("panels." + panels + ".open-with-item")) { - if (plugin.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(p, plugin.config.getString("config.format.noitem")))); - return true; - } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.noitem"))); - return true; - } - } - if (plugin.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(p, plugin.config.getString("config.format.perms")))); - return true; - } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.perms"))); - return true; - } - }else { //player name here eg /cp example RockyHawk to get rockyhawk to open panel - boolean nfound = true; - - for (int i = 0; panels.split("\\s").length - 1 >= i; ++i) { - if (args[0].equalsIgnoreCase(panels.split("\\s")[i])) { - panels = args[0]; - nfound = false; - break; - } - } - if (nfound) { - if (plugin.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(p, plugin.config.getString("config.format.nopanel")))); - } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.nopanel"))); - } - return true; - }else if (!checkconfig(panels, p, cf)) { - //if the config is missing an element (message will be sent to user via the public boolean) - return true; - } - if (p.hasPermission("commandpanel.panel." + cf.getString("panels." + panels + ".perm"))) { - if(p.hasPermission("commandpanel.other")) { - if(cf.contains("panels." + panels + ".disabled-worlds")){ - List disabledWorlds = cf.getStringList("panels." + panels + ".disabled-worlds"); - if(disabledWorlds.contains(p.getWorld().getName())){ - //panel cannot be used in the players world! - if(Objects.requireNonNull(plugin.config.getString("config.disabled-world-message")).equalsIgnoreCase("true")){ - p.sendMessage(ChatColor.RED + "Panel is disabled in this world!"); - } - return true; - } - } - try { - plugin.openGui(panels, plugin.getServer().getPlayer(args[1]), cf,1,0); - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Panel Opened for " + plugin.getServer().getPlayer(args[1]).getDisplayName())); - } catch (Exception r) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.notitem"))); - } - }else{ - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.perms"))); - } - return true; - } - - if (plugin.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(p, plugin.config.getString("config.format.perms")))); - return true; - } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.perms"))); - return true; - } - } - } - if (args.length == 3) { - //if the command is /cp example item to give other player item - if (args[1].equals("item")) { - boolean nfound = true; - - for (int i = 0; panels.split("\\s").length - 1 >= i; ++i) { - if (args[0].equalsIgnoreCase(panels.split("\\s")[i])) { - panels = panels.split("\\s")[i]; - nfound = false; - } - } - - if (nfound) { - if (plugin.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(p, plugin.config.getString("config.format.nopanel")))); - } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.nopanel"))); - } - return true; - } - - if (p.hasPermission("commandpanel.item." + cf.getString("panels." + panels + ".perm")) && cf.contains("panels." + panels + ".open-with-item")) { - if(cf.contains("panels." + panels + ".disabled-worlds")){ - List disabledWorlds = cf.getStringList("panels." + panels + ".disabled-worlds"); - if(disabledWorlds.contains(p.getWorld().getName())){ - //panel cannot be used in the players world! - if(Objects.requireNonNull(plugin.config.getString("config.disabled-world-message")).equalsIgnoreCase("true")){ - p.sendMessage(ChatColor.RED + "Panel is disabled in this world!"); - } - return true; - } - } - ItemStack s; - try { - s = new ItemStack(Objects.requireNonNull(Material.matchMaterial(cf.getString("panels." + panels + ".open-with-item.material"))), 1); - }catch(Exception n){ - plugin.debug(n); - if (plugin.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(p, plugin.config.getString("config.format.error") + " open-with-item: material"))); - } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.error") + " open-with-item: material")); - } - return true; - } - plugin.setName(s, cf.getString("panels." + panels + ".open-with-item.name"), cf.getList("panels." + panels + ".open-with-item.lore"),p,true); - if(p.hasPermission("commandpanel.other")) { - try { - if(cf.contains("panels." + panels + ".open-with-item.stationary")) { - p.getInventory().setItem(Integer.parseInt(Objects.requireNonNull(cf.getString("panels." + panels + ".open-with-item.stationary"))), s); - }else{ - p.getInventory().addItem(s); - } - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Item Given to " + plugin.getServer().getPlayer(args[2]).getDisplayName())); - } catch (Exception r) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.notitem"))); - } - }else{ - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.perms"))); - } - return true; - } - if (!cf.contains("panels." + panels + ".open-with-item")) { - if (plugin.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(p, plugin.config.getString("config.format.noitem")))); - return true; - } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.noitem"))); - return true; - } - } - if (plugin.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(p, plugin.config.getString("config.format.perms")))); - return true; - } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.perms"))); - return true; - } - } } } - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + "Usage: /cp [player:item] [player]")); + sender.sendMessage(plugin.papi(tag + ChatColor.RED + "Usage: /cp [player:item] [player]")); return true; } - boolean checkconfig(String panels, Player p, YamlConfiguration pconfig) { + boolean checkDuplicatePanel(CommandSender sender, ArrayList opanels, ArrayList apanels){ + String tag = plugin.config.getString("config.format.tag") + " "; + //names is a list of the titles for the Panels + Set oset = new HashSet(opanels); + if (oset.size() < opanels.size()) { + //there are duplicate panel names + sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " panels: You cannot have duplicate panel names!")); + if(plugin.debug){ + ArrayList opanelsTemp = new ArrayList(); + for(String tempName : opanels){ + if(opanelsTemp.contains(tempName)){ + sender.sendMessage(plugin.papi(tag + ChatColor.RED + " The duplicate panel is: " + tempName)); + return false; + } + opanelsTemp.add(tempName); + } + } + return false; + } + Set set = new HashSet(apanels); + if (set.size() < apanels.size()) { + //there are duplicate panel titles + sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " title: You cannot have duplicate title names!")); + if(plugin.debug){ + ArrayList apanelsTemp = new ArrayList(); + for(String tempName : apanels){ + if(apanelsTemp.contains(tempName)){ + sender.sendMessage(plugin.papi(tag + ChatColor.RED + " The duplicate title is: " + tempName)); + return false; + } + apanelsTemp.add(tempName); + } + } + return false; + } + return true; + } + + boolean checkconfig(String panels, CommandSender sender, YamlConfiguration pconfig) { //if it is missing a section specified it will return false String tag = plugin.config.getString("config.format.tag") + " "; if(!pconfig.contains("panels." + panels)) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(p, plugin.config.getString("config.format.nopanel")))); + sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.nopanel"))); return false; } if(!pconfig.contains("panels." + panels + ".perm")) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(p, plugin.config.getString("config.format.error") + " perm: Missing config section!"))); + sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " perm: Missing config section!")); return false; } if(!pconfig.contains("panels." + panels + ".rows")) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(p, plugin.config.getString("config.format.error") + " rows: Missing config section!"))); + sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " perm: Missing config section!")); return false; } if(!pconfig.contains("panels." + panels + ".title")) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(p, plugin.config.getString("config.format.error") + " title: Missing config section!"))); + sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " perm: Missing config section!")); return false; } if(!pconfig.contains("panels." + panels + ".item")) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(p, plugin.config.getString("config.format.error") + " item: Missing config section!"))); + sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " perm: Missing config section!")); return false; } return true; diff --git a/src/me/rockyhawk/commandPanels/commands/commandpanelclose.java b/src/me/rockyhawk/commandPanels/commands/commandpanelclose.java index 3a3ff99..b2d3343 100644 --- a/src/me/rockyhawk/commandPanels/commands/commandpanelclose.java +++ b/src/me/rockyhawk/commandPanels/commands/commandpanelclose.java @@ -16,7 +16,7 @@ public class commandpanelclose implements CommandExecutor { public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { String tag = plugin.config.getString("config.format.tag") + " "; if(!(sender instanceof Player)) { - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + "Please execute command as a Player!")); + sender.sendMessage(plugin.papi(tag + ChatColor.RED + "Please execute command as a Player!")); return true; } Player p = (Player)sender; @@ -25,7 +25,7 @@ public class commandpanelclose implements CommandExecutor { p.closeInventory(); return true; } - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + "Usage: /cpc")); + p.sendMessage(plugin.papi(tag + ChatColor.RED + "Usage: /cpc")); return true; } } diff --git a/src/me/rockyhawk/commandPanels/commands/commandpanelcustom.java b/src/me/rockyhawk/commandPanels/commands/commandpanelcustom.java index 8ae0162..1155602 100644 --- a/src/me/rockyhawk/commandPanels/commands/commandpanelcustom.java +++ b/src/me/rockyhawk/commandPanels/commands/commandpanelcustom.java @@ -1,7 +1,6 @@ package me.rockyhawk.commandPanels.commands; import me.rockyhawk.commandPanels.commandpanels; -import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; @@ -23,7 +22,7 @@ public class commandpanelcustom implements Listener { public void PlayerCommand(PlayerCommandPreprocessEvent e) { String panels; String tag = plugin.config.getString("config.format.tag") + " "; - Player p = (Player)e.getPlayer(); + Player p = e.getPlayer(); File panelsf = new File(plugin.getDataFolder() + File.separator + "panels"); try { if (panelsf.list() == null || Objects.requireNonNull(panelsf.list()).length == 0) { @@ -32,7 +31,7 @@ public class commandpanelcustom implements Listener { }catch(Exception b){ return; } - YamlConfiguration cf; //this is the file to use for any panel.* requests + YamlConfiguration cf = null; //this is the file to use for any panel.* requests ArrayList apanels = new ArrayList(); //all panels from all files (panel names) String tpanels; //tpanels is the temp to check through the files String panel = null; @@ -41,11 +40,7 @@ public class commandpanelcustom implements Listener { String key; tpanels = ""; if(!plugin.checkPanels(temp)){ - if (plugin.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(p, plugin.config.getString("config.format.error") + ": File with no Panels found!"))); - } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.error") + ": File with no Panels found!")); - } + p.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + ": File with no Panels found!")); return; } for (Iterator var10 = Objects.requireNonNull(temp.getConfigurationSection("panels")).getKeys(false).iterator(); var10.hasNext(); tpanels = tpanels + key + " ") { @@ -58,6 +53,7 @@ public class commandpanelcustom implements Listener { if(temp.contains("panels." + tpanels.split("\\s")[i] + ".command")) { for(int c = 0; c < temp.getString("panels." + tpanels.split("\\s")[i] + ".command").split("\\s").length;c++) { if (("/" + temp.getString("panels." + tpanels.split("\\s")[i] + ".command").split("\\s")[c]).equalsIgnoreCase(e.getMessage())) { + cf = temp; panels = tpanels; panels = panels.trim(); panel = panels.split("\\s")[i]; @@ -72,10 +68,10 @@ public class commandpanelcustom implements Listener { } e.setCancelled(true); try { - Bukkit.dispatchCommand(p, ChatColor.translateAlternateColorCodes('&', "commandpanels:commandpanel " + panel)); + plugin.openCommandPanel(p,p,panel,cf,false); }catch(Exception er){ //do nothing - p.sendMessage(ChatColor.translateAlternateColorCodes('&',plugin.papi(p,tag + ChatColor.RED + "Error opening panel!"))); + p.sendMessage(plugin.papi(tag + ChatColor.RED + "Error opening panel!")); } } } diff --git a/src/me/rockyhawk/commandPanels/commands/commandpanelsdebug.java b/src/me/rockyhawk/commandPanels/commands/commandpanelsdebug.java index ccea0f7..4f40d6c 100644 --- a/src/me/rockyhawk/commandPanels/commands/commandpanelsdebug.java +++ b/src/me/rockyhawk/commandPanels/commands/commandpanelsdebug.java @@ -20,20 +20,20 @@ public class commandpanelsdebug implements CommandExecutor { //command /cpd plugin.debug = !plugin.debug; if(plugin.debug){ - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Debug Mode Enabled!")); + sender.sendMessage(plugin.papi(tag + ChatColor.GREEN + "Debug Mode Enabled!")); }else{ - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Debug Mode Disabled!")); + sender.sendMessage(plugin.papi(tag + ChatColor.GREEN + "Debug Mode Disabled!")); } }else{ - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + "Usage: /cpd")); + sender.sendMessage(plugin.papi(tag + ChatColor.RED + "Usage: /cpd")); } return true; }else{ - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.perms"))); + sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.perms"))); return true; } } - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + "Usage: /cpd")); + sender.sendMessage(plugin.papi(tag + ChatColor.RED + "Usage: /cpd")); return true; } } \ No newline at end of file diff --git a/src/me/rockyhawk/commandPanels/commands/commandpanelslist.java b/src/me/rockyhawk/commandPanels/commands/commandpanelslist.java index 5988237..e5b4f6c 100644 --- a/src/me/rockyhawk/commandPanels/commands/commandpanelslist.java +++ b/src/me/rockyhawk/commandPanels/commands/commandpanelslist.java @@ -26,11 +26,11 @@ public class commandpanelslist implements CommandExecutor { //check to make sure the panels isn't empty try { if (plugin.panelFiles == null) { - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + "No panels found!")); + sender.sendMessage(plugin.papi(tag + ChatColor.RED + "No panels found!")); return true; } }catch(Exception b){ - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + "No panels found!")); + sender.sendMessage(plugin.papi(tag + ChatColor.RED + "No panels found!")); return true; } ArrayList apanels = new ArrayList(); //all panels from all files (panel names) @@ -42,7 +42,7 @@ public class commandpanelslist implements CommandExecutor { temp = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + plugin.panelFiles.get(f))); apanels.add("%file%" + plugin.panelFiles.get(f)); if(!plugin.checkPanels(temp)){ - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.error") + ": File with no Panels found!")); + sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + ": File with no Panels found!")); return true; } for (Iterator var10 = temp.getConfigurationSection("panels").getKeys(false).iterator(); var10.hasNext(); tpanels = tpanels + key + " ") { @@ -57,7 +57,7 @@ public class commandpanelslist implements CommandExecutor { page = Integer.parseInt(args[0]); skip = page*9-9; }catch (Exception e){ - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + "Inaccessible Page")); + sender.sendMessage(plugin.papi(tag + ChatColor.RED + "Inaccessible Page")); } } for (int f = skip; apanels.size() > f; f++) { @@ -67,7 +67,7 @@ public class commandpanelslist implements CommandExecutor { break; } } - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.DARK_AQUA + "Panels: (Page " + page + ")")); + sender.sendMessage(plugin.papi(tag + ChatColor.DARK_AQUA + "Panels: (Page " + page + ")")); for (int f = skip; apanels.size() > f; f++) { if(apanels.get(f).contains("%file%")){ if(skip+9 <= f){ @@ -81,11 +81,11 @@ public class commandpanelslist implements CommandExecutor { } return true; }else{ - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.perms"))); + sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.perms"))); return true; } } - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + "Usage: /cpl")); + sender.sendMessage(plugin.papi(tag + ChatColor.RED + "Usage: /cpl")); return true; } } \ No newline at end of file diff --git a/src/me/rockyhawk/commandPanels/commands/commandpanelsreload.java b/src/me/rockyhawk/commandPanels/commands/commandpanelsreload.java index d8420d3..2d24130 100644 --- a/src/me/rockyhawk/commandPanels/commands/commandpanelsreload.java +++ b/src/me/rockyhawk/commandPanels/commands/commandpanelsreload.java @@ -22,14 +22,14 @@ public class commandpanelsreload implements CommandExecutor { plugin.config = YamlConfiguration.loadConfiguration(new File(plugin.getDataFolder() + File.separator + "config.yml")); plugin.reloadPanelFiles(); tag = plugin.config.getString("config.format.tag") + " "; - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.reload"))); + sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.reload"))); return true; }else{ - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.perms"))); + sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.perms"))); return true; } } - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + "Usage: /cpr")); + sender.sendMessage(plugin.papi(tag + ChatColor.RED + "Usage: /cpr")); return true; } } \ No newline at end of file diff --git a/src/me/rockyhawk/commandPanels/commands/commandpanelversion.java b/src/me/rockyhawk/commandPanels/commands/commandpanelversion.java index f3392eb..5800b94 100644 --- a/src/me/rockyhawk/commandPanels/commands/commandpanelversion.java +++ b/src/me/rockyhawk/commandPanels/commands/commandpanelversion.java @@ -18,17 +18,17 @@ public class commandpanelversion implements CommandExecutor { if (label.equalsIgnoreCase("cpv") || label.equalsIgnoreCase("commandpanelversion") || label.equalsIgnoreCase("cpanelv")) { if (sender.hasPermission("commandpanel.version")) { //version command - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag)); + sender.sendMessage(plugin.papi(tag)); sender.sendMessage(ChatColor.GREEN + "Version " + ChatColor.GRAY + plugin.getDescription().getVersion()); sender.sendMessage(ChatColor.GREEN + "Developer " + ChatColor.GRAY + "RockyHawk"); sender.sendMessage(ChatColor.GREEN + "Command " + ChatColor.GRAY + "/cp"); return true; }else{ - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.perms"))); + sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.perms"))); return true; } } - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + "Usage: /cpv")); + sender.sendMessage(plugin.papi(tag + ChatColor.RED + "Usage: /cpv")); return true; } } diff --git a/src/me/rockyhawk/commandPanels/generatePanels/commandpanelsgenerate.java b/src/me/rockyhawk/commandPanels/generatePanels/commandpanelsgenerate.java index 1970220..d18fc4d 100644 --- a/src/me/rockyhawk/commandPanels/generatePanels/commandpanelsgenerate.java +++ b/src/me/rockyhawk/commandPanels/generatePanels/commandpanelsgenerate.java @@ -20,7 +20,7 @@ public class commandpanelsgenerate implements CommandExecutor { public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { String tag = plugin.config.getString("config.format.tag") + " "; if(!(sender instanceof Player)) { - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + "Please execute command as a Player!")); + sender.sendMessage(plugin.papi(tag + ChatColor.RED + "Please execute command as a Player!")); return true; } Player p = (Player) sender; @@ -33,30 +33,30 @@ public class commandpanelsgenerate implements CommandExecutor { Inventory i = Bukkit.createInventory((InventoryHolder) null, Integer.parseInt(args[0]) * 9, "Generate New Panel"); p.openInventory(i); } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + "Please use integer from 1-6.")); + p.sendMessage(plugin.papi( tag + ChatColor.RED + "Please use integer from 1-6.")); } }catch(Exception exc){ - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + "Please use integer from 1-6.")); + p.sendMessage(plugin.papi( tag + ChatColor.RED + "Please use integer from 1-6.")); } return true; }else if (args.length == 0) { if (this.plugin.generateMode.contains(p)) { this.plugin.generateMode.remove(p); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Generate Mode Disabled!")); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Generate Mode Disabled!")); } else { this.plugin.generateMode.add(p); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Generate Mode Enabled!")); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Generate Mode Enabled!")); } return true; } - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + "Usage: /cpg [rows]")); + p.sendMessage(plugin.papi( tag + ChatColor.RED + "Usage: /cpg [rows]")); return true; }else{ - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.perms"))); + p.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.perms"))); return true; } } - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + "Usage: /cpg [rows]")); + p.sendMessage(plugin.papi(tag + ChatColor.RED + "Usage: /cpg [rows]")); return true; } } \ No newline at end of file diff --git a/src/me/rockyhawk/commandPanels/generatePanels/newGenUtils.java b/src/me/rockyhawk/commandPanels/generatePanels/newGenUtils.java index 102aa38..62fcac8 100644 --- a/src/me/rockyhawk/commandPanels/generatePanels/newGenUtils.java +++ b/src/me/rockyhawk/commandPanels/generatePanels/newGenUtils.java @@ -81,7 +81,7 @@ public class newGenUtils implements Listener { } if(!foundItem){ //panels don't need items but I cancel on generate with no items because then players have the option to cancel if they need to - p.sendMessage(plugin.papi(p,tag + ChatColor.RED + "Cancelled Panel!")); + p.sendMessage(plugin.papi(tag + ChatColor.RED + "Cancelled Panel!")); return; } YamlConfiguration file; @@ -132,9 +132,9 @@ public class newGenUtils implements Listener { try { file.save(new File(plugin.panelsf + File.separator + date + ".yml")); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Saved Generated File To: " + date + ".yml")); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Saved Generated File To: " + date + ".yml")); } catch (IOException var16) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + "Could Not Save Generated Panel!")); + p.sendMessage(plugin.papi( tag + ChatColor.RED + "Could Not Save Generated Panel!")); } plugin.reloadPanelFiles(); } diff --git a/src/me/rockyhawk/commandPanels/ingameEditor/cpIngameEditCommand.java b/src/me/rockyhawk/commandPanels/ingameEditor/cpIngameEditCommand.java index 1ee964f..9477322 100644 --- a/src/me/rockyhawk/commandPanels/ingameEditor/cpIngameEditCommand.java +++ b/src/me/rockyhawk/commandPanels/ingameEditor/cpIngameEditCommand.java @@ -23,16 +23,16 @@ public class cpIngameEditCommand implements CommandExecutor { public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { String tag = plugin.config.getString("config.format.tag") + " "; if(!sender.hasPermission("commandpanel.edit")){ - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.perms"))); + sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.perms"))); return true; } if(Objects.requireNonNull(plugin.config.getString("config.ingame-editor")).equalsIgnoreCase("false")){ //this will cancel every /cpe command if ingame-editor is set to false - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + "Editor disabled!")); + sender.sendMessage(plugin.papi(tag + ChatColor.RED + "Editor disabled!")); return true; } if(!(sender instanceof Player)) { - sender.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + "Please execute command as a Player!")); + sender.sendMessage(plugin.papi( tag + ChatColor.RED + "Please execute command as a Player!")); return true; } File panelscf = new File(plugin.getDataFolder() + File.separator + "panels" + File.separator + "example.yml"); //cf == correct file @@ -49,7 +49,7 @@ public class cpIngameEditCommand implements CommandExecutor { tpanels = ""; temp = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + filename)); if (!plugin.checkPanels(temp)) { - sender.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + plugin.config.getString("config.format.error") + ": File with no Panels found!")); + sender.sendMessage(plugin.papi( tag + plugin.config.getString("config.format.error") + ": File with no Panels found!")); return true; } for (Iterator var10 = temp.getConfigurationSection("panels").getKeys(false).iterator(); var10.hasNext(); tpanels = tpanels + key + " ") { @@ -82,16 +82,12 @@ public class cpIngameEditCommand implements CommandExecutor { Set oset = new HashSet(opanels); if (oset.size() < opanels.size()) { //there are duplicate panel names - if (plugin.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(p, plugin.config.getString("config.format.error") + " panels: You cannot have duplicate panel names!"))); - } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.error") + " panels: You cannot have duplicate panel names!")); - } + p.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " panels: You cannot have duplicate panel names!")); if(plugin.debug){ ArrayList opanelsTemp = new ArrayList(); for(String tempName : opanels){ if(opanelsTemp.contains(tempName)){ - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + " The duplicate panel is: " + tempName)); + p.sendMessage(plugin.papi(tag + ChatColor.RED + " The duplicate panel is: " + tempName)); return true; } opanelsTemp.add(tempName); @@ -102,16 +98,12 @@ public class cpIngameEditCommand implements CommandExecutor { Set set = new HashSet(apanels); if (set.size() < apanels.size()) { //there are duplicate panel names - if (plugin.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(p, plugin.config.getString("config.format.error") + " title: You cannot have duplicate title names!"))); - } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.error") + " title: You cannot have duplicate title names!")); - } + p.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " title: You cannot have duplicate title names!")); if(plugin.debug){ ArrayList apanelsTemp = new ArrayList(); for(String tempName : apanels){ if(apanelsTemp.contains(tempName)){ - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + " The duplicate title is: " + tempName)); + p.sendMessage(plugin.papi(tag + ChatColor.RED + " The duplicate title is: " + tempName)); return true; } apanelsTemp.add(tempName); @@ -134,7 +126,7 @@ public class cpIngameEditCommand implements CommandExecutor { } if (nfound) { //if the panel was not found in the message - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(p, plugin.config.getString("config.format.nopanel")))); + p.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.nopanel"))); return true; }else if (!checkconfig(panels, p, cf)) { //if the config is missing an element (message will be sent to user via the public boolean) @@ -145,50 +137,30 @@ public class cpIngameEditCommand implements CommandExecutor { return true; } } - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + "Usage: /cpe ")); + sender.sendMessage(plugin.papi(tag + ChatColor.RED + "Usage: /cpe ")); return true; } boolean checkconfig(String panels, Player p, YamlConfiguration pconfig) { //if it is missing a section specified it will return false String tag = plugin.config.getString("config.format.tag") + " "; if(!pconfig.contains("panels." + panels)) { - if (plugin.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(p, plugin.config.getString("config.format.nopanel")))); - } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.nopanel"))); - } + p.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.nopanel"))); return false; } if(!pconfig.contains("panels." + panels + ".perm")) { - if (plugin.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(p, plugin.config.getString("config.format.error") + " perm: Missing config section!"))); - } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.error") + " perm: Missing config section!")); - } + p.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " perm: Missing config section!")); return false; } if(!pconfig.contains("panels." + panels + ".rows")) { - if (plugin.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(p, plugin.config.getString("config.format.error") + " rows: Missing config section!"))); - } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.error") + " rows: Missing config section!")); - } + p.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " perm: Missing config section!")); return false; } if(!pconfig.contains("panels." + panels + ".title")) { - if (plugin.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(p, plugin.config.getString("config.format.error") + " title: Missing config section!"))); - } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.error") + " title: Missing config section!")); - } + p.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " perm: Missing config section!")); return false; } if(!pconfig.contains("panels." + panels + ".item")) { - if (plugin.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(p, plugin.config.getString("config.format.error") + " item: Missing config section!"))); - } else { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.error") + " item: Missing config section!")); - } + p.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + " perm: Missing config section!")); return false; } return true; diff --git a/src/me/rockyhawk/commandPanels/ingameEditor/editorUserInput.java b/src/me/rockyhawk/commandPanels/ingameEditor/editorUserInput.java index e442ce2..668c44d 100644 --- a/src/me/rockyhawk/commandPanels/ingameEditor/editorUserInput.java +++ b/src/me/rockyhawk/commandPanels/ingameEditor/editorUserInput.java @@ -44,7 +44,7 @@ public class editorUserInput implements Listener { if (key.equals(panelName)) { cf = tempConf; panelFile = new File(plugin.panelsf + File.separator + tempFile); - panelTitle = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(tempConf.getString("panels." + key + ".title"))); + panelTitle = plugin.papi( Objects.requireNonNull(tempConf.getString("panels." + key + ".title"))); break; } } @@ -56,7 +56,7 @@ public class editorUserInput implements Listener { if(e.getMessage().equalsIgnoreCase(plugin.config.getString("config.input-cancel"))){ plugin.editorInputStrings.remove(temp); plugin.reloadPanelFiles(); - e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.config.getString("config.input-cancelled")))); + e.getPlayer().sendMessage(plugin.papi( Objects.requireNonNull(plugin.config.getString("config.input-cancelled")))); return; } if(section.startsWith("panel.")) { @@ -101,112 +101,112 @@ public class editorUserInput implements Listener { //if the file has more than one panel in it cf.set("panels." + panelName, null); if(savePanelFile(cf, panelFile)){ - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Deleted Panel!")); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Deleted Panel!")); }else{ - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + "Could Not Delete Panel!")); + p.sendMessage(plugin.papi( tag + ChatColor.RED + "Could Not Delete Panel!")); } }else { //if the file only has one panel in it if (panelFile.delete()) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Deleted Panel!")); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Deleted Panel!")); }else{ - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + "Could Not Delete Panel!")); + p.sendMessage(plugin.papi( tag + ChatColor.RED + "Could Not Delete Panel!")); } } } break; case "panel.perm": if(e.getMessage().contains(" ")){ - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + "Permission cannot contain spaces!")); + p.sendMessage(plugin.papi( tag + ChatColor.RED + "Permission cannot contain spaces!")); break; } cf.set("panels." + panelName + ".perm", e.getMessage()); savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Permission required is now " + "commandpanel.panel." + e.getMessage())); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Permission required is now " + "commandpanel.panel." + e.getMessage())); break; case "panel.rows": try { int rows = Integer.parseInt(e.getMessage()); if (rows >= 7 || rows <= 0) { //if the number isn't between 1-6 - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Choose an integer between 1 to 6!")); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Choose an integer between 1 to 6!")); return; } cf.set("panels." + panelName + ".rows", rows); cf.save(panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Set Panel to " + rows + " rows!")); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set Panel to " + rows + " rows!")); } catch (Exception io) { plugin.debug(io); } break; case "panel.title": - if(panelTitle.equals(ChatColor.translateAlternateColorCodes('&',e.getMessage()))){ - p.sendMessage(plugin.papi(p,tag + e.getMessage() + ChatColor.RED + " is in use from another panel!")); + if(panelTitle.equals(plugin.papi(e.getMessage()))){ + p.sendMessage(plugin.papi(tag + e.getMessage() + ChatColor.RED + " is in use from another panel!")); break; } cf.set("panels." + panelName + ".title", e.getMessage()); savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Set new Title to " + ChatColor.WHITE + e.getMessage())); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set new Title to " + ChatColor.WHITE + e.getMessage())); break; case "panel.name": if(e.getMessage().contains(" ")){ - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + "Panel name cannot contain spaces!")); + p.sendMessage(plugin.papi( tag + ChatColor.RED + "Panel name cannot contain spaces!")); break; } if(panelName.equals(e.getMessage())){ - p.sendMessage(plugin.papi(p,tag + ChatColor.RED + e.getMessage() + " is in use from another panel!")); + p.sendMessage(plugin.papi(tag + ChatColor.RED + e.getMessage() + " is in use from another panel!")); break; } cf.set("panels." + e.getMessage(), cf.get("panels." + panelName)); cf.set("panels." + panelName, null); savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Set new Name to " + e.getMessage())); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set new Name to " + e.getMessage())); break; case "panel.empty": if(e.getMessage().trim().equalsIgnoreCase("remove")){ cf.set("panels." + panelName + ".empty", null); savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Empty materials have been removed.")); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Empty materials have been removed.")); break; } String materialTemp = null; try { materialTemp = Objects.requireNonNull(Material.matchMaterial(e.getMessage())).toString(); }catch(NullPointerException ex){ - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + e.getMessage() + " is not a valid Material!")); + p.sendMessage(plugin.papi( tag + ChatColor.RED + e.getMessage() + " is not a valid Material!")); } cf.set("panels." + panelName + ".empty", materialTemp); savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Set Empty material to " + materialTemp)); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set Empty material to " + materialTemp)); break; case "panel.sound-on-open": if(e.getMessage().trim().equalsIgnoreCase("remove")){ cf.set("panels." + panelName + ".sound-on-open", null); savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Sounds have been removed.")); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Sounds have been removed.")); break; } String tempSound; try { tempSound = Sound.valueOf(e.getMessage()).toString(); }catch(Exception ex){ - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + e.getMessage() + " is not a valid Sound!")); + p.sendMessage(plugin.papi( tag + ChatColor.RED + e.getMessage() + " is not a valid Sound!")); return; } cf.set("panels." + panelName + ".sound-on-open", tempSound); savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Sound when opening is now " + tempSound)); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Sound when opening is now " + tempSound)); break; case "panel.command": if(e.getMessage().trim().equalsIgnoreCase("remove")){ cf.set("panels." + panelName + ".command", null); savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Custom commands have been removed.")); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Custom commands have been removed.")); break; } cf.set("panels." + panelName + ".command", e.getMessage()); savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Set new custom commands to " + ChatColor.WHITE + "/" + e.getMessage().trim().replace(" ", " /"))); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set new custom commands to " + ChatColor.WHITE + "/" + e.getMessage().trim().replace(" ", " /"))); break; case "panel.commands-on-open.add": List commandsOnOpenAdd = new ArrayList<>(); @@ -216,20 +216,20 @@ public class editorUserInput implements Listener { commandsOnOpenAdd.add(e.getMessage()); cf.set("panels." + panelName + ".commands-on-open", commandsOnOpenAdd); savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Added new command: " + e.getMessage())); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Added new command: " + e.getMessage())); break; case "panel.commands-on-open.remove": List commandsOnOpenRemove; if(cf.contains("panels." + panelName + ".commands-on-open")){ commandsOnOpenRemove = cf.getStringList("panels." + panelName + ".commands-on-open"); }else{ - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + "No commands found to remove!")); + p.sendMessage(plugin.papi( tag + ChatColor.RED + "No commands found to remove!")); break; } try { commandsOnOpenRemove.remove(Integer.parseInt(e.getMessage())-1); }catch (Exception ex){ - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + "Could not find command!")); + p.sendMessage(plugin.papi( tag + ChatColor.RED + "Could not find command!")); break; } if(commandsOnOpenRemove.size() == 0){ @@ -238,13 +238,13 @@ public class editorUserInput implements Listener { cf.set("panels." + panelName + ".commands-on-open", commandsOnOpenRemove); } savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Removed command line " + e.getMessage())); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Removed command line " + e.getMessage())); break; case "panel.hotbar.material": if(e.getMessage().trim().equalsIgnoreCase("remove")){ cf.set("panels." + panelName + ".open-with-item", null); savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Hotbar item have been removed.")); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Hotbar item have been removed.")); //after an open-with-item has been altered, reload after changes plugin.reloadPanelFiles(); break; @@ -255,7 +255,7 @@ public class editorUserInput implements Listener { cf.set("panels." + panelName + ".open-with-item.name", panelName + " Item"); } savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Set new Material to " + ChatColor.WHITE + temp.toString())); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set new Material to " + ChatColor.WHITE + temp.toString())); //after an open-with-item has been altered, reload after changes plugin.reloadPanelFiles(); break; @@ -263,17 +263,17 @@ public class editorUserInput implements Listener { if(e.getMessage().trim().equalsIgnoreCase("remove")){ cf.set("panels." + panelName + ".open-with-item.stationary", null); savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Hotbar item can now be moved.")); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Hotbar item can now be moved.")); break; } try { int loc = Integer.parseInt(e.getMessage()); if (loc >= 10 || loc <= 0) { //if the number isn't between 1-9 - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Choose an integer between 1 to 9!")); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Choose an integer between 1 to 9!")); return; } - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Set Hotbar Location to " + loc + "!")); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set Hotbar Location to " + loc + "!")); //because it needs to convert 1-9 to 0-8 for in the panel loc -= 1; cf.set("panels." + panelName + ".open-with-item.stationary", loc); @@ -285,7 +285,7 @@ public class editorUserInput implements Listener { case "panel.hotbar.name": cf.set("panels." + panelName + ".open-with-item.name",e.getMessage()); savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Set new Name to " + ChatColor.WHITE + e.getMessage())); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set new Name to " + ChatColor.WHITE + e.getMessage())); break; case "panel.hotbar.lore.add": List loreAdd = new ArrayList<>(); @@ -295,20 +295,20 @@ public class editorUserInput implements Listener { loreAdd.add(e.getMessage()); cf.set("panels." + panelName + ".open-with-item.lore", loreAdd); savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Added new lore: " + e.getMessage())); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Added new lore: " + e.getMessage())); break; case "panel.hotbar.lore.remove": List loreRemove; if(cf.contains("panels." + panelName + ".open-with-item.lore")){ loreRemove = cf.getStringList("panels." + panelName + ".open-with-item.lore"); }else{ - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + "No lore found to remove!")); + p.sendMessage(plugin.papi( tag + ChatColor.RED + "No lore found to remove!")); break; } try { loreRemove.remove(Integer.parseInt(e.getMessage())-1); }catch (Exception ex){ - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + "Could not find lore!")); + p.sendMessage(plugin.papi( tag + ChatColor.RED + "Could not find lore!")); break; } if(loreRemove.size() == 0){ @@ -317,7 +317,7 @@ public class editorUserInput implements Listener { cf.set("panels." + panelName + ".open-with-item.lore", loreRemove); } savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Removed lore line " + e.getMessage())); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Removed lore line " + e.getMessage())); break; } } @@ -330,41 +330,41 @@ public class editorUserInput implements Listener { if(e.getMessage().trim().equalsIgnoreCase("remove")){ cf.set("panels." + panelName + ".item." + itemSlot + ".name", ""); savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Name is now default.")); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Name is now default.")); break; } cf.set("panels." + panelName + ".item." + itemSlot + ".name", e.getMessage()); savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Set new name to " + ChatColor.WHITE + e.getMessage())); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set new name to " + ChatColor.WHITE + e.getMessage())); break; case "head": if(e.getMessage().trim().equalsIgnoreCase("remove")){ cf.set("panels." + panelName + ".item." + itemSlot + ".material", "PLAYER_HEAD"); savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Material is now default.")); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Material is now default.")); break; } cf.set("panels." + panelName + ".item." + itemSlot + ".material", e.getMessage()); savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Set Material value to " + ChatColor.WHITE + e.getMessage())); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set Material value to " + ChatColor.WHITE + e.getMessage())); break; case "stack": if(e.getMessage().trim().equalsIgnoreCase("remove")){ cf.set("panels." + panelName + ".item." + itemSlot + ".stack", null); savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Item has been unstacked.")); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Item has been unstacked.")); break; } try { int rows = Integer.parseInt(e.getMessage()); if (rows >= 65 || rows <= 0) { //if the number isn't between 1-64 - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Choose an integer between 1 to 64!")); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Choose an integer between 1 to 64!")); return; } cf.set("panels." + panelName + ".item." + itemSlot + ".stack", rows); cf.save(panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Set stack to " + rows + "!")); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set stack to " + rows + "!")); } catch (Exception io) { plugin.debug(io); } @@ -373,45 +373,45 @@ public class editorUserInput implements Listener { if(e.getMessage().trim().equalsIgnoreCase("remove")){ cf.set("panels." + panelName + ".item." + itemSlot + ".enchanted", null); savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Enchantments have been removed.")); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Enchantments have been removed.")); break; } cf.set("panels." + panelName + ".item." + itemSlot + ".enchanted", e.getMessage()); savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Set new Enchantment to " + ChatColor.WHITE + e.getMessage())); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set new Enchantment to " + ChatColor.WHITE + e.getMessage())); break; case "potion": if(e.getMessage().trim().equalsIgnoreCase("remove")){ cf.set("panels." + panelName + ".item." + itemSlot + ".potion", null); savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Potion effects have been removed.")); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Potion effects have been removed.")); break; } cf.set("panels." + panelName + ".item." + itemSlot + ".potion", e.getMessage()); savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Set new Potion to " + e.getMessage().toUpperCase())); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Set new Potion to " + e.getMessage().toUpperCase())); break; case "customdata": if(e.getMessage().trim().equalsIgnoreCase("remove")){ cf.set("panels." + panelName + ".item." + itemSlot + ".customdata", null); savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Custom Model Data has been removed.")); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Custom Model Data has been removed.")); break; } cf.set("panels." + panelName + ".item." + itemSlot + ".customdata", e.getMessage()); savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Custom Model Data set to " + e.getMessage())); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Custom Model Data set to " + e.getMessage())); break; case "leatherarmor": if(e.getMessage().trim().equalsIgnoreCase("remove")){ cf.set("panels." + panelName + ".item." + itemSlot + ".leatherarmor", null); savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Leather armor colour has been removed.")); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Leather armor colour has been removed.")); break; } cf.set("panels." + panelName + ".item." + itemSlot + ".leatherarmor", e.getMessage()); savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Leather armor colour set to " + e.getMessage())); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Leather armor colour set to " + e.getMessage())); break; case "commands.add": List commandsOnOpenAdd = new ArrayList<>(); @@ -421,20 +421,20 @@ public class editorUserInput implements Listener { commandsOnOpenAdd.add(e.getMessage()); cf.set("panels." + panelName + ".item." + itemSlot + ".commands", commandsOnOpenAdd); savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Added new command: " + e.getMessage())); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Added new command: " + e.getMessage())); break; case "commands.remove": List commandsOnOpenRemove; if(cf.contains("panels." + panelName + ".item." + itemSlot + ".commands")){ commandsOnOpenRemove = cf.getStringList("panels." + panelName + ".item." + itemSlot + ".commands"); }else{ - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + "No commands found to remove!")); + p.sendMessage(plugin.papi( tag + ChatColor.RED + "No commands found to remove!")); break; } try { commandsOnOpenRemove.remove(Integer.parseInt(e.getMessage())-1); }catch (Exception ex){ - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + "Could not find command!")); + p.sendMessage(plugin.papi( tag + ChatColor.RED + "Could not find command!")); break; } if(commandsOnOpenRemove.size() == 0){ @@ -443,7 +443,7 @@ public class editorUserInput implements Listener { cf.set("panels." + panelName + ".item." + itemSlot + ".commands", commandsOnOpenRemove); } savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Removed command line " + e.getMessage())); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Removed command line " + e.getMessage())); break; case "lore.add": List loreOnOpenAdd = new ArrayList<>(); @@ -453,20 +453,20 @@ public class editorUserInput implements Listener { loreOnOpenAdd.add(e.getMessage()); cf.set("panels." + panelName + ".item." + itemSlot + ".lore", loreOnOpenAdd); savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Added new lore: " + e.getMessage())); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Added new lore: " + e.getMessage())); break; case "lore.remove": List loreOnOpenRemove; if(cf.contains("panels." + panelName + ".item." + itemSlot + ".lore")){ loreOnOpenRemove = cf.getStringList("panels." + panelName + ".item." + itemSlot + ".lore"); }else{ - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + "No lore found to remove!")); + p.sendMessage(plugin.papi( tag + ChatColor.RED + "No lore found to remove!")); break; } try { loreOnOpenRemove.remove(Integer.parseInt(e.getMessage())-1); }catch (Exception ex){ - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.RED + "Could not find lore!")); + p.sendMessage(plugin.papi( tag + ChatColor.RED + "Could not find lore!")); break; } if(loreOnOpenRemove.size() == 0){ @@ -475,7 +475,7 @@ public class editorUserInput implements Listener { cf.set("panels." + panelName + ".item." + itemSlot + ".lore", loreOnOpenRemove); } savePanelFile(cf, panelFile); - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + ChatColor.GREEN + "Removed lore line " + e.getMessage())); + p.sendMessage(plugin.papi( tag + ChatColor.GREEN + "Removed lore line " + e.getMessage())); break; } } diff --git a/src/me/rockyhawk/commandPanels/ingameEditor/editorUtils.java b/src/me/rockyhawk/commandPanels/ingameEditor/editorUtils.java index 18a97a2..07a7ae4 100644 --- a/src/me/rockyhawk/commandPanels/ingameEditor/editorUtils.java +++ b/src/me/rockyhawk/commandPanels/ingameEditor/editorUtils.java @@ -34,7 +34,7 @@ public class editorUtils implements Listener { return; } }catch(NullPointerException nu){return;} - if(!p.getOpenInventory().getTitle().equals(ChatColor.stripColor(ChatColor.translateAlternateColorCodes('&',"Command Panels Editor")))){ + if(!p.getOpenInventory().getTitle().equals(ChatColor.stripColor(plugin.papi("Command Panels Editor")))){ return; } e.setCancelled(true); @@ -53,8 +53,8 @@ public class editorUtils implements Listener { } for (String s : Objects.requireNonNull(temp.getConfigurationSection("panels")).getKeys(false)) { key = s; - panelNames.add(ChatColor.translateAlternateColorCodes('&', key)); - panelTitles.add(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(temp.getString("panels." + key + ".title")))); + panelNames.add(plugin.papi( key)); + panelTitles.add(plugin.papi( Objects.requireNonNull(temp.getString("panels." + key + ".title")))); panelYaml.add(temp); } } @@ -150,7 +150,7 @@ public class editorUtils implements Listener { } for (String s : Objects.requireNonNull(temp.getConfigurationSection("panels")).getKeys(false)) { key = s; - if (e.getView().getTitle().equals(ChatColor.GRAY + "Editing Panel: " + ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(temp.getString("panels." + key + ".title"))))) { + if (e.getView().getTitle().equals(ChatColor.GRAY + "Editing Panel: " + plugin.papi( Objects.requireNonNull(temp.getString("panels." + key + ".title"))))) { panelName = key; fileName = fileTempName; file = temp; @@ -217,7 +217,7 @@ public class editorUtils implements Listener { } for (String s : Objects.requireNonNull(temp.getConfigurationSection("panels")).getKeys(false)) { key = s; - if (e.getView().getTitle().equals(ChatColor.GRAY + "Editing Panel: " + ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(temp.getString("panels." + key + ".title"))))) { + if (e.getView().getTitle().equals(ChatColor.GRAY + "Editing Panel: " + plugin.papi( Objects.requireNonNull(temp.getString("panels." + key + ".title"))))) { panelName = key; fileName = new File(plugin.panelsf + File.separator + tempName); file = temp; @@ -355,53 +355,53 @@ public class editorUtils implements Listener { } if(e.getSlot() == 1){ plugin.editorInputStrings.add(new String[]{p.getName(),panelName,"panel.perm"}); - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Enter New Permission")); + p.sendMessage(plugin.papi(tag + ChatColor.GREEN + "Enter New Permission")); p.closeInventory(); } if(e.getSlot() == 3){ plugin.editorInputStrings.add(new String[]{p.getName(),panelName,"panel.title"}); - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Enter New Title")); + p.sendMessage(plugin.papi(tag + ChatColor.GREEN + "Enter New Title")); p.closeInventory(); } if(e.getSlot() == 5){ plugin.editorInputStrings.add(new String[]{p.getName(),panelName,"panel.sound-on-open"}); - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Enter New Sound ID")); + p.sendMessage(plugin.papi(tag + ChatColor.GREEN + "Enter New Sound ID")); p.closeInventory(); } if(e.getSlot() == 7){ plugin.editorInputStrings.add(new String[]{p.getName(),panelName,"panel.command"}); - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Enter New Command")); + p.sendMessage(plugin.papi(tag + ChatColor.GREEN + "Enter New Command")); p.closeInventory(); } if(e.getSlot() == 21){ plugin.editorInputStrings.add(new String[]{p.getName(),panelName,"panel.delete"}); - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Are you sure? (yes/no)")); + p.sendMessage(plugin.papi(tag + ChatColor.GREEN + "Are you sure? (yes/no)")); p.closeInventory(); } if(e.getSlot() == 23){ plugin.editorInputStrings.add(new String[]{p.getName(),panelName,"panel.rows"}); - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Enter Row Amount (1 to 6)")); + p.sendMessage(plugin.papi(tag + ChatColor.GREEN + "Enter Row Amount (1 to 6)")); p.closeInventory(); } if(e.getSlot() == 13){ plugin.editorInputStrings.add(new String[]{p.getName(),panelName,"panel.empty"}); - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Enter New Material ID")); + p.sendMessage(plugin.papi(tag + ChatColor.GREEN + "Enter New Material ID")); p.closeInventory(); } if(e.getSlot() == 15){ //adds abilities to add and remove lines if(e.getClick().isLeftClick()) { plugin.editorInputStrings.add(new String[]{p.getName(), panelName, "panel.commands-on-open.add"}); - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Enter New Command")); + p.sendMessage(plugin.papi(tag + ChatColor.GREEN + "Enter New Command")); }else{ plugin.editorInputStrings.add(new String[]{p.getName(), panelName, "panel.commands-on-open.remove"}); - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Enter command line to remove (must be an integer)")); + p.sendMessage(plugin.papi(tag + ChatColor.GREEN + "Enter command line to remove (must be an integer)")); } p.closeInventory(); } if(e.getSlot() == 11){ plugin.editorInputStrings.add(new String[]{p.getName(),panelName,"panel.name"}); - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Enter New Name")); + p.sendMessage(plugin.papi(tag + ChatColor.GREEN + "Enter New Name")); p.closeInventory(); } if(e.getSlot() == 18){ @@ -410,28 +410,28 @@ public class editorUtils implements Listener { } if(e.getSlot() == 40){ plugin.editorInputStrings.add(new String[]{p.getName(),panelName,"panel.hotbar.material"}); - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Enter New Material")); + p.sendMessage(plugin.papi(tag + ChatColor.GREEN + "Enter New Material")); p.closeInventory(); } if(e.getSlot() == 38 && hotbarItems){ plugin.editorInputStrings.add(new String[]{p.getName(),panelName,"panel.hotbar.name"}); - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Enter New Name")); + p.sendMessage(plugin.papi(tag + ChatColor.GREEN + "Enter New Name")); p.closeInventory(); } if(e.getSlot() == 36 && hotbarItems){ //adds abilities to add and remove lines if(e.getClick().isLeftClick()) { plugin.editorInputStrings.add(new String[]{p.getName(),panelName,"panel.hotbar.lore.add"}); - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Enter New Item Lore")); + p.sendMessage(plugin.papi(tag + ChatColor.GREEN + "Enter New Item Lore")); }else{ plugin.editorInputStrings.add(new String[]{p.getName(),panelName,"panel.hotbar.lore.remove"}); - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Enter lore line to remove (must be an integer)")); + p.sendMessage(plugin.papi(tag + ChatColor.GREEN + "Enter lore line to remove (must be an integer)")); } p.closeInventory(); } if(e.getSlot() == 42 && hotbarItems){ plugin.editorInputStrings.add(new String[]{p.getName(),panelName,"panel.hotbar.stationary"}); - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Enter Location (1 to 9)")); + p.sendMessage(plugin.papi(tag + ChatColor.GREEN + "Enter Location (1 to 9)")); p.closeInventory(); } } @@ -488,59 +488,59 @@ public class editorUtils implements Listener { } if(e.getSlot() == 1){ plugin.editorInputStrings.add(new String[]{p.getName(),panelName,"item." + itemSlot + ".name"}); - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Enter New Item Name")); + p.sendMessage(plugin.papi(tag + ChatColor.GREEN + "Enter New Item Name")); p.closeInventory(); } if(e.getSlot() == 3){ //adds abilities to add and remove lines if(e.getClick().isLeftClick()) { plugin.editorInputStrings.add(new String[]{p.getName(), panelName, "item." + itemSlot + ".commands.add"}); - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Enter New Item Command")); + p.sendMessage(plugin.papi(tag + ChatColor.GREEN + "Enter New Item Command")); }else{ plugin.editorInputStrings.add(new String[]{p.getName(), panelName, "item." + itemSlot + ".commands.remove"}); - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Enter command line to remove (must be an integer)")); + p.sendMessage(plugin.papi(tag + ChatColor.GREEN + "Enter command line to remove (must be an integer)")); } p.closeInventory(); } if(e.getSlot() == 5){ plugin.editorInputStrings.add(new String[]{p.getName(),panelName,"item." + itemSlot + ".enchanted"}); - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Enter New Item Enchantment")); + p.sendMessage(plugin.papi(tag + ChatColor.GREEN + "Enter New Item Enchantment")); p.closeInventory(); } if(e.getSlot() == 7){ plugin.editorInputStrings.add(new String[]{p.getName(),panelName,"item." + itemSlot + ".potion"}); - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Enter New Item Potion Effect")); + p.sendMessage(plugin.papi(tag + ChatColor.GREEN + "Enter New Item Potion Effect")); p.closeInventory(); } if(e.getSlot() == 19){ //adds abilities to add and remove lines if(e.getClick().isLeftClick()) { plugin.editorInputStrings.add(new String[]{p.getName(), panelName, "item." + itemSlot + ".lore.add"}); - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Enter New Item Lore")); + p.sendMessage(plugin.papi(tag + ChatColor.GREEN + "Enter New Item Lore")); }else{ plugin.editorInputStrings.add(new String[]{p.getName(), panelName, "item." + itemSlot + ".lore.remove"}); - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Enter lore line to remove (must be an integer)")); + p.sendMessage(plugin.papi(tag + ChatColor.GREEN + "Enter lore line to remove (must be an integer)")); } p.closeInventory(); } if(e.getSlot() == 21){ plugin.editorInputStrings.add(new String[]{p.getName(),panelName,"item." + itemSlot + ".stack"}); - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Enter New Item Stack (must be an integer)")); + p.sendMessage(plugin.papi(tag + ChatColor.GREEN + "Enter New Item Stack (must be an integer)")); p.closeInventory(); } if(e.getSlot() == 23){ plugin.editorInputStrings.add(new String[]{p.getName(),panelName,"item." + itemSlot + ".customdata"}); - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Enter New Custom Model Data")); + p.sendMessage(plugin.papi(tag + ChatColor.GREEN + "Enter New Custom Model Data")); p.closeInventory(); } if(e.getSlot() == 25){ plugin.editorInputStrings.add(new String[]{p.getName(),panelName,"item." + itemSlot + ".leatherarmor"}); - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Enter New Leather Armor Colour")); + p.sendMessage(plugin.papi(tag + ChatColor.GREEN + "Enter New Leather Armor Colour")); p.closeInventory(); } if(e.getSlot() == 35){ plugin.editorInputStrings.add(new String[]{p.getName(),panelName,"item." + itemSlot + ".head"}); - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Enter New Custom Material (eg. cps= self)")); + p.sendMessage(plugin.papi(tag + ChatColor.GREEN + "Enter New Custom Material (eg. cps= self)")); p.closeInventory(); } if(e.getSlot() == 27){ @@ -598,7 +598,7 @@ public class editorUtils implements Listener { } for (String s : Objects.requireNonNull(temp.getConfigurationSection("panels")).getKeys(false)) { key = s; - if (invView.getTitle().equals(ChatColor.GRAY + "Editing Panel: " + ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(temp.getString("panels." + key + ".title"))))) { + if (invView.getTitle().equals(ChatColor.GRAY + "Editing Panel: " + plugin.papi( Objects.requireNonNull(temp.getString("panels." + key + ".title"))))) { panelName = key; fileName = tempFile; file = temp; @@ -670,9 +670,9 @@ public class editorUtils implements Listener { try { file.save(new File(plugin.panelsf + File.separator + fileName)); tempEdit.save(new File(plugin.getDataFolder() + File.separator + "temp.yml")); - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Saved Changes!")); + p.sendMessage(plugin.papi(tag + ChatColor.GREEN + "Saved Changes!")); } catch (IOException s) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + "Could Not Save Changes!")); + p.sendMessage(plugin.papi(tag + ChatColor.RED + "Could Not Save Changes!")); plugin.debug(s); } plugin.reloadPanelFiles(); diff --git a/src/me/rockyhawk/commandPanels/openWithItem/utilsOpenWithItem.java b/src/me/rockyhawk/commandPanels/openWithItem/utilsOpenWithItem.java index a65a1ca..1349c50 100644 --- a/src/me/rockyhawk/commandPanels/openWithItem/utilsOpenWithItem.java +++ b/src/me/rockyhawk/commandPanels/openWithItem/utilsOpenWithItem.java @@ -1,10 +1,8 @@ package me.rockyhawk.commandPanels.openWithItem; import me.rockyhawk.commandPanels.commandpanels; -import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; -import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -46,14 +44,14 @@ public class utilsOpenWithItem implements Listener { if(tempFile.contains("panels." + tempName + ".open-with-item") && Objects.requireNonNull(e.getClickedInventory()).getType() == InventoryType.PLAYER) { try{ assert clicked != null; - if (clicked.getType() == new ItemStack(Objects.requireNonNull(plugin.makeItemFromConfig(Objects.requireNonNull(tempFile.getConfigurationSection("panels." + tempName + ".open-with-item")), p, false).getType()), 1).getType()) { - if ((ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(clicked.getItemMeta()).getDisplayName()).equals(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(tempFile.getString("panels." + tempName + ".open-with-item.name")))))) { + if (clicked.getType() == new ItemStack(Objects.requireNonNull(plugin.makeItemFromConfig(Objects.requireNonNull(tempFile.getConfigurationSection("panels." + tempName + ".open-with-item")), p, false, true).getType()), 1).getType()) { + if ((plugin.papi( Objects.requireNonNull(clicked.getItemMeta()).getDisplayName()).equals(plugin.papi( Objects.requireNonNull(tempFile.getString("panels." + tempName + ".open-with-item.name")))))) { //cancel the click item event if (tempFile.contains("panels." + tempName + ".open-with-item.stationary")) { if (e.getSlot() == Integer.parseInt(Objects.requireNonNull(tempFile.getString("panels." + tempName + ".open-with-item.stationary")))) { e.setCancelled(true); p.updateInventory(); - Bukkit.dispatchCommand(p, "commandpanels:commandpanel " + tempName); + plugin.openCommandPanel(p,p,tempName,tempFile,false); return; } } @@ -93,8 +91,8 @@ public class utilsOpenWithItem implements Listener { if(tempFile.contains("panels." + tempName + ".open-with-item")) { try{ assert clicked != null; - if (clicked.getType() == new ItemStack(Objects.requireNonNull(plugin.makeItemFromConfig(Objects.requireNonNull(tempFile.getConfigurationSection("panels." + tempName + ".open-with-item")), p, false).getType()), 1).getType()) { - if ((ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(clicked.getItemMeta()).getDisplayName()).equals(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(tempFile.getString("panels." + tempName + ".open-with-item.name")))))) { + if (clicked.getType() == new ItemStack(Objects.requireNonNull(plugin.makeItemFromConfig(Objects.requireNonNull(tempFile.getConfigurationSection("panels." + tempName + ".open-with-item")), p, false, true).getType()), 1).getType()) { + if ((plugin.papi( Objects.requireNonNull(clicked.getItemMeta()).getDisplayName()).equals(plugin.papi( Objects.requireNonNull(tempFile.getString("panels." + tempName + ".open-with-item.name")))))) { //cancel the click item event if (tempFile.contains("panels." + tempName + ".open-with-item.stationary")) { if (p.getInventory().getHeldItemSlot() != Integer.parseInt(Objects.requireNonNull(tempFile.getString("panels." + tempName + ".open-with-item.stationary")))) { @@ -103,7 +101,7 @@ public class utilsOpenWithItem implements Listener { } e.setCancelled(true); p.updateInventory(); - Bukkit.dispatchCommand(p, "commandpanels:commandpanel " + tempName); + plugin.openCommandPanel(p,p,tempName,tempFile,false); return; } } @@ -137,7 +135,6 @@ public class utilsOpenWithItem implements Listener { }catch(Exception b){ return; } - YamlConfiguration cf; //this is the file to use for any panel.* requests String tpanels; //tpanels is the temp to check through the files for(String fileName : plugin.panelFiles) { //will loop through all the files in folder YamlConfiguration temp = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + fileName)); @@ -156,7 +153,7 @@ public class utilsOpenWithItem implements Listener { } } if (p.hasPermission("commandpanel.panel." + temp.getString("panels." + key + ".perm")) && temp.contains("panels." + key + ".open-with-item")) { - ItemStack s = plugin.makeItemFromConfig(Objects.requireNonNull(temp.getConfigurationSection("panels." + key + ".open-with-item")), p, false); + ItemStack s = plugin.makeItemFromConfig(Objects.requireNonNull(temp.getConfigurationSection("panels." + key + ".open-with-item")), p, false, true); if(temp.contains("panels." + key + ".open-with-item.stationary")) { if (0 <= Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary"))) && 8 >= Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary")))) { p.getInventory().setItem(Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary"))), s); @@ -199,7 +196,7 @@ public class utilsOpenWithItem implements Listener { } } if (p.hasPermission("commandpanel.panel." + temp.getString("panels." + key + ".perm")) && temp.contains("panels." + key + ".open-with-item")) { - ItemStack s = plugin.makeItemFromConfig(Objects.requireNonNull(temp.getConfigurationSection("panels." + key + ".open-with-item")), p, false); + ItemStack s = plugin.makeItemFromConfig(Objects.requireNonNull(temp.getConfigurationSection("panels." + key + ".open-with-item")), p, false, true); if(temp.contains("panels." + key + ".open-with-item.stationary") && 0 <= Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary"))) && 8 >= Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary")))){ p.getInventory().setItem(Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary"))), s); } @@ -234,7 +231,7 @@ public class utilsOpenWithItem implements Listener { key = (String) var10.next(); if (p.hasPermission("commandpanel.panel." + temp.getString("panels." + key + ".perm")) && temp.contains("panels." + key + ".open-with-item")) { if(temp.contains("panels." + key + ".open-with-item.stationary")){ - ItemStack s = plugin.makeItemFromConfig(Objects.requireNonNull(temp.getConfigurationSection("panels." + key + ".open-with-item")), p, false); + ItemStack s = plugin.makeItemFromConfig(Objects.requireNonNull(temp.getConfigurationSection("panels." + key + ".open-with-item")), p, false, true); e.getDrops().remove(s); } } @@ -262,7 +259,7 @@ public class utilsOpenWithItem implements Listener { String key; tpanels = ""; if(!plugin.checkPanels(temp)){ - p.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.papi(p, plugin.config.getString("config.format.error") + ": Missing required component in panel!"))); + p.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + ": Missing required component in panel!")); return; } for (Iterator var10 = Objects.requireNonNull(temp.getConfigurationSection("panels")).getKeys(false).iterator(); var10.hasNext(); tpanels = tpanels + key + " ") { @@ -275,7 +272,7 @@ public class utilsOpenWithItem implements Listener { continue; } } - ItemStack s = plugin.makeItemFromConfig(Objects.requireNonNull(temp.getConfigurationSection("panels." + key + ".open-with-item")), p, false); + ItemStack s = plugin.makeItemFromConfig(Objects.requireNonNull(temp.getConfigurationSection("panels." + key + ".open-with-item")), p, false, true); /*ItemStack s; try { s = new ItemStack(Objects.requireNonNull(Material.matchMaterial(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.material")))), 1); @@ -294,7 +291,7 @@ public class utilsOpenWithItem implements Listener { }catch(Exception n){ continue; } - plugin.setName(s, temp.getString("panels." + key + ".open-with-item.name"), temp.getList("panels." + key + ".open-with-item.lore"),p,true); + plugin.setName(s, temp.getString("panels." + key + ".open-with-item.name"), temp.getStringList("panels." + key + ".open-with-item.lore"),p,true, true); if(temp.contains("panels." + key + ".open-with-item.stationary") && 0 <= Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary"))) && 8 >= Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary")))){ try { if (Objects.requireNonNull(p.getInventory().getItem(Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary"))))).isSimilar(s)) { @@ -341,7 +338,7 @@ public class utilsOpenWithItem implements Listener { //try and catch loop to stop errors with the same material type but different name try { if (clicked.getType() == new ItemStack(Objects.requireNonNull(Material.matchMaterial(Objects.requireNonNull(temp.getString("panels." + ekey + ".open-with-item.material")))), 1).getType()) { - if ((ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(clicked.getItemMeta()).getDisplayName()).equals(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(temp.getString("panels." + ekey + ".open-with-item.name")))))) { + if ((plugin.papi( Objects.requireNonNull(clicked.getItemMeta()).getDisplayName()).equals(plugin.papi( Objects.requireNonNull(temp.getString("panels." + ekey + ".open-with-item.name")))))) { //cancel the click item event if(temp.contains("panels." + key + ".open-with-item.stationary")){ if(p.getInventory().getHeldItemSlot() == Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary")))){ @@ -393,7 +390,7 @@ public class utilsOpenWithItem implements Listener { //try and catch loop to stop errors with the same material type but different name try { if (clicked.getType() == new ItemStack(Objects.requireNonNull(Material.matchMaterial(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.material")))), 1).getType()) { - if ((ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(clicked.getItemMeta()).getDisplayName()).equals(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.name")))))) { + if ((plugin.papi( Objects.requireNonNull(clicked.getItemMeta()).getDisplayName()).equals(plugin.papi( Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.name")))))) { //cancel the click item event if(temp.contains("panels." + key + ".open-with-item.stationary")){ if(p.getInventory().getHeldItemSlot() == Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary")))){ @@ -444,7 +441,7 @@ public class utilsOpenWithItem implements Listener { //try and catch loop to stop errors with the same material type but different name try { if (clicked.getType() == new ItemStack(Objects.requireNonNull(Material.matchMaterial(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.material")))), 1).getType()) { - if ((ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(clicked.getItemMeta()).getDisplayName()).equals(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.name")))))) { + if ((plugin.papi( Objects.requireNonNull(clicked.getItemMeta()).getDisplayName()).equals(plugin.papi( Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.name")))))) { //cancel the click item event if (temp.contains("panels." + key + ".open-with-item.stationary")) { if (p.getInventory().getHeldItemSlot() == Integer.parseInt(Objects.requireNonNull(temp.getString("panels." + key + ".open-with-item.stationary")))) { diff --git a/src/me/rockyhawk/commandPanels/panelBlocks/commandpanelblocks.java b/src/me/rockyhawk/commandPanels/panelBlocks/commandpanelblocks.java index 40593cd..2d926f3 100644 --- a/src/me/rockyhawk/commandPanels/panelBlocks/commandpanelblocks.java +++ b/src/me/rockyhawk/commandPanels/panelBlocks/commandpanelblocks.java @@ -26,13 +26,13 @@ public class commandpanelblocks implements CommandExecutor { if(args.length == 2) { if (args[0].equalsIgnoreCase("add")) { if(!(sender instanceof Player)) { - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + "Please execute command as a Player!")); + sender.sendMessage(plugin.papi(tag + ChatColor.RED + "Please execute command as a Player!")); return true; } Player p = (Player)sender; if(p.hasPermission("commandpanel.block.add")){ if(Objects.requireNonNull(plugin.config.getString("config.panel-blocks")).equalsIgnoreCase("false")){ - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + "Panel blocks disabled in config!")); + sender.sendMessage(plugin.papi(tag + ChatColor.RED + "Panel blocks disabled in config!")); return true; } boolean foundPanel = false; @@ -43,12 +43,12 @@ public class commandpanelblocks implements CommandExecutor { } } if(!foundPanel){ - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.nopanel"))); + sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.nopanel"))); return true; } Block blockType = p.getTargetBlock(null, 5); if(blockType.getType() == Material.AIR){ - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + "Look at a block to add a panel!")); + sender.sendMessage(plugin.papi(tag + ChatColor.RED + "Look at a block to add a panel!")); return true; } Location blockLocation = blockType.getLocation(); @@ -58,16 +58,16 @@ public class commandpanelblocks implements CommandExecutor { plugin.blockConfig.save(new File(plugin.getDataFolder() + File.separator + "blocks.yml")); } catch (IOException e) { plugin.debug(e); - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + "Could not save to file!")); + sender.sendMessage(plugin.papi(tag + ChatColor.RED + "Could not save to file!")); return true; } //make the material name look okay String materialNameFormatted = blockType.getType().toString().substring(0, 1).toUpperCase() + blockType.getType().toString().substring(1).toLowerCase(); materialNameFormatted = materialNameFormatted.replaceAll("_"," "); - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.WHITE + args[1] + ChatColor.GREEN + " will now open when right clicking " + ChatColor.WHITE + materialNameFormatted)); + sender.sendMessage(plugin.papi(tag + ChatColor.WHITE + args[1] + ChatColor.GREEN + " will now open when right clicking " + ChatColor.WHITE + materialNameFormatted)); return true; }else{ - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.perms"))); + sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.perms"))); return true; } } @@ -75,13 +75,13 @@ public class commandpanelblocks implements CommandExecutor { if(args.length == 1){ if (args[0].equalsIgnoreCase("remove")) { if(!(sender instanceof Player)) { - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + "Please execute command as a Player!")); + sender.sendMessage(plugin.papi(tag + ChatColor.RED + "Please execute command as a Player!")); return true; } Player p = (Player)sender; if(p.hasPermission("commandpanel.block.remove")){ if(Objects.requireNonNull(plugin.config.getString("config.panel-blocks")).equalsIgnoreCase("false")){ - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + "Panel blocks disabled in config!")); + sender.sendMessage(plugin.papi(tag + ChatColor.RED + "Panel blocks disabled in config!")); return true; } Block blockType = p.getTargetBlock(null, 5); @@ -93,40 +93,40 @@ public class commandpanelblocks implements CommandExecutor { plugin.blockConfig.save(new File(plugin.getDataFolder() + File.separator + "blocks.yml")); } catch (IOException e) { plugin.debug(e); - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + "Could not save to file!")); + sender.sendMessage(plugin.papi(tag + ChatColor.RED + "Could not save to file!")); return true; } - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.GREEN + "Panel has been removed from block.")); + sender.sendMessage(plugin.papi(tag + ChatColor.GREEN + "Panel has been removed from block.")); }else{ - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.nopanel"))); + sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.nopanel"))); } return true; }else{ - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.perms"))); + sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.perms"))); return true; } } if (args[0].equalsIgnoreCase("list")) { if(sender.hasPermission("commandpanel.block.list")){ if(Objects.requireNonNull(plugin.config.getString("config.panel-blocks")).equalsIgnoreCase("false")){ - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + ChatColor.RED + "Panel blocks disabled in config!")); + sender.sendMessage(plugin.papi(tag + ChatColor.RED + "Panel blocks disabled in config!")); return true; } if(plugin.blockConfig.contains("blocks")){ if(Objects.requireNonNull(plugin.blockConfig.getConfigurationSection("blocks")).getKeys(false).size() == 0){ - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag) + ChatColor.RED + "No panel blocks found."); + sender.sendMessage(plugin.papi(tag) + ChatColor.RED + "No panel blocks found."); return true; } - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag) + ChatColor.DARK_AQUA + "Panel Block Locations:"); + sender.sendMessage(plugin.papi(tag) + ChatColor.DARK_AQUA + "Panel Block Locations:"); for (String location : Objects.requireNonNull(plugin.blockConfig.getConfigurationSection("blocks")).getKeys(false)) { sender.sendMessage(ChatColor.GREEN + location.replaceAll("_"," ") + ": " + ChatColor.WHITE + plugin.blockConfig.getString("blocks." + location + ".panel")); } }else{ - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag) + ChatColor.RED + "No panel blocks found."); + sender.sendMessage(plugin.papi(tag) + ChatColor.RED + "No panel blocks found."); } return true; }else{ - sender.sendMessage(ChatColor.translateAlternateColorCodes('&',tag + plugin.config.getString("config.format.perms"))); + sender.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.perms"))); return true; } } diff --git a/src/me/rockyhawk/commandPanels/panelBlocks/panelBlockOnClick.java b/src/me/rockyhawk/commandPanels/panelBlocks/panelBlockOnClick.java index 3ea9066..bb715b2 100644 --- a/src/me/rockyhawk/commandPanels/panelBlocks/panelBlockOnClick.java +++ b/src/me/rockyhawk/commandPanels/panelBlocks/panelBlockOnClick.java @@ -1,15 +1,16 @@ package me.rockyhawk.commandPanels.panelBlocks; import me.rockyhawk.commandPanels.commandpanels; -import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.block.Block; +import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; +import java.io.File; import java.util.Objects; public class panelBlockOnClick implements Listener { @@ -37,7 +38,15 @@ public class panelBlockOnClick implements Listener { Location tempLocation = new Location(plugin.getServer().getWorld(loc[0]),Double.parseDouble(loc[1]),Double.parseDouble(loc[2]),Double.parseDouble(loc[3])); if(tempLocation.equals(block.getLocation())){ e.setCancelled(true); - Bukkit.dispatchCommand(p, "commandpanels:commandpanel " + plugin.blockConfig.getString("blocks." + configLocation + ".panel")); + YamlConfiguration cf = null; + String panelName = ""; + for(String[] temp : plugin.panelNames){ + if(temp[0].equals(plugin.blockConfig.getString("blocks." + configLocation + ".panel"))){ + panelName = temp[0]; + cf = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + plugin.panelFiles.get(Integer.parseInt(temp[1])))); + } + } + plugin.openCommandPanel(p,p,panelName,cf,false); return; } } diff --git a/src/me/rockyhawk/commandPanels/premium/commandpanelUserInput.java b/src/me/rockyhawk/commandPanels/premium/commandpanelUserInput.java index adbe777..a156800 100644 --- a/src/me/rockyhawk/commandPanels/premium/commandpanelUserInput.java +++ b/src/me/rockyhawk/commandPanels/premium/commandpanelUserInput.java @@ -19,7 +19,7 @@ public class commandpanelUserInput implements Listener { if(plugin.userInputStrings.get(o)[0].equals(e.getPlayer().getName())){ if(e.getMessage().equalsIgnoreCase(plugin.config.getString("config.input-cancel"))){ e.setCancelled(true); - e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.config.getString("config.input-cancelled")))); + e.getPlayer().sendMessage(plugin.papi( Objects.requireNonNull(plugin.config.getString("config.input-cancelled")))); for(int i = 0; plugin.userInputStrings.size() > i; i++){ if(plugin.userInputStrings.get(i)[0].equals(e.getPlayer().getName())){ plugin.userInputStrings.remove(i); diff --git a/src/me/rockyhawk/commandPanels/premium/commandpanelrefresher.java b/src/me/rockyhawk/commandPanels/premium/commandpanelrefresher.java index 18636b0..56ba0f2 100644 --- a/src/me/rockyhawk/commandPanels/premium/commandpanelrefresher.java +++ b/src/me/rockyhawk/commandPanels/premium/commandpanelrefresher.java @@ -49,14 +49,14 @@ public class commandpanelrefresher implements Listener { YamlConfiguration temp = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + fileName)); if (!plugin.checkPanels(temp)) { assert p != null; - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + plugin.papi(p, plugin.config.getString("config.format.error") + ": File with no Panels found or Panel with syntax error Found!"))); + p.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + ": File with no Panels found or Panel with syntax error Found!")); return; } for (String s : Objects.requireNonNull(temp.getConfigurationSection("panels")).getKeys(false)) { key = s; - if (ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(temp.getString("panels." + key + ".title"))).equals(e.getView().getTitle())) { + if (plugin.papi( Objects.requireNonNull(temp.getString("panels." + key + ".title"))).equals(e.getView().getTitle())) { panel = key; - panelTitle = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(temp.getString("panels." + key + ".title"))); + panelTitle = plugin.papi( Objects.requireNonNull(temp.getString("panels." + key + ".title"))); cf = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + fileName)); foundPanel = true; break; diff --git a/src/me/rockyhawk/commandPanels/utils.java b/src/me/rockyhawk/commandPanels/utils.java index aeec938..7630a41 100644 --- a/src/me/rockyhawk/commandPanels/utils.java +++ b/src/me/rockyhawk/commandPanels/utils.java @@ -1,15 +1,10 @@ package me.rockyhawk.commandPanels; -import me.clip.placeholderapi.PlaceholderAPI; import org.bukkit.*; -import org.bukkit.block.*; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; -import org.bukkit.event.block.Action; -import org.bukkit.event.entity.PlayerDeathEvent; -import org.bukkit.event.inventory.InventoryAction; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryType; import org.bukkit.event.player.*; @@ -42,6 +37,10 @@ public class utils implements Listener { //if no panels are present return; } + if(clicked == null){ + //if itemstack is null + return; + } }catch(Exception b){ return; } @@ -52,7 +51,7 @@ public class utils implements Listener { String key; YamlConfiguration temp = YamlConfiguration.loadConfiguration(new File(plugin.panelsf + File.separator + filename)); if (!plugin.checkPanels(temp)) { - p.sendMessage(ChatColor.translateAlternateColorCodes('&', tag + plugin.papi(p, plugin.config.getString("config.format.error") + ": Syntax error Found or Missing certain element!"))); + p.sendMessage(plugin.papi(tag + plugin.config.getString("config.format.error") + ": Syntax error Found or Missing certain element!")); return; } for (String s : Objects.requireNonNull(temp.getConfigurationSection("panels")).getKeys(false)) { @@ -89,76 +88,8 @@ public class utils implements Listener { if(!foundSlot){ return; } - String section = ""; - //this will do the noperm without any numbers - //loop through possible noperm/hasperm 1,2,3,etc - if (cf.contains("panels." + panel + ".item." + e.getSlot() + ".hasvalue")) { - //loop through possible hasvalue 1,2,3,etc - for (int count = 0; Objects.requireNonNull(cf.getConfigurationSection("panels." + panel + ".item." + e.getSlot())).getKeys(false).size() > count; count++) { - if (cf.contains("panels." + panel + ".item." + e.getSlot() + ".hasvalue" + count)) { - boolean outputValue = true; - //outputValue will default to true - if (cf.contains("panels." + panel + ".item." + e.getSlot() + ".hasvalue" + count + ".output")) { - //if output is true, and values match it will be this item, vice versa - outputValue = cf.getBoolean("panels." + panel + ".item." + e.getSlot() + ".hasvalue" + count + ".output"); - } - String value = cf.getString("panels." + panel + ".item." + e.getSlot() + ".hasvalue" + count + ".value"); - String compare = ChatColor.stripColor(plugin.papi(p,plugin.setCpPlaceholders(p,cf.getString("panels." + panel + ".item." + e.getSlot() + ".hasvalue" + count + ".compare")))); - if (compare.equals(value) == outputValue) { - //onOpen being 3 means it is the editor panel.. hasvalue items cannot be included to avoid item breaking - section = ".hasvalue" + count; - break; - } - } - } - //this will do the hasvalue without any numbers - boolean outputValue = true; - //outputValue will default to true - if (cf.contains("panels." + panel + ".item." + e.getSlot() + ".hasvalue.output")) { - //if output is true, and values match it will be this item, vice versa - outputValue = cf.getBoolean("panels." + panel + ".item." + e.getSlot() + ".hasvalue.output"); - } - String value = cf.getString("panels." + panel + ".item." + e.getSlot() + ".hasvalue.value"); - String compare = ChatColor.stripColor(plugin.papi(p,plugin.setCpPlaceholders(p,cf.getString("panels." + panel + ".item." + e.getSlot() + ".hasvalue.compare")))); - if (compare.equals(value) == outputValue) { - //onOpen being 3 means it is the editor panel.. hasvalue items cannot be included to avoid item breaking - section = ".hasvalue"; - } - } - if (cf.contains("panels." + panel + ".item." + e.getSlot() + ".hasperm") && cf.contains("panels." + panel + ".item." + e.getSlot() + ".hasperm.perm")) { - for(int count = 0; Objects.requireNonNull(cf.getConfigurationSection("panels." + panel + ".item." + e.getSlot())).getKeys(false).size() > count; count++){ - if (cf.contains("panels." + panel + ".item." + e.getSlot() + ".hasperm" + count) && cf.contains("panels." + panel + ".item." + e.getSlot() + ".hasperm" + count + ".perm")) { - boolean outputValue = true; - //outputValue will default to true - if (cf.contains("panels." + panel + ".item." + e.getSlot() + ".hasperm" + count + ".output")) { - //if output is true, and values match it will be this item, vice versa - outputValue = cf.getBoolean("panels." + panel + ".item." + e.getSlot() + ".hasperm" + count + ".output"); - } - if (p.hasPermission(Objects.requireNonNull(cf.getString("panels." + panel + ".item." + e.getSlot() + ".hasperm" + count + ".perm"))) == outputValue) { - if (cf.contains("panels." + panel + ".item." + e.getSlot() + ".hasperm" + count + ".commands") && !(clicked == null)) { - section = ".hasperm" + count; - break; - } else if (clicked != null) { - return; - } - } - } - } - //this will do hasperm with no numbers - boolean outputValue = true; - //outputValue will default to true - if (cf.contains("panels." + panel + ".item." + e.getSlot() + ".hasperm" + ".output")) { - //if output is true, and values match it will be this item, vice versa - outputValue = cf.getBoolean("panels." + panel + ".item." + e.getSlot() + ".hasperm" + ".output"); - } - if (p.hasPermission(Objects.requireNonNull(cf.getString("panels." + panel + ".item." + e.getSlot() + ".hasperm.perm"))) == outputValue) { - if (cf.contains("panels." + panel + ".item." + e.getSlot() + ".hasperm.commands") && !(clicked == null)) { - section = ".hasperm"; - } else if (clicked != null) { - return; - } - } - } + //loop through possible hasvalue/hasperm 1,2,3,etc + String section = plugin.hasSection(panel, cf, e.getSlot(),p); //this will remove any pending user inputs, if there is already something there from a previous item for(int o = 0; plugin.userInputStrings.size() > o; o++){ if(plugin.userInputStrings.get(o)[0].equals(p.getName())){ @@ -167,7 +98,7 @@ public class utils implements Listener { } } if(cf.contains("panels." + panel + ".item." + e.getSlot() + section + ".commands")) { - List commands = (List) cf.getList("panels." + panel + ".item." + e.getSlot() + section + ".commands"); + List commands = cf.getStringList("panels." + panel + ".item." + e.getSlot() + section + ".commands"); assert commands != null; if (commands.size() != 0) { //this will replace a sequence tag command with the commands from the sequence @@ -175,7 +106,7 @@ public class utils implements Listener { for (int i = 0; commands.size() - 1 >= i; i++) { if(commands.get(i).startsWith("sequence=")){ String locationOfSequence = commands.get(i).split("\\s")[1]; - List commandsSequence = (List) cf.getList(locationOfSequence); + List commandsSequence = cf.getStringList(locationOfSequence); commandsAfterSequence.remove(i); assert commandsSequence != null; commandsAfterSequence.addAll(i,commandsSequence);