diff --git a/src/main/java/pk/ajneb97/managers/VerifyManager.java b/src/main/java/pk/ajneb97/managers/VerifyManager.java index 6746814..714c7e3 100644 --- a/src/main/java/pk/ajneb97/managers/VerifyManager.java +++ b/src/main/java/pk/ajneb97/managers/VerifyManager.java @@ -7,7 +7,9 @@ import pk.ajneb97.model.KitAction; import pk.ajneb97.model.inventory.InventoryPlayer; import pk.ajneb97.model.inventory.ItemKitInventory; import pk.ajneb97.model.inventory.KitInventory; +import pk.ajneb97.model.item.KitItem; import pk.ajneb97.model.verify.*; +import pk.ajneb97.utils.ItemUtils; import java.util.ArrayList; import java.util.List; @@ -75,6 +77,29 @@ public class VerifyManager { } verifyActions(kit.getClaimActions(),"claim",kitName); verifyActions(kit.getErrorActions(),"error",kitName); + + //Items + ArrayList allKitItems = new ArrayList(); + allKitItems.add(kit.getDisplayItemDefault()); + allKitItems.add(kit.getDisplayItemCooldown()); + allKitItems.add(kit.getDisplayItemNoPermission()); + allKitItems.add(kit.getDisplayItemOneTime()); + allKitItems.add(kit.getDisplayItemOneTimeRequirements()); + allKitItems.addAll(kit.getItems()); + for(KitAction kitAction : kit.getClaimActions()){ + allKitItems.add(kitAction.getDisplayItem()); + } + for(KitAction kitAction : kit.getErrorActions()){ + allKitItems.add(kitAction.getDisplayItem()); + } + for(KitItem kitItem : allKitItems){ + if(kitItem != null){ + if(!verifyItem(kitItem.getId())){ + errors.add(new PKInvalidItem(kit.getName()+".yml",null,true,kitItem.getId())); + criticalErrors = true; + } + } + } } public void verifyActions(ArrayList actions,String actionGroup,String kitName){ @@ -115,10 +140,28 @@ public class VerifyManager { criticalErrors = true; } } + + //Items + KitItem kitItem = item.getItem(); + if(kitItem != null){ + if(!verifyItem(kitItem.getId())){ + errors.add(new PKInvalidItem("inventory.yml",null,true,kitItem.getId())); + criticalErrors = true; + } + } } } public boolean isCriticalErrors() { return criticalErrors; } + + public boolean verifyItem(String material){ + try{ + ItemUtils.createItemFromID(material); + return true; + }catch(Exception e){ + return false; + } + } } diff --git a/src/main/java/pk/ajneb97/managers/edit/InventoryEditActionsEditManager.java b/src/main/java/pk/ajneb97/managers/edit/InventoryEditActionsEditManager.java new file mode 100644 index 0000000..c45eaa9 --- /dev/null +++ b/src/main/java/pk/ajneb97/managers/edit/InventoryEditActionsEditManager.java @@ -0,0 +1,174 @@ +package pk.ajneb97.managers.edit; + +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.ClickType; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; +import pk.ajneb97.PlayerKits2; +import pk.ajneb97.managers.MessagesManager; +import pk.ajneb97.model.Kit; +import pk.ajneb97.model.KitAction; +import pk.ajneb97.model.inventory.InventoryPlayer; +import pk.ajneb97.utils.InventoryItem; +import pk.ajneb97.utils.OtherUtils; + +import java.util.ArrayList; +import java.util.List; + +public class InventoryEditActionsEditManager { + + private PlayerKits2 plugin; + private InventoryEditActionsManager inventoryEditActionsManager; + + public InventoryEditActionsEditManager(PlayerKits2 plugin, InventoryEditActionsManager inventoryEditActionsManager) { + this.plugin = plugin; + this.inventoryEditActionsManager = inventoryEditActionsManager; + } + + public void openInventory(InventoryPlayer inventoryPlayer, String type, int actionSlot) { + inventoryPlayer.setInventoryName("edit_action_slot_" + type + "_" + actionSlot); + Inventory inv = Bukkit.createInventory(null, 27, MessagesManager.getColoredMessage("&9Editing Kit")); + + //Set Go Back + new InventoryItem(inv, 18, Material.ARROW).name("&eGo Back").ready(); + + Kit kit = plugin.getKitsManager().getKitByName(inventoryPlayer.getKitName()); + KitAction kitAction = inventoryEditActionsManager.getKitActionsFromType(kit, type).get(actionSlot); + + //Set Edit Action + List lore = new ArrayList<>(); + lore.add(MessagesManager.getColoredMessage("&7Click to change the action.")); + lore.add(""); + lore.add(MessagesManager.getColoredMessage("&7Current:")); + lore.add(MessagesManager.getColoredMessage("&f") + kitAction.getAction()); + ItemStack item = new ItemStack(Material.PAPER); + ItemMeta meta = item.getItemMeta(); + meta.setDisplayName(MessagesManager.getColoredMessage("&6&lEdit Action")); + meta.setLore(lore); + item.setItemMeta(meta); + inv.setItem(10, item); + + //Set Execute before giving items + lore = new ArrayList<>(); + lore.add("&7Click to enable whether the action should"); + lore.add("&7be executed before giving the kit items"); + lore.add("&7to the player."); + lore.add(""); + String executeBeforeGivingItems = "&cNO"; + if (kitAction.isExecuteBeforeItems()) { + executeBeforeGivingItems = "&aYES"; + } + lore.add("&7Current Status: " + executeBeforeGivingItems); + new InventoryItem(inv, 12, Material.BEACON).name("&eSet &6&lExecute Before Giving Items").lore(lore).ready(); + + //Set Count As Item + lore = new ArrayList<>(); + lore.add("&7Click to enable whether this action should"); + lore.add("&7count as an item, and therefore will be used"); + lore.add("&7to count empty slots on the player inventory"); + lore.add("&7when claiming the kit. Useful when you want"); + lore.add("&7to give items through a command"); + lore.add(""); + String countAsItem = "&cNO"; + if (kitAction.isCountAsItem()) { + countAsItem = "&aYES"; + } + lore.add("&7Current Status: " + countAsItem); + new InventoryItem(inv, 14, Material.LADDER).name("&eSet &6&lCount As Item").lore(lore).ready(); + + //Set Display Item + Material headMaterial = null; + if (OtherUtils.isLegacy()) { + headMaterial = Material.valueOf("SKULL_ITEM"); + } else { + headMaterial = Material.PLAYER_HEAD; + } + lore = new ArrayList(); + lore.add("&7Click to edit the display item for"); + lore.add("&7this action."); + lore.add(""); + lore.add("&7Present: " + (kitAction.getDisplayItem() != null ? "&aYES" : "&cNO")); + new InventoryItem(inv, 16, headMaterial) + .setSkull("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWNkZTUxNGFmYTE5NGQ1Y2JkMDQ3N2MwNWI3Y2IxODVmZjFkZmZkMGMyZmFkZmFlMWE1YmI4MDY0ODU2Yzg5MiJ9fX0=") + .name("&eSet &6&lDisplay Item").lore(lore).ready(); + + + inventoryPlayer.getPlayer().openInventory(inv); + inventoryEditActionsManager.getInventoryEditManager().getPlayers().add(inventoryPlayer); + } + + public void clickInventory(InventoryPlayer inventoryPlayer, ItemStack item, int slot, ClickType clickType){ + if(slot == 18){ + inventoryEditActionsManager.openInventory(inventoryPlayer,getType(inventoryPlayer)); + }else if(slot == 10){ + clickEditAction(inventoryPlayer); + }else if(slot == 12){ + alternateExecutionBeforeGivingItems(inventoryPlayer); + }else if(slot == 14){ + alternateCountAsItem(inventoryPlayer); + }else if(slot == 16) { + String type = getType(inventoryPlayer); + int actionSlot = getActionSlot(inventoryPlayer); + inventoryEditActionsManager.getInventoryEditManager().getInventoryEditDisplayManager() + .openInventory(inventoryPlayer,"action_"+type+"_"+actionSlot); + } + } + + public void alternateExecutionBeforeGivingItems(InventoryPlayer inventoryPlayer){ + Kit kit = plugin.getKitsManager().getKitByName(inventoryPlayer.getKitName()); + String type = getType(inventoryPlayer); + int slot = getActionSlot(inventoryPlayer); + KitAction kitAction = inventoryEditActionsManager.getKitActionsFromType(kit, type).get(slot); + kitAction.setExecuteBeforeItems(!kitAction.isExecuteBeforeItems()); + + openInventory(inventoryPlayer,type,slot); + + plugin.getConfigsManager().getKitsConfigManager().saveConfig(kit); + } + + public void alternateCountAsItem(InventoryPlayer inventoryPlayer){ + Kit kit = plugin.getKitsManager().getKitByName(inventoryPlayer.getKitName()); + String type = getType(inventoryPlayer); + int slot = getActionSlot(inventoryPlayer); + KitAction kitAction = inventoryEditActionsManager.getKitActionsFromType(kit, type).get(slot); + kitAction.setCountAsItem(!kitAction.isCountAsItem()); + + openInventory(inventoryPlayer,type,slot); + + plugin.getConfigsManager().getKitsConfigManager().saveConfig(kit); + } + + public void clickEditAction(InventoryPlayer inventoryPlayer){ + Player player = inventoryPlayer.getPlayer(); + player.sendMessage(MessagesManager.getColoredMessage(PlayerKits2.prefix+"&7Write the new action to set.")); + player.sendMessage(MessagesManager.getColoredMessage(PlayerKits2.prefix+"&fCheck all actions on the wiki: &bhttps://ajneb97.gitbook.io/playerkits-2/actions")); + + player.closeInventory(); + inventoryPlayer.setInventoryName("edit_chat_action_slot_" + getType(inventoryPlayer) + "_" + getActionSlot(inventoryPlayer)); + inventoryEditActionsManager.getInventoryEditManager().getPlayers().add(inventoryPlayer); + } + + public void editAction(InventoryPlayer inventoryPlayer,String message){ + Kit kit = plugin.getKitsManager().getKitByName(inventoryPlayer.getKitName()); + String[] sep = inventoryPlayer.getInventoryName().replace("edit_chat_action_slot_","").split("_"); + String type = sep[0]; + int slot = Integer.parseInt(sep[1]); + KitAction kitAction = inventoryEditActionsManager.getKitActionsFromType(kit, type).get(slot); + kitAction.setAction(message); + + inventoryEditActionsManager.getInventoryEditManager().removeInventoryPlayer(inventoryPlayer.getPlayer()); + openInventory(inventoryPlayer,type,slot); + plugin.getConfigsManager().getKitsConfigManager().saveConfig(kit); + } + + public String getType(InventoryPlayer inventoryPlayer){ + return inventoryPlayer.getInventoryName().replace("edit_action_slot_","").split("_")[0]; + } + + public int getActionSlot(InventoryPlayer inventoryPlayer){ + return Integer.parseInt(inventoryPlayer.getInventoryName().replace("edit_action_slot_","").split("_")[1]); + } +} diff --git a/src/main/java/pk/ajneb97/managers/edit/InventoryEditActionsManager.java b/src/main/java/pk/ajneb97/managers/edit/InventoryEditActionsManager.java index 94ae527..f5b449c 100644 --- a/src/main/java/pk/ajneb97/managers/edit/InventoryEditActionsManager.java +++ b/src/main/java/pk/ajneb97/managers/edit/InventoryEditActionsManager.java @@ -22,9 +22,11 @@ public class InventoryEditActionsManager { private PlayerKits2 plugin; private InventoryEditManager inventoryEditManager; + private InventoryEditActionsEditManager inventoryEditActionsEditManager; public InventoryEditActionsManager(PlayerKits2 plugin, InventoryEditManager inventoryEditManager){ this.plugin = plugin; this.inventoryEditManager = inventoryEditManager; + this.inventoryEditActionsEditManager = new InventoryEditActionsEditManager(plugin,this); } public void openInventory(InventoryPlayer inventoryPlayer,String type) { @@ -62,24 +64,23 @@ public class InventoryEditActionsManager { ArrayList actions = getKitActionsFromType(kit,type); int slot = 0; for(KitAction kitAction : actions){ - String executeBeforeItems = "&cNO"; - if (kitAction.isExecuteBeforeItems()) { - executeBeforeItems = "&aYES"; - } + String executeBeforeItems = kitAction.isExecuteBeforeItems() ? "&aYES" : "&cNO"; + String countAsItem = kitAction.isCountAsItem() ? "&aYES" : "&cNO"; + String displayItem = kitAction.getDisplayItem() != null ? "&aYES" : "&cNO"; lore = new ArrayList<>(); lore.add(MessagesManager.getColoredMessage("&f")+kitAction.getAction()); lore.add(""); lore.add(MessagesManager.getColoredMessage("&7Execute before giving kit items? "+executeBeforeItems)); + lore.add(MessagesManager.getColoredMessage("&7Count as item? "+countAsItem)); + lore.add(MessagesManager.getColoredMessage("&7Has display item? "+displayItem)); lore.add(""); lore.add(MessagesManager.getColoredMessage("&a&lLEFT CLICK &ato edit")); - lore.add(MessagesManager.getColoredMessage("&e&lSHIFT+LEFT CLICK &eto alternate execution")); - lore.add(MessagesManager.getColoredMessage(" &ebefore giving kit items")); lore.add(MessagesManager.getColoredMessage("&c&lRIGHT CLICK &cto remove")); ItemStack item = new ItemStack(Material.PAPER); ItemMeta meta = item.getItemMeta(); - meta.setDisplayName(MessagesManager.getColoredMessage("&7Command &e#"+(slot+1))); + meta.setDisplayName(MessagesManager.getColoredMessage("&7Action &e#"+(slot+1))); meta.setLore(lore); item.setItemMeta(meta); inv.setItem(slot,item); @@ -105,22 +106,11 @@ public class InventoryEditActionsManager { plugin.getConfigsManager().getKitsConfigManager().saveConfig(kit); } - public void alternateExecutionBeforeItems(InventoryPlayer inventoryPlayer,int slot){ - Kit kit = plugin.getKitsManager().getKitByName(inventoryPlayer.getKitName()); - String type = inventoryPlayer.getInventoryName().replace("edit_actions_",""); - ArrayList actions = getKitActionsFromType(kit,type); - KitAction kitAction = actions.get(slot); - kitAction.setExecuteBeforeItems(!kitAction.isExecuteBeforeItems()); - - openInventory(inventoryPlayer,type); - - plugin.getConfigsManager().getKitsConfigManager().saveConfig(kit); - } public void clickAddAction(InventoryPlayer inventoryPlayer){ Player player = inventoryPlayer.getPlayer(); player.sendMessage(MessagesManager.getColoredMessage(PlayerKits2.prefix+"&7Write the new action to add.")); - player.sendMessage(MessagesManager.getColoredMessage(PlayerKits2.prefix+"&fCheck all actions on the wiki: &bhttps://ajneb97.gitbook.io/playerkits-2/")); + player.sendMessage(MessagesManager.getColoredMessage(PlayerKits2.prefix+"&fCheck all actions on the wiki: &bhttps://ajneb97.gitbook.io/playerkits-2/actions")); player.closeInventory(); String type = inventoryPlayer.getInventoryName().replace("edit_actions_",""); @@ -139,40 +129,14 @@ public class InventoryEditActionsManager { plugin.getConfigsManager().getKitsConfigManager().saveConfig(kit); } - public void clickEditAction(InventoryPlayer inventoryPlayer,int slot){ - Player player = inventoryPlayer.getPlayer(); - player.sendMessage(MessagesManager.getColoredMessage(PlayerKits2.prefix+"&7Write the new action to add.")); - player.sendMessage(MessagesManager.getColoredMessage(PlayerKits2.prefix+"&fCheck all actions on the wiki: &bhttps://ajneb97.gitbook.io/playerkits-2/")); - - player.closeInventory(); - String type = inventoryPlayer.getInventoryName().replace("edit_actions_",""); - inventoryPlayer.setInventoryName("edit_chat_edit_action_"+type+":"+slot); - inventoryEditManager.getPlayers().add(inventoryPlayer); - } - - public void editAction(InventoryPlayer inventoryPlayer,String message){ - Kit kit = plugin.getKitsManager().getKitByName(inventoryPlayer.getKitName()); - String[] sep = inventoryPlayer.getInventoryName().replace("edit_chat_edit_action_","").split(":"); - String type = sep[0]; - int slot = Integer.parseInt(sep[1]); - ArrayList actions = getKitActionsFromType(kit,type); - actions.get(slot).setAction(message); - - inventoryEditManager.removeInventoryPlayer(inventoryPlayer.getPlayer()); - openInventory(inventoryPlayer,type); - plugin.getConfigsManager().getKitsConfigManager().saveConfig(kit); - } public void clickInventory(InventoryPlayer inventoryPlayer, ItemStack item, int slot, ClickType clickType){ if(slot == 45){ inventoryEditManager.openInventory(inventoryPlayer); }else if(slot >= 0 && slot <= 44 && item != null && !item.getType().equals(Material.AIR)){ if(clickType.isLeftClick()){ - if(clickType.isShiftClick()){ - alternateExecutionBeforeItems(inventoryPlayer,slot); - }else{ - clickEditAction(inventoryPlayer,slot); - } + String type = inventoryPlayer.getInventoryName().replace("edit_actions_",""); + inventoryEditActionsEditManager.openInventory(inventoryPlayer,type,slot); }else if(clickType.isRightClick()){ removeAction(inventoryPlayer,slot); } @@ -190,4 +154,12 @@ public class InventoryEditActionsManager { } return actions; } + + public InventoryEditManager getInventoryEditManager() { + return inventoryEditManager; + } + + public InventoryEditActionsEditManager getInventoryEditActionsEditManager() { + return inventoryEditActionsEditManager; + } } diff --git a/src/main/java/pk/ajneb97/managers/edit/InventoryEditDisplayManager.java b/src/main/java/pk/ajneb97/managers/edit/InventoryEditDisplayManager.java index 3d8c90a..ef334b5 100644 --- a/src/main/java/pk/ajneb97/managers/edit/InventoryEditDisplayManager.java +++ b/src/main/java/pk/ajneb97/managers/edit/InventoryEditDisplayManager.java @@ -9,6 +9,7 @@ import org.bukkit.inventory.ItemStack; import pk.ajneb97.PlayerKits2; import pk.ajneb97.managers.MessagesManager; import pk.ajneb97.model.Kit; +import pk.ajneb97.model.KitAction; import pk.ajneb97.model.inventory.InventoryPlayer; import pk.ajneb97.model.item.KitItem; import pk.ajneb97.utils.InventoryItem; @@ -77,7 +78,12 @@ public class InventoryEditDisplayManager { lore.add("&eSet &6&lCooldown Display Item"); }else if(type.equals("requirements")){ lore.add("&6&lOne Time Requirements Display Item"); - }else{ + }else if(type.startsWith("action")){ + String actionType = type.split("_")[1]; + int actionSlot = Integer.parseInt(type.split("_")[2]); + lore.add("&6&l"+actionType.toUpperCase()+" Action "+actionSlot+" Display Item"); + } + else{ lore.add("&6&lDefault Display Item"); } new InventoryItem(inv, 0, Material.COMPASS).name("&6&lInfo").lore(lore).ready(); @@ -117,6 +123,11 @@ public class InventoryEditDisplayManager { kit.setDisplayItemCooldown(kitItem); }else if(type.equals("requirements")){ kit.setDisplayItemOneTimeRequirements(kitItem); + }else if(type.startsWith("action")){ + String actionType = type.split("_")[1]; + int actionSlot = Integer.parseInt(type.split("_")[2]); + KitAction kitAction = getKitActionsFromType(kit,actionType).get(actionSlot); + kitAction.setDisplayItem(kitItem); }else{ kit.setDisplayItemDefault(kitItem); } @@ -134,7 +145,15 @@ public class InventoryEditDisplayManager { if(slot != 13){ event.setCancelled(true); if(slot == 18){ - inventoryEditManager.openInventory(inventoryPlayer); + if(inventoryPlayer.getInventoryName().startsWith("edit_display_action")){ + String type = inventoryPlayer.getInventoryName().replace("edit_display_action_",""); + String actionType = type.split("_")[0]; + int actionSlot = Integer.parseInt(type.split("_")[1]); + inventoryEditManager.getInventoryEditActionsManager().getInventoryEditActionsEditManager() + .openInventory(inventoryPlayer,actionType,actionSlot); + }else{ + inventoryEditManager.openInventory(inventoryPlayer); + } }else if(slot == 26){ saveKitItem(inventoryPlayer); inventoryPlayer.getPlayer().sendMessage(MessagesManager.getColoredMessage(PlayerKits2.prefix+"&aDisplay item saved.")); @@ -144,17 +163,34 @@ public class InventoryEditDisplayManager { } public KitItem getKitDisplayItemFromType(Kit kit, String type){ - KitItem kitItem = kit.getDisplayItemDefault(); - switch(type){ - case "permission": - return kit.getDisplayItemNoPermission(); - case "onetime": - return kit.getDisplayItemOneTime(); - case "cooldown": - return kit.getDisplayItemCooldown(); - case "requirements": - return kit.getDisplayItemOneTimeRequirements(); + if(type.startsWith("action")){ + String actionType = type.split("_")[1]; + int actionSlot = Integer.parseInt(type.split("_")[2]); + KitAction kitAction = getKitActionsFromType(kit,actionType).get(actionSlot); + return kitAction.getDisplayItem(); + }else{ + KitItem kitItem = kit.getDisplayItemDefault(); + switch(type){ + case "permission": + return kit.getDisplayItemNoPermission(); + case "onetime": + return kit.getDisplayItemOneTime(); + case "cooldown": + return kit.getDisplayItemCooldown(); + case "requirements": + return kit.getDisplayItemOneTimeRequirements(); + } + return kitItem; } - return kitItem; + } + + public ArrayList getKitActionsFromType(Kit kit,String type){ + ArrayList actions = null; + if(type.equals("claim")){ + actions = kit.getClaimActions(); + }else{ + actions = kit.getErrorActions(); + } + return actions; } } diff --git a/src/main/java/pk/ajneb97/managers/edit/InventoryEditManager.java b/src/main/java/pk/ajneb97/managers/edit/InventoryEditManager.java index 2e0654b..221e007 100644 --- a/src/main/java/pk/ajneb97/managers/edit/InventoryEditManager.java +++ b/src/main/java/pk/ajneb97/managers/edit/InventoryEditManager.java @@ -387,6 +387,8 @@ public class InventoryEditManager { } }else if(inventory.startsWith("edit_actions_")){ inventoryEditActionsManager.clickInventory(inventoryPlayer,item,slot,clickType); + }else if(inventory.startsWith("edit_action_slot_")){ + inventoryEditActionsManager.getInventoryEditActionsEditManager().clickInventory(inventoryPlayer,item,slot,clickType); }else if(inventory.equals("edit_requirements")){ inventoryEditRequirementsManager.clickInventory(inventoryPlayer,item,slot,clickType); } @@ -398,8 +400,8 @@ public class InventoryEditManager { setCooldown(inventoryPlayer,message); }else if(inventory.startsWith("edit_chat_add_action_")){ inventoryEditActionsManager.addAction(inventoryPlayer,message); - }else if(inventory.startsWith("edit_chat_edit_action_")){ - inventoryEditActionsManager.editAction(inventoryPlayer,message); + }else if(inventory.startsWith("edit_chat_action_slot_")){ + inventoryEditActionsManager.getInventoryEditActionsEditManager().editAction(inventoryPlayer,message); }else if(inventory.equals("edit_chat_price")){ inventoryEditRequirementsManager.setPrice(inventoryPlayer,message); } diff --git a/src/main/java/pk/ajneb97/model/verify/PKInvalidItem.java b/src/main/java/pk/ajneb97/model/verify/PKInvalidItem.java new file mode 100644 index 0000000..f67ea5f --- /dev/null +++ b/src/main/java/pk/ajneb97/model/verify/PKInvalidItem.java @@ -0,0 +1,30 @@ +package pk.ajneb97.model.verify; + +import org.bukkit.entity.Player; +import pk.ajneb97.utils.JSONMessage; + +import java.util.ArrayList; +import java.util.List; + +public class PKInvalidItem extends PKBaseError{ + + private String material; + + public PKInvalidItem(String file, String errorText, boolean critical, String material) { + super(file, errorText, critical); + this.material = material; + } + + @Override + public void sendMessage(Player player) { + List hover = new ArrayList(); + + JSONMessage jsonMessage = new JSONMessage(player,prefix+"&7Item material &c"+material+" &7on file &c"+file+" &7is not valid."); + hover.add("&eTHIS IS AN ERROR!"); + hover.add("&fThe material &c"+material+" &fdefined on"); + hover.add("&ffile &c"+file+" &fdoesn't exists for your"); + hover.add("&fminecraft version."); + + jsonMessage.hover(hover).send(); + } +} diff --git a/src/main/java/pk/ajneb97/versions/NMSManager.java b/src/main/java/pk/ajneb97/versions/NMSManager.java index 6d38655..9ce69fa 100644 --- a/src/main/java/pk/ajneb97/versions/NMSManager.java +++ b/src/main/java/pk/ajneb97/versions/NMSManager.java @@ -193,6 +193,9 @@ public class NMSManager { && !t.equals("StoredEnchantments") && !t.equals("CustomPotionColor") && !t.equals("CustomPotionEffects") && !t.equals("Fireworks") && !t.equals("Explosion")&& !t.equals("pages") && !t.equals("title") && !t.equals("author") && !t.equals("resolved") && !t.equals("generation") && !t.equals("Trim")) { + if(t.equals("BlockEntityTag") && !item.getType().name().contains("SHULKER")){ + continue; + } if((boolean)version.getMethodRef("hasKeyOfType").invoke(compound,t,1)) { //boolean nbtList.add(t+"|"+version.getMethodRef("getBoolean").invoke(compound,t)+"|boolean"); diff --git a/src/main/resources/kits/diamond.yml b/src/main/resources/kits/diamond.yml index c76fb55..1b9a35b 100644 --- a/src/main/resources/kits/diamond.yml +++ b/src/main/resources/kits/diamond.yml @@ -22,7 +22,7 @@ actions: 1: action: "console_command: bc &6%player% &ejust claimed a &aDIAMOND KIT&e!" display_item: - id: "BOOK" + id: BOOK name: "&4Announcement" lore: - "&7Claiming this kit will send an announcement" diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index b62fbb7..a483513 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,5 +1,5 @@ main: pk.ajneb97.PlayerKits2 -version: 1.5.1 +version: 1.6.1 name: PlayerKits2 api-version: 1.13 softdepend: [Vault,PlaceholderAPI]