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();