This commit is contained in:
Ajneb97 2025-10-02 16:21:15 -03:00
parent fb4080d574
commit 4540a86bfc
6 changed files with 56 additions and 12 deletions

View file

@ -6,7 +6,7 @@
<groupId>pk.ajneb97</groupId> <groupId>pk.ajneb97</groupId>
<artifactId>PlayerKits2</artifactId> <artifactId>PlayerKits2</artifactId>
<version>1.18.4</version> <version>1.19.1</version>
<properties> <properties>
<maven.compiler.source>21</maven.compiler.source> <maven.compiler.source>21</maven.compiler.source>
@ -37,7 +37,7 @@
<dependency> <dependency>
<groupId>org.spigotmc</groupId> <groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId> <artifactId>spigot-api</artifactId>
<version>1.21.8-R0.1-SNAPSHOT</version> <version>1.21.9-R0.1-SNAPSHOT</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>

View file

@ -143,11 +143,14 @@ public class PlayerKits2 extends JavaPlugin {
case "1.21.8": case "1.21.8":
serverVersion = ServerVersion.v1_21_R5; serverVersion = ServerVersion.v1_21_R5;
break; break;
case "1.21.9":
serverVersion = ServerVersion.v1_21_R6;
break;
default: default:
try{ try{
serverVersion = ServerVersion.valueOf(packageName.replace("org.bukkit.craftbukkit.", "")); serverVersion = ServerVersion.valueOf(packageName.replace("org.bukkit.craftbukkit.", ""));
}catch(Exception e){ }catch(Exception e){
serverVersion = ServerVersion.v1_21_R5; serverVersion = ServerVersion.v1_21_R6;
} }
} }
} }

View file

@ -8,6 +8,7 @@ import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.ClickType;
import org.bukkit.inventory.Inventory; import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import pk.ajneb97.PlayerKits2; import pk.ajneb97.PlayerKits2;
import pk.ajneb97.configs.MainConfigManager; import pk.ajneb97.configs.MainConfigManager;
import pk.ajneb97.model.Kit; import pk.ajneb97.model.Kit;
@ -22,6 +23,7 @@ import pk.ajneb97.model.inventory.KitInventory;
import pk.ajneb97.model.item.KitItem; import pk.ajneb97.model.item.KitItem;
import pk.ajneb97.utils.ActionUtils; import pk.ajneb97.utils.ActionUtils;
import pk.ajneb97.utils.ItemUtils; import pk.ajneb97.utils.ItemUtils;
import pk.ajneb97.utils.OtherUtils;
import pk.ajneb97.utils.PlayerUtils; import pk.ajneb97.utils.PlayerUtils;
import java.util.ArrayList; import java.util.ArrayList;
@ -103,7 +105,7 @@ public class InventoryManager {
String type = itemInventory.getType(); String type = itemInventory.getType();
if(type != null && type.startsWith("kit: ")){ if(type != null && type.startsWith("kit: ")){
setKit(type.replace("kit: ",""),inventoryPlayer.getPlayer(),inv,slot,kitsManager setKit(type.replace("kit: ",""),inventoryPlayer.getPlayer(),inv,slot,kitsManager
,playerDataManager,kitItemManager); ,playerDataManager,kitItemManager,null);
continue; continue;
} }
@ -306,28 +308,41 @@ public class InventoryManager {
} }
public void setKit(String kitName, Player player, Inventory inv, int slot, KitsManager kitsManager, PlayerDataManager playerDataManager 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); Kit kit = kitsManager.getKitByName(kitName);
if(kit == null){ if(kit == null){
return; 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<KitVariable> variablesToReplace = new ArrayList<>(); ArrayList<KitVariable> variablesToReplace = new ArrayList<>();
variablesToReplace.add(new KitVariable("%kit_name%",kit.getName())); variablesToReplace.add(new KitVariable("%kit_name%",kit.getName()));
KitItem kitItem = null; KitItem kitItem = null;
if(!kit.playerHasPermission(player)){ if(!kit.playerHasPermission(player)){
kitItem = kit.getDisplayItemNoPermission(); kitItem = kit.getDisplayItemNoPermission();
newStatus = "no_permission";
}else{ }else{
//One time //One time
if(kit.isOneTime() && !PlayerUtils.isPlayerKitsAdmin(player) && playerDataManager.isKitOneTime(player,kit.getName())){ if(kit.isOneTime() && !PlayerUtils.isPlayerKitsAdmin(player) && playerDataManager.isKitOneTime(player,kit.getName())){
kitItem = kit.getDisplayItemOneTime(); kitItem = kit.getDisplayItemOneTime();
newStatus = "one_time";
} }
//One time requirements //One time requirements
if(kit.getRequirements() != null && kit.getRequirements().isOneTimeRequirements() if(kit.getRequirements() != null && kit.getRequirements().isOneTimeRequirements()
&& playerDataManager.isKitBought(player,kit.getName())){ && playerDataManager.isKitBought(player,kit.getName())){
kitItem = kit.getDisplayItemOneTimeRequirements(); kitItem = kit.getDisplayItemOneTimeRequirements();
newStatus = "one_time_requirements";
} }
//Cooldown //Cooldown
@ -337,20 +352,45 @@ public class InventoryManager {
if(!timeStringMillisDif.isEmpty()) { if(!timeStringMillisDif.isEmpty()) {
kitItem = kit.getDisplayItemCooldown(); kitItem = kit.getDisplayItemCooldown();
variablesToReplace.add(new KitVariable("%time%",timeStringMillisDif)); variablesToReplace.add(new KitVariable("%time%",timeStringMillisDif));
newStatus = "cooldown";
} }
} }
} }
if(kitItem == null){ if(kitItem == null){
kitItem = kit.getDisplayItemDefault(); kitItem = kit.getDisplayItemDefault();
newStatus = "default";
} }
if(newStatus.equals(currentStatus) && currentItem != null){
// Name and Lore update
ItemMeta meta = currentItem.getItemMeta();
String name = kitItem.getName();
if(name != null){
name = OtherUtils.replaceGlobalVariables(name,player,plugin);
meta.setDisplayName(MessagesManager.getColoredMessage(name));
}
List<String> lore = kitItem.getLore();
if(lore != null) {
List<String> loreCopy = new ArrayList<>(lore);
for(int i=0;i<loreCopy.size();i++) {
String line = OtherUtils.replaceGlobalVariables(loreCopy.get(i),player,plugin);
loreCopy.set(i, MessagesManager.getColoredMessage(line));
}
meta.setLore(loreCopy);
}
currentItem.setItemMeta(meta);
kitItemManager.replaceVariables(currentItem,variablesToReplace);
}else{
// Full update
ItemStack item = kitItemManager.createItemFromKitItem(kitItem,player,kit); ItemStack item = kitItemManager.createItemFromKitItem(kitItem,player,kit);
kitItemManager.replaceVariables(item,variablesToReplace); kitItemManager.replaceVariables(item,variablesToReplace);
item = ItemUtils.setTagStringItem(plugin,item, "playerkits_kit", kitName); item = ItemUtils.setTagStringItem(plugin,item, "playerkits_kit", kitName);
item = ItemUtils.setTagStringItem(plugin,item, "playerkits_kit_status", newStatus);
inv.setItem(slot,item); inv.setItem(slot,item);
} }
}

