diff --git a/pom.xml b/pom.xml index a100e52..eee19a1 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ pk.ajneb97 PlayerKits2 - 1.18.4 + 1.19.1 21 @@ -37,7 +37,7 @@ org.spigotmc spigot-api - 1.21.8-R0.1-SNAPSHOT + 1.21.9-R0.1-SNAPSHOT provided diff --git a/src/main/java/pk/ajneb97/PlayerKits2.java b/src/main/java/pk/ajneb97/PlayerKits2.java index 033ba4c..4d67d7e 100644 --- a/src/main/java/pk/ajneb97/PlayerKits2.java +++ b/src/main/java/pk/ajneb97/PlayerKits2.java @@ -143,11 +143,14 @@ public class PlayerKits2 extends JavaPlugin { case "1.21.8": serverVersion = ServerVersion.v1_21_R5; break; + case "1.21.9": + serverVersion = ServerVersion.v1_21_R6; + break; default: try{ serverVersion = ServerVersion.valueOf(packageName.replace("org.bukkit.craftbukkit.", "")); }catch(Exception e){ - serverVersion = ServerVersion.v1_21_R5; + serverVersion = ServerVersion.v1_21_R6; } } } diff --git a/src/main/java/pk/ajneb97/managers/InventoryManager.java b/src/main/java/pk/ajneb97/managers/InventoryManager.java index 7f021a6..190734b 100644 --- a/src/main/java/pk/ajneb97/managers/InventoryManager.java +++ b/src/main/java/pk/ajneb97/managers/InventoryManager.java @@ -8,6 +8,7 @@ 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.configs.MainConfigManager; import pk.ajneb97.model.Kit; @@ -22,6 +23,7 @@ import pk.ajneb97.model.inventory.KitInventory; import pk.ajneb97.model.item.KitItem; import pk.ajneb97.utils.ActionUtils; import pk.ajneb97.utils.ItemUtils; +import pk.ajneb97.utils.OtherUtils; import pk.ajneb97.utils.PlayerUtils; import java.util.ArrayList; @@ -103,7 +105,7 @@ public class InventoryManager { String type = itemInventory.getType(); if(type != null && type.startsWith("kit: ")){ setKit(type.replace("kit: ",""),inventoryPlayer.getPlayer(),inv,slot,kitsManager - ,playerDataManager,kitItemManager); + ,playerDataManager,kitItemManager,null); continue; } @@ -306,28 +308,41 @@ public class InventoryManager { } public void setKit(String kitName, Player player, Inventory inv, int slot, KitsManager kitsManager, PlayerDataManager playerDataManager - ,KitItemManager kitItemManager){ + ,KitItemManager kitItemManager,ItemStack currentItem){ Kit kit = kitsManager.getKitByName(kitName); if(kit == null){ return; } + // Check status before + String currentStatus = "default"; + if(currentItem != null){ + currentStatus = ItemUtils.getTagStringItem(plugin,currentItem,"playerkits_kit_status"); + if(currentStatus == null){ + currentStatus = "default"; + } + } + String newStatus = "default"; + ArrayList variablesToReplace = new ArrayList<>(); variablesToReplace.add(new KitVariable("%kit_name%",kit.getName())); KitItem kitItem = null; if(!kit.playerHasPermission(player)){ kitItem = kit.getDisplayItemNoPermission(); + newStatus = "no_permission"; }else{ //One time if(kit.isOneTime() && !PlayerUtils.isPlayerKitsAdmin(player) && playerDataManager.isKitOneTime(player,kit.getName())){ kitItem = kit.getDisplayItemOneTime(); + newStatus = "one_time"; } //One time requirements if(kit.getRequirements() != null && kit.getRequirements().isOneTimeRequirements() && playerDataManager.isKitBought(player,kit.getName())){ kitItem = kit.getDisplayItemOneTimeRequirements(); + newStatus = "one_time_requirements"; } //Cooldown @@ -337,19 +352,44 @@ public class InventoryManager { if(!timeStringMillisDif.isEmpty()) { kitItem = kit.getDisplayItemCooldown(); variablesToReplace.add(new KitVariable("%time%",timeStringMillisDif)); + newStatus = "cooldown"; } } } if(kitItem == null){ kitItem = kit.getDisplayItemDefault(); + newStatus = "default"; } - ItemStack item = kitItemManager.createItemFromKitItem(kitItem,player,kit); - kitItemManager.replaceVariables(item,variablesToReplace); + if(newStatus.equals(currentStatus) && currentItem != null){ + // Name and Lore update + ItemMeta meta = currentItem.getItemMeta(); - item = ItemUtils.setTagStringItem(plugin,item, "playerkits_kit", kitName); + String name = kitItem.getName(); + if(name != null){ + name = OtherUtils.replaceGlobalVariables(name,player,plugin); + meta.setDisplayName(MessagesManager.getColoredMessage(name)); + } + List lore = kitItem.getLore(); + if(lore != null) { + List loreCopy = new ArrayList<>(lore); + for(int i=0;i= version2.ordinal();