diff --git a/src/main/java/pk/ajneb97/configs/KitsConfigManager.java b/src/main/java/pk/ajneb97/configs/KitsConfigManager.java index 6f43b46..38a794b 100644 --- a/src/main/java/pk/ajneb97/configs/KitsConfigManager.java +++ b/src/main/java/pk/ajneb97/configs/KitsConfigManager.java @@ -147,6 +147,7 @@ public class KitsConfigManager { config.set("clear_inventory",kit.isClearInventory()); config.set("custom_permission",kit.getCustomPermission()); config.set("save_original_items",kit.isSaveOriginalItems()); + config.set("allow_placeholders_on_original_items",kit.isAllowPlaceholdersOnOriginalItems()); KitItemManager kitItemManager = plugin.getKitItemManager(); int currentPos = 1; @@ -237,6 +238,7 @@ public class KitsConfigManager { boolean oneTime = config.contains(mainPath+"one_time") ? config.getBoolean(mainPath+"one_time") : false; boolean clearInventory = config.contains(mainPath+"clear_inventory") ? config.getBoolean(mainPath+"clear_inventory") : false; boolean saveOriginalItems = config.contains(mainPath+"save_original_items") ? config.getBoolean(mainPath+"save_original_items") : false; + boolean allowPlaceholdersOnOriginalItems = config.contains(mainPath+"allow_placeholders_on_original_items") ? config.getBoolean(mainPath+"allow_placeholders_on_original_items") : false; ArrayList items = new ArrayList<>(); if(config.contains(mainPath+"items")){ @@ -287,6 +289,7 @@ public class KitsConfigManager { kit.setDisplayItemOneTimeRequirements(displayItemOneTimeRequirements); kit.setRequirements(kitRequirements); kit.setSaveOriginalItems(saveOriginalItems); + kit.setAllowPlaceholdersOnOriginalItems(allowPlaceholdersOnOriginalItems); return kit; } diff --git a/src/main/java/pk/ajneb97/managers/InventoryManager.java b/src/main/java/pk/ajneb97/managers/InventoryManager.java index 020da43..7f021a6 100644 --- a/src/main/java/pk/ajneb97/managers/InventoryManager.java +++ b/src/main/java/pk/ajneb97/managers/InventoryManager.java @@ -107,7 +107,7 @@ public class InventoryManager { continue; } - ItemStack item = kitItemManager.createItemFromKitItem(itemInventory.getItem(),inventoryPlayer.getPlayer()); + ItemStack item = kitItemManager.createItemFromKitItem(itemInventory.getItem(),inventoryPlayer.getPlayer(),null); if(inventoryPlayer.getInventoryName().equals("buy_requirements_inventory")){ inventoryRequirementsManager.configureRequirementsItem(item,inventoryPlayer.getKitName(),inventoryPlayer.getPlayer()); @@ -173,7 +173,7 @@ public class InventoryManager { int slot = 0; for(KitItem kitItem : allItems){ - ItemStack item = kitItemManager.createItemFromKitItem(kitItem,inventoryPlayer.getPlayer()); + ItemStack item = kitItemManager.createItemFromKitItem(kitItem,inventoryPlayer.getPlayer(),kit); if(kitItem.getPreviewSlot() != -1){ inv.setItem(kitItem.getPreviewSlot(),item); }else{ @@ -344,7 +344,7 @@ public class InventoryManager { kitItem = kit.getDisplayItemDefault(); } - ItemStack item = kitItemManager.createItemFromKitItem(kitItem,player); + ItemStack item = kitItemManager.createItemFromKitItem(kitItem,player,kit); kitItemManager.replaceVariables(item,variablesToReplace); item = ItemUtils.setTagStringItem(plugin,item, "playerkits_kit", kitName); diff --git a/src/main/java/pk/ajneb97/managers/KitItemManager.java b/src/main/java/pk/ajneb97/managers/KitItemManager.java index 1174629..1af0f5e 100644 --- a/src/main/java/pk/ajneb97/managers/KitItemManager.java +++ b/src/main/java/pk/ajneb97/managers/KitItemManager.java @@ -13,6 +13,7 @@ import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.LeatherArmorMeta; import org.bukkit.inventory.meta.components.CustomModelDataComponent; import pk.ajneb97.PlayerKits2; +import pk.ajneb97.model.Kit; import pk.ajneb97.model.internal.KitVariable; import pk.ajneb97.model.item.*; import pk.ajneb97.utils.ItemUtils; @@ -177,21 +178,23 @@ public class KitItemManager { return kitItem; } - public ItemStack createItemFromKitItem(KitItem kitItem,Player player){ + public ItemStack createItemFromKitItem(KitItem kitItem, Player player, Kit kit){ if(kitItem.getOriginalItem() != null){ ItemStack item = kitItem.getOriginalItem().clone(); - // Placeholders on original item - ItemMeta meta = item.getItemMeta(); - if(meta.hasDisplayName()){ - String name = OtherUtils.replaceGlobalVariables(meta.getDisplayName(),player,plugin); - meta.setDisplayName(name); + if(kit.isAllowPlaceholdersOnOriginalItems()){ + // Placeholders on original item + ItemMeta meta = item.getItemMeta(); + if(meta.hasDisplayName()){ + String name = OtherUtils.replaceGlobalVariables(meta.getDisplayName(),player,plugin); + meta.setDisplayName(name); + } + if(meta.hasLore()){ + List lore = meta.getLore(); + lore.replaceAll(text -> OtherUtils.replaceGlobalVariables(text, player, plugin)); + meta.setLore(lore); + } + item.setItemMeta(meta); } - if(meta.hasLore()){ - List lore = meta.getLore(); - lore.replaceAll(text -> OtherUtils.replaceGlobalVariables(text, player, plugin)); - meta.setLore(lore); - } - item.setItemMeta(meta); return item; } @@ -334,7 +337,7 @@ public class KitItemManager { if(flags != null) { for(String flag : flags) { if (flag.equals("HIDE_ATTRIBUTES") && plugin.getDependencyManager().isPaper() && - serverVersion.serverVersionGreaterEqualThan(serverVersion, ServerVersion.v1_21_R1)) { + serverVersion.serverVersionGreaterEqualThan(serverVersion, ServerVersion.v1_20_R4)) { //Fix PAPER HIDE_ATTRIBUTES ItemUtils.addDummyAttribute(meta,plugin); } diff --git a/src/main/java/pk/ajneb97/managers/KitsManager.java b/src/main/java/pk/ajneb97/managers/KitsManager.java index a90e7ad..2ed552e 100644 --- a/src/main/java/pk/ajneb97/managers/KitsManager.java +++ b/src/main/java/pk/ajneb97/managers/KitsManager.java @@ -302,7 +302,7 @@ public class KitsManager { //Give kit items for(KitItem kitItem : items){ - ItemStack item = kitItemManager.createItemFromKitItem(kitItem,player); + ItemStack item = kitItemManager.createItemFromKitItem(kitItem,player,kit); if(itemHelmet != null && kitItem.equals(itemHelmet)){ playerInventory.setHelmet(item); diff --git a/src/main/java/pk/ajneb97/managers/edit/InventoryEditDisplayManager.java b/src/main/java/pk/ajneb97/managers/edit/InventoryEditDisplayManager.java index a9e7eea..6454e5b 100644 --- a/src/main/java/pk/ajneb97/managers/edit/InventoryEditDisplayManager.java +++ b/src/main/java/pk/ajneb97/managers/edit/InventoryEditDisplayManager.java @@ -97,7 +97,7 @@ public class InventoryEditDisplayManager { new InventoryItem(inv, 26, Material.EMERALD_BLOCK).name("&6&lSave Item").lore(lore).ready(); if(kitItem != null && kitItem.getId() != null){ - inv.setItem(13,plugin.getKitItemManager().createItemFromKitItem(kitItem, inventoryPlayer.getPlayer())); + inv.setItem(13,plugin.getKitItemManager().createItemFromKitItem(kitItem, inventoryPlayer.getPlayer(), kit)); } inventoryPlayer.getPlayer().openInventory(inv); diff --git a/src/main/java/pk/ajneb97/managers/edit/InventoryEditKitItemsManager.java b/src/main/java/pk/ajneb97/managers/edit/InventoryEditKitItemsManager.java index c851ead..c3e6654 100644 --- a/src/main/java/pk/ajneb97/managers/edit/InventoryEditKitItemsManager.java +++ b/src/main/java/pk/ajneb97/managers/edit/InventoryEditKitItemsManager.java @@ -70,7 +70,7 @@ public class InventoryEditKitItemsManager { KitItemManager kitItemManager = plugin.getKitItemManager(); int slot = 0; for(KitItem kitItem : items){ - ItemStack item = kitItemManager.createItemFromKitItem(kitItem, null); //Player null means variables will be showed + ItemStack item = kitItemManager.createItemFromKitItem(kitItem, null, kit); //Player null means variables will be showed int finalSlot = kitItem.getPreviewSlot() != -1 ? kitItem.getPreviewSlot() : slot; diff --git a/src/main/java/pk/ajneb97/managers/edit/InventoryEditPositionManager.java b/src/main/java/pk/ajneb97/managers/edit/InventoryEditPositionManager.java index 6f41c52..c19928e 100644 --- a/src/main/java/pk/ajneb97/managers/edit/InventoryEditPositionManager.java +++ b/src/main/java/pk/ajneb97/managers/edit/InventoryEditPositionManager.java @@ -51,7 +51,7 @@ public class InventoryEditPositionManager { if(kit == null){ continue; } - ItemStack item = kitItemManager.createItemFromKitItem(kit.getDisplayItemDefault(),null); + ItemStack item = kitItemManager.createItemFromKitItem(kit.getDisplayItemDefault(),null,kit); //Check if it is the same kit if(kitName.equals(inventoryPlayer.getKitName())){ ItemMeta meta = item.getItemMeta(); @@ -77,7 +77,7 @@ public class InventoryEditPositionManager { continue; } - ItemStack item = kitItemManager.createItemFromKitItem(itemInventory.getItem(),inventoryPlayer.getPlayer()); + ItemStack item = kitItemManager.createItemFromKitItem(itemInventory.getItem(),inventoryPlayer.getPlayer(),null); String openInventory = itemInventory.getOpenInventory(); if(openInventory != null) { item = ItemUtils.setTagStringItem(plugin,item, "playerkits_open_inventory", openInventory); diff --git a/src/main/java/pk/ajneb97/model/Kit.java b/src/main/java/pk/ajneb97/model/Kit.java index 7d1fa11..bad7bfe 100644 --- a/src/main/java/pk/ajneb97/model/Kit.java +++ b/src/main/java/pk/ajneb97/model/Kit.java @@ -17,6 +17,7 @@ public class Kit { private ArrayList claimActions; private ArrayList errorActions; private boolean saveOriginalItems; + private boolean allowPlaceholdersOnOriginalItems; private KitItem displayItemDefault; private KitItem displayItemNoPermission; @@ -172,6 +173,14 @@ public class Kit { this.clearInventory = clearInventory; } + public boolean isAllowPlaceholdersOnOriginalItems() { + return allowPlaceholdersOnOriginalItems; + } + + public void setAllowPlaceholdersOnOriginalItems(boolean allowPlaceholdersOnOriginalItems) { + this.allowPlaceholdersOnOriginalItems = allowPlaceholdersOnOriginalItems; + } + public boolean playerHasPermission(CommandSender player){ if(permissionRequired){ if(customPermission != null){ diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 75ae3a1..3ff9edd 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,5 +1,5 @@ main: pk.ajneb97.PlayerKits2 -version: 1.17.2 +version: 1.17.3 name: PlayerKits2 api-version: 1.13 softdepend: [Vault,PlaceholderAPI]