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

View file

@ -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;
}
}
}

View file

@ -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<KitVariable> 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<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);
inv.setItem(slot,item);
kitItemManager.replaceVariables(currentItem,variablesToReplace);
}else{
// Full update
ItemStack item = kitItemManager.createItemFromKitItem(kitItem,player,kit);
kitItemManager.replaceVariables(item,variablesToReplace);
item = ItemUtils.setTagStringItem(plugin,item, "playerkits_kit", kitName);
item = ItemUtils.setTagStringItem(plugin,item, "playerkits_kit_status", newStatus);
inv.setItem(slot,item);
}
}

View file

@ -50,7 +50,7 @@ public class InventoryUpdateTaskManager {
String kitName = ItemUtils.getTagStringItem(plugin,item,"playerkits_kit");
if(kitName != null){
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;
if(serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_20_R2)){
UUID uuid = id != null ? UUID.fromString(id) : UUID.randomUUID();
PlayerProfile profile = Bukkit.createPlayerProfile(uuid);
PlayerProfile profile = Bukkit.createPlayerProfile(uuid,"playerkits");
PlayerTextures textures = profile.getTextures();
URL url;
try {

View file

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