diff --git a/pom.xml b/pom.xml index b9116a2..2ab77cd 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ pk.ajneb97 PlayerKits2 - 1.20.1 + 1.20.2 21 diff --git a/src/main/java/pk/ajneb97/libs/actionbar/ActionBarAPI.java b/src/main/java/pk/ajneb97/libs/actionbar/ActionBarAPI.java index 871615c..4c0a3f0 100644 --- a/src/main/java/pk/ajneb97/libs/actionbar/ActionBarAPI.java +++ b/src/main/java/pk/ajneb97/libs/actionbar/ActionBarAPI.java @@ -1,6 +1,5 @@ package pk.ajneb97.libs.actionbar; -import net.kyori.adventure.text.minimessage.MiniMessage; import net.md_5.bungee.api.ChatMessageType; import net.md_5.bungee.api.chat.TextComponent; import org.bukkit.Bukkit; @@ -9,6 +8,7 @@ import org.bukkit.scheduler.BukkitRunnable; import pk.ajneb97.PlayerKits2; import pk.ajneb97.api.PlayerKitsAPI; import pk.ajneb97.managers.MessagesManager; +import pk.ajneb97.utils.MiniMessageUtils; import pk.ajneb97.utils.OtherUtils; import java.lang.reflect.Field; @@ -21,7 +21,7 @@ public class ActionBarAPI public static void sendActionBar(Player player, String message) { if(OtherUtils.isNew()) { if(PlayerKitsAPI.getPlugin().getConfigsManager().getMainConfigManager().isUseMiniMessage()){ - player.sendActionBar(MiniMessage.miniMessage().deserialize(message)); + MiniMessageUtils.actionbar(player,message); }else{ player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(MessagesManager.getLegacyColoredMessage(message))); } diff --git a/src/main/java/pk/ajneb97/libs/titles/TitleAPI.java b/src/main/java/pk/ajneb97/libs/titles/TitleAPI.java index 3df89c5..54eebb2 100644 --- a/src/main/java/pk/ajneb97/libs/titles/TitleAPI.java +++ b/src/main/java/pk/ajneb97/libs/titles/TitleAPI.java @@ -1,13 +1,12 @@ package pk.ajneb97.libs.titles; -import net.kyori.adventure.text.minimessage.MiniMessage; -import net.kyori.adventure.title.Title; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.entity.Player; import org.bukkit.event.Listener; import pk.ajneb97.api.PlayerKitsAPI; import pk.ajneb97.managers.MessagesManager; +import pk.ajneb97.utils.MiniMessageUtils; import pk.ajneb97.utils.OtherUtils; import java.lang.reflect.Constructor; @@ -45,9 +44,7 @@ public class TitleAPI implements Listener { } if(PlayerKitsAPI.getPlugin().getConfigsManager().getMainConfigManager().isUseMiniMessage()){ - player.showTitle(Title.title( - MiniMessage.miniMessage().deserialize(title),MiniMessage.miniMessage().deserialize(subtitle) - )); + MiniMessageUtils.title(player,title,subtitle); }else{ player.sendTitle(MessagesManager.getLegacyColoredMessage(title), MessagesManager.getLegacyColoredMessage(subtitle), fadeIn, stay, fadeOut); } diff --git a/src/main/java/pk/ajneb97/managers/InventoryManager.java b/src/main/java/pk/ajneb97/managers/InventoryManager.java index 8932849..77799d7 100644 --- a/src/main/java/pk/ajneb97/managers/InventoryManager.java +++ b/src/main/java/pk/ajneb97/managers/InventoryManager.java @@ -1,11 +1,6 @@ package pk.ajneb97.managers; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.format.TextDecoration; -import net.kyori.adventure.text.minimessage.MiniMessage; import org.bukkit.Bukkit; -import org.bukkit.Material; -import org.bukkit.command.ConsoleCommandSender; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; @@ -24,10 +19,7 @@ import pk.ajneb97.model.inventory.InventoryPlayer; import pk.ajneb97.model.inventory.ItemKitInventory; 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 pk.ajneb97.utils.*; import java.util.ArrayList; import java.util.Arrays; @@ -97,7 +89,7 @@ public class InventoryManager { } Inventory inv; if(mainConfigManager.isUseMiniMessage()){ - inv = Bukkit.createInventory(null,kitInventory.getSlots(), MiniMessage.miniMessage().deserialize(title)); + inv = MiniMessageUtils.createInventory(kitInventory.getSlots(),title); }else{ inv = Bukkit.createInventory(null,kitInventory.getSlots(), MessagesManager.getLegacyColoredMessage(title)); } @@ -364,7 +356,7 @@ public class InventoryManager { if(name != null){ name = OtherUtils.replaceGlobalVariables(name,player,plugin); if(useMiniMessage){ - meta.displayName(MiniMessage.miniMessage().deserialize(name).decoration(TextDecoration.ITALIC, false)); + MiniMessageUtils.setItemName(meta,name); }else{ meta.setDisplayName(MessagesManager.getLegacyColoredMessage(name)); } @@ -373,12 +365,7 @@ public class InventoryManager { if(lore != null) { List loreCopy = new ArrayList<>(lore); if(useMiniMessage){ - List loreComponent = new ArrayList<>(); - for(int i=0;i newLore = new ArrayList<>(); - PlainTextComponentSerializer plainSerializer = PlainTextComponentSerializer.plainText(); - for(Component line : meta.lore()){ - String plainText = plainSerializer.serialize(line); - if(plainText.contains("%kit_requirements_message%")){ - List message = replaceRequirementsMessageVariable(kitName,player); - for(String m : message){ - newLore.add(MiniMessage.miniMessage().deserialize(m).decoration(TextDecoration.ITALIC, false)); - } - }else{ - newLore.add(line); - } - } - meta.lore(newLore); + MiniMessageUtils.setRequirementsMessage(meta,kitName,player,this); }else{ List lore = new ArrayList<>(); for(String line : meta.getLore()){ diff --git a/src/main/java/pk/ajneb97/managers/KitItemManager.java b/src/main/java/pk/ajneb97/managers/KitItemManager.java index 6880e30..7d33be2 100644 --- a/src/main/java/pk/ajneb97/managers/KitItemManager.java +++ b/src/main/java/pk/ajneb97/managers/KitItemManager.java @@ -1,9 +1,5 @@ package pk.ajneb97.managers; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.TextReplacementConfig; -import net.kyori.adventure.text.format.TextDecoration; -import net.kyori.adventure.text.minimessage.MiniMessage; import org.bukkit.Color; import org.bukkit.NamespacedKey; import org.bukkit.configuration.file.FileConfiguration; @@ -20,6 +16,7 @@ import pk.ajneb97.model.Kit; import pk.ajneb97.model.internal.KitVariable; import pk.ajneb97.model.item.*; import pk.ajneb97.utils.ItemUtils; +import pk.ajneb97.utils.MiniMessageUtils; import pk.ajneb97.utils.OtherUtils; import pk.ajneb97.utils.ServerVersion; @@ -47,26 +44,32 @@ public class KitItemManager { ServerVersion serverVersion = PlayerKits2.serverVersion; boolean useMiniMessage = plugin.getConfigsManager().getMainConfigManager().isUseMiniMessage(); + boolean isPaper = plugin.getDependencyManager().isPaper(); if(item.hasItemMeta()) { ItemMeta meta = item.getItemMeta(); if(meta.hasDisplayName()) { if(useMiniMessage){ - kitItem.setName(MiniMessage.miniMessage().serialize(meta.displayName())); + MiniMessageUtils.setCommonItemName(kitItem,meta); }else{ - kitItem.setName(meta.getDisplayName().replace("§", "&")); + if(isPaper && serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_19_R1)){ + MiniMessageUtils.setCommonItemNameLegacy(kitItem,meta); + }else{ + kitItem.setName(meta.getDisplayName().replace("§", "&")); + } } - } if(meta.hasLore()) { List lore = new ArrayList<>(); if(useMiniMessage){ - for (Component line : meta.lore()) { - lore.add(MiniMessage.miniMessage().serialize(line)); - } + MiniMessageUtils.setCommonItemLore(lore,meta); }else{ - for(String l : meta.getLore()) { - lore.add(l.replace("§", "&")); + if(isPaper && serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_19_R1)){ + MiniMessageUtils.setCommonItemLoreLegacy(lore,meta); + }else{ + for(String l : meta.getLore()) { + lore.add(l.replace("§", "&")); + } } } kitItem.setLore(lore); @@ -230,7 +233,7 @@ public class KitItemManager { if(name != null){ name = OtherUtils.replaceGlobalVariables(name,player,plugin); if(useMiniMessage){ - meta.displayName(MiniMessage.miniMessage().deserialize(name).decoration(TextDecoration.ITALIC, false)); + MiniMessageUtils.setItemName(meta,name); }else{ meta.setDisplayName(MessagesManager.getLegacyColoredMessage(name)); } @@ -240,12 +243,7 @@ public class KitItemManager { if(lore != null) { List loreCopy = new ArrayList<>(lore); if(useMiniMessage){ - List loreComponent = new ArrayList<>(); - for(int i=0;i lore = meta.lore(); - List newLore = new ArrayList<>(); - for(Component c : lore){ - Component newComponent = c; - for(KitVariable variable : variables){ - newComponent = newComponent.replaceText(TextReplacementConfig.builder() - .matchLiteral(variable.getVariable()) - .replacement(MiniMessage.miniMessage().deserialize(variable.getValue())) - .build()); - } - newLore.add(newComponent); - } - meta.lore(newLore); + MiniMessageUtils.replaceVariablesItemLore(meta,variables); }else{ List lore = meta.getLore(); for(int i=0;i lore, ItemMeta meta){ + for (Component line : meta.lore()) { + lore.add(MiniMessage.miniMessage().serialize(line)); + } + } + + public static void setCommonItemNameLegacy(KitItem commonItem, ItemMeta meta){ + commonItem.setName(LegacyComponentSerializer.legacyAmpersand().serialize(meta.displayName())); + } + + public static void setCommonItemLoreLegacy(List lore, ItemMeta meta){ + for (Component line : meta.lore()) { + lore.add(LegacyComponentSerializer.legacyAmpersand().serialize(line)); + } + } + + public static void setItemName(ItemMeta meta,String name){ + meta.displayName(MiniMessage.miniMessage().deserialize(name).decoration(TextDecoration.ITALIC, false)); + } + + public static void setItemLore(ItemMeta meta, List lore, Player player, PlayerKits2 plugin){ + List loreComponent = new ArrayList<>(); + for(int i=0;i variables){ + Component name = meta.displayName(); + Component newName = name; + for(KitVariable variable : variables){ + newName = newName.replaceText(TextReplacementConfig.builder() + .matchLiteral(variable.getVariable()) + .replacement(MiniMessage.miniMessage().deserialize(variable.getValue())) + .build()); + } + meta.displayName(newName); + } + + public static void replaceVariablesItemLore(ItemMeta meta,ArrayList variables){ + List lore = meta.lore(); + List newLore = new ArrayList<>(); + for(Component c : lore){ + Component newComponent = c; + for(KitVariable variable : variables){ + newComponent = newComponent.replaceText(TextReplacementConfig.builder() + .matchLiteral(variable.getVariable()) + .replacement(MiniMessage.miniMessage().deserialize(variable.getValue())) + .build()); + } + newLore.add(newComponent); + } + meta.lore(newLore); + } + + public static void setRequirementsMessage(ItemMeta meta, String kitName, Player player, InventoryRequirementsManager inventoryRequirementsManager){ + List newLore = new ArrayList<>(); + PlainTextComponentSerializer plainSerializer = PlainTextComponentSerializer.plainText(); + for(Component line : meta.lore()){ + String plainText = plainSerializer.serialize(line); + if(plainText.contains("%kit_requirements_message%")){ + List message = inventoryRequirementsManager.replaceRequirementsMessageVariable(kitName,player); + for(String m : message){ + newLore.add(MiniMessage.miniMessage().deserialize(m).decoration(TextDecoration.ITALIC, false)); + } + }else{ + newLore.add(line); + } + } + meta.lore(newLore); + } +}