View file

@ -50,7 +50,7 @@ public class InventoryUpdateTaskManager {
String kitName = ItemUtils.getTagStringItem(plugin,item,"playerkits_kit"); String kitName = ItemUtils.getTagStringItem(plugin,item,"playerkits_kit");
if(kitName != null){ if(kitName != null){
inventoryManager.setKit(kitName,player.getPlayer(),inv,i,kitsManager, inventoryManager.setKit(kitName,player.getPlayer(),inv,i,kitsManager,
playerDataManager,kitItemManager); playerDataManager,kitItemManager,item);
} }
} }
} }

View file

@ -182,7 +182,7 @@ public class ItemUtils {
ServerVersion serverVersion = PlayerKits2.serverVersion; ServerVersion serverVersion = PlayerKits2.serverVersion;
if(serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_20_R2)){ if(serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_20_R2)){
UUID uuid = id != null ? UUID.fromString(id) : UUID.randomUUID(); UUID uuid = id != null ? UUID.fromString(id) : UUID.randomUUID();
PlayerProfile profile = Bukkit.createPlayerProfile(uuid); PlayerProfile profile = Bukkit.createPlayerProfile(uuid,"playerkits");
PlayerTextures textures = profile.getTextures(); PlayerTextures textures = profile.getTextures();
URL url; URL url;
try { try {

View file

@ -30,7 +30,8 @@ public enum ServerVersion {
v1_21_R2, v1_21_R2,
v1_21_R3, v1_21_R3,
v1_21_R4, v1_21_R4,
v1_21_R5; v1_21_R5,
v1_21_R6;
public boolean serverVersionGreaterEqualThan(ServerVersion version1,ServerVersion version2){ public boolean serverVersionGreaterEqualThan(ServerVersion version1,ServerVersion version2){
return version1.ordinal() >= version2.ordinal(); return version1.ordinal() >= version2.ordinal();