This commit is contained in:
Ajneb97 2025-12-09 11:12:07 -03:00
parent 6e515f2ea7
commit a503fda405
10 changed files with 164 additions and 95 deletions

View file

@ -6,7 +6,7 @@
<groupId>pk.ajneb97</groupId> <groupId>pk.ajneb97</groupId>
<artifactId>PlayerKits2</artifactId> <artifactId>PlayerKits2</artifactId>
<version>1.20.1</version> <version>1.20.2</version>
<properties> <properties>
<maven.compiler.source>21</maven.compiler.source> <maven.compiler.source>21</maven.compiler.source>

View file

@ -1,6 +1,5 @@
package pk.ajneb97.libs.actionbar; 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.ChatMessageType;
import net.md_5.bungee.api.chat.TextComponent; import net.md_5.bungee.api.chat.TextComponent;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@ -9,6 +8,7 @@ import org.bukkit.scheduler.BukkitRunnable;
import pk.ajneb97.PlayerKits2; import pk.ajneb97.PlayerKits2;
import pk.ajneb97.api.PlayerKitsAPI; import pk.ajneb97.api.PlayerKitsAPI;
import pk.ajneb97.managers.MessagesManager; import pk.ajneb97.managers.MessagesManager;
import pk.ajneb97.utils.MiniMessageUtils;
import pk.ajneb97.utils.OtherUtils; import pk.ajneb97.utils.OtherUtils;
import java.lang.reflect.Field; import java.lang.reflect.Field;
@ -21,7 +21,7 @@ public class ActionBarAPI
public static void sendActionBar(Player player, String message) { public static void sendActionBar(Player player, String message) {
if(OtherUtils.isNew()) { if(OtherUtils.isNew()) {
if(PlayerKitsAPI.getPlugin().getConfigsManager().getMainConfigManager().isUseMiniMessage()){ if(PlayerKitsAPI.getPlugin().getConfigsManager().getMainConfigManager().isUseMiniMessage()){
player.sendActionBar(MiniMessage.miniMessage().deserialize(message)); MiniMessageUtils.actionbar(player,message);
}else{ }else{
player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(MessagesManager.getLegacyColoredMessage(message))); player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(MessagesManager.getLegacyColoredMessage(message)));
} }

View file

@ -1,13 +1,12 @@
package pk.ajneb97.libs.titles; 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.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import pk.ajneb97.api.PlayerKitsAPI; import pk.ajneb97.api.PlayerKitsAPI;
import pk.ajneb97.managers.MessagesManager; import pk.ajneb97.managers.MessagesManager;
import pk.ajneb97.utils.MiniMessageUtils;
import pk.ajneb97.utils.OtherUtils; import pk.ajneb97.utils.OtherUtils;
import java.lang.reflect.Constructor; import java.lang.reflect.Constructor;
@ -45,9 +44,7 @@ public class TitleAPI implements Listener {
} }
if(PlayerKitsAPI.getPlugin().getConfigsManager().getMainConfigManager().isUseMiniMessage()){ if(PlayerKitsAPI.getPlugin().getConfigsManager().getMainConfigManager().isUseMiniMessage()){
player.showTitle(Title.title( MiniMessageUtils.title(player,title,subtitle);
MiniMessage.miniMessage().deserialize(title),MiniMessage.miniMessage().deserialize(subtitle)
));
}else{ }else{
player.sendTitle(MessagesManager.getLegacyColoredMessage(title), MessagesManager.getLegacyColoredMessage(subtitle), fadeIn, stay, fadeOut); player.sendTitle(MessagesManager.getLegacyColoredMessage(title), MessagesManager.getLegacyColoredMessage(subtitle), fadeIn, stay, fadeOut);
} }

View file

@ -1,11 +1,6 @@
package pk.ajneb97.managers; 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.Bukkit;
import org.bukkit.Material;
import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType; 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.ItemKitInventory;
import pk.ajneb97.model.inventory.KitInventory; 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.*;
import pk.ajneb97.utils.ItemUtils;
import pk.ajneb97.utils.OtherUtils;
import pk.ajneb97.utils.PlayerUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@ -97,7 +89,7 @@ public class InventoryManager {
} }
Inventory inv; Inventory inv;
if(mainConfigManager.isUseMiniMessage()){ if(mainConfigManager.isUseMiniMessage()){
inv = Bukkit.createInventory(null,kitInventory.getSlots(), MiniMessage.miniMessage().deserialize(title)); inv = MiniMessageUtils.createInventory(kitInventory.getSlots(),title);
}else{ }else{
inv = Bukkit.createInventory(null,kitInventory.getSlots(), MessagesManager.getLegacyColoredMessage(title)); inv = Bukkit.createInventory(null,kitInventory.getSlots(), MessagesManager.getLegacyColoredMessage(title));
} }
@ -364,7 +356,7 @@ public class InventoryManager {
if(name != null){ if(name != null){
name = OtherUtils.replaceGlobalVariables(name,player,plugin); name = OtherUtils.replaceGlobalVariables(name,player,plugin);
if(useMiniMessage){ if(useMiniMessage){
meta.displayName(MiniMessage.miniMessage().deserialize(name).decoration(TextDecoration.ITALIC, false)); MiniMessageUtils.setItemName(meta,name);
}else{ }else{
meta.setDisplayName(MessagesManager.getLegacyColoredMessage(name)); meta.setDisplayName(MessagesManager.getLegacyColoredMessage(name));
} }
@ -373,12 +365,7 @@ public class InventoryManager {
if(lore != null) { if(lore != null) {
List<String> loreCopy = new ArrayList<>(lore); List<String> loreCopy = new ArrayList<>(lore);
if(useMiniMessage){ if(useMiniMessage){
List<Component> loreComponent = new ArrayList<>(); MiniMessageUtils.setItemLore(meta,lore,player,plugin);
for(int i=0;i<loreCopy.size();i++) {
String line = OtherUtils.replaceGlobalVariables(loreCopy.get(i),player,plugin);
loreComponent.add(MiniMessage.miniMessage().deserialize(line).decoration(TextDecoration.ITALIC, false));
}
meta.lore(loreComponent);
}else{ }else{
for(int i=0;i<loreCopy.size();i++) { for(int i=0;i<loreCopy.size();i++) {
String line = OtherUtils.replaceGlobalVariables(loreCopy.get(i),player,plugin); String line = OtherUtils.replaceGlobalVariables(loreCopy.get(i),player,plugin);

View file

@ -1,10 +1,6 @@
package pk.ajneb97.managers; package pk.ajneb97.managers;
import me.clip.placeholderapi.PlaceholderAPI; import me.clip.placeholderapi.PlaceholderAPI;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.TextDecoration;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.ItemMeta;
@ -14,6 +10,7 @@ import pk.ajneb97.model.KitRequirements;
import pk.ajneb97.model.internal.GiveKitInstructions; import pk.ajneb97.model.internal.GiveKitInstructions;
import pk.ajneb97.model.internal.PlayerKitsMessageResult; import pk.ajneb97.model.internal.PlayerKitsMessageResult;
import pk.ajneb97.model.inventory.InventoryPlayer; import pk.ajneb97.model.inventory.InventoryPlayer;
import pk.ajneb97.utils.MiniMessageUtils;
import pk.ajneb97.utils.PlayerUtils; import pk.ajneb97.utils.PlayerUtils;
import java.util.ArrayList; import java.util.ArrayList;
@ -36,20 +33,7 @@ public class InventoryRequirementsManager {
} }
if(plugin.getConfigsManager().getMainConfigManager().isUseMiniMessage()){ if(plugin.getConfigsManager().getMainConfigManager().isUseMiniMessage()){
List<Component> newLore = new ArrayList<>(); MiniMessageUtils.setRequirementsMessage(meta,kitName,player,this);
PlainTextComponentSerializer plainSerializer = PlainTextComponentSerializer.plainText();
for(Component line : meta.lore()){
String plainText = plainSerializer.serialize(line);
if(plainText.contains("%kit_requirements_message%")){
List<String> 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);
}else{ }else{
List<String> lore = new ArrayList<>(); List<String> lore = new ArrayList<>();
for(String line : meta.getLore()){ for(String line : meta.getLore()){

View file

@ -1,9 +1,5 @@
package pk.ajneb97.managers; 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.Color;
import org.bukkit.NamespacedKey; import org.bukkit.NamespacedKey;
import org.bukkit.configuration.file.FileConfiguration; 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.internal.KitVariable;
import pk.ajneb97.model.item.*; import pk.ajneb97.model.item.*;
import pk.ajneb97.utils.ItemUtils; import pk.ajneb97.utils.ItemUtils;
import pk.ajneb97.utils.MiniMessageUtils;
import pk.ajneb97.utils.OtherUtils; import pk.ajneb97.utils.OtherUtils;
import pk.ajneb97.utils.ServerVersion; import pk.ajneb97.utils.ServerVersion;
@ -47,28 +44,34 @@ public class KitItemManager {
ServerVersion serverVersion = PlayerKits2.serverVersion; ServerVersion serverVersion = PlayerKits2.serverVersion;
boolean useMiniMessage = plugin.getConfigsManager().getMainConfigManager().isUseMiniMessage(); boolean useMiniMessage = plugin.getConfigsManager().getMainConfigManager().isUseMiniMessage();
boolean isPaper = plugin.getDependencyManager().isPaper();
if(item.hasItemMeta()) { if(item.hasItemMeta()) {
ItemMeta meta = item.getItemMeta(); ItemMeta meta = item.getItemMeta();
if(meta.hasDisplayName()) { if(meta.hasDisplayName()) {
if(useMiniMessage){ if(useMiniMessage){
kitItem.setName(MiniMessage.miniMessage().serialize(meta.displayName())); MiniMessageUtils.setCommonItemName(kitItem,meta);
}else{
if(isPaper && serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_19_R1)){
MiniMessageUtils.setCommonItemNameLegacy(kitItem,meta);
}else{ }else{
kitItem.setName(meta.getDisplayName().replace("§", "&")); kitItem.setName(meta.getDisplayName().replace("§", "&"));
} }
}
} }
if(meta.hasLore()) { if(meta.hasLore()) {
List<String> lore = new ArrayList<>(); List<String> lore = new ArrayList<>();
if(useMiniMessage){ if(useMiniMessage){
for (Component line : meta.lore()) { MiniMessageUtils.setCommonItemLore(lore,meta);
lore.add(MiniMessage.miniMessage().serialize(line)); }else{
} if(isPaper && serverVersion.serverVersionGreaterEqualThan(serverVersion,ServerVersion.v1_19_R1)){
MiniMessageUtils.setCommonItemLoreLegacy(lore,meta);
}else{ }else{
for(String l : meta.getLore()) { for(String l : meta.getLore()) {
lore.add(l.replace("§", "&")); lore.add(l.replace("§", "&"));
} }
} }
}
kitItem.setLore(lore); kitItem.setLore(lore);
} }
if(meta.hasEnchants()) { if(meta.hasEnchants()) {
@ -230,7 +233,7 @@ public class KitItemManager {
if(name != null){ if(name != null){
name = OtherUtils.replaceGlobalVariables(name,player,plugin); name = OtherUtils.replaceGlobalVariables(name,player,plugin);
if(useMiniMessage){ if(useMiniMessage){
meta.displayName(MiniMessage.miniMessage().deserialize(name).decoration(TextDecoration.ITALIC, false)); MiniMessageUtils.setItemName(meta,name);
}else{ }else{
meta.setDisplayName(MessagesManager.getLegacyColoredMessage(name)); meta.setDisplayName(MessagesManager.getLegacyColoredMessage(name));
} }
@ -240,12 +243,7 @@ public class KitItemManager {
if(lore != null) { if(lore != null) {
List<String> loreCopy = new ArrayList<>(lore); List<String> loreCopy = new ArrayList<>(lore);
if(useMiniMessage){ if(useMiniMessage){
List<Component> loreComponent = new ArrayList<>(); MiniMessageUtils.setItemLore(meta,lore,player,plugin);
for(int i=0;i<loreCopy.size();i++) {
String line = OtherUtils.replaceGlobalVariables(loreCopy.get(i),player,plugin);
loreComponent.add(MiniMessage.miniMessage().deserialize(line).decoration(TextDecoration.ITALIC, false));
}
meta.lore(loreComponent);
}else{ }else{
for(int i=0;i<loreCopy.size();i++) { for(int i=0;i<loreCopy.size();i++) {
String line = OtherUtils.replaceGlobalVariables(loreCopy.get(i),player,plugin); String line = OtherUtils.replaceGlobalVariables(loreCopy.get(i),player,plugin);
@ -819,15 +817,7 @@ public class KitItemManager {
ItemMeta meta = item.getItemMeta(); ItemMeta meta = item.getItemMeta();
if(meta.hasDisplayName()){ if(meta.hasDisplayName()){
if(useMiniMessage){ if(useMiniMessage){
Component name = meta.displayName(); MiniMessageUtils.replaceVariablesItemName(meta,variables);
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);
}else{ }else{
String newName = meta.getDisplayName(); String newName = meta.getDisplayName();
for(KitVariable variable : variables){ for(KitVariable variable : variables){
@ -839,19 +829,7 @@ public class KitItemManager {
if(meta.hasLore()){ if(meta.hasLore()){
if(useMiniMessage){ if(useMiniMessage){
List<Component> lore = meta.lore(); MiniMessageUtils.replaceVariablesItemLore(meta,variables);
List<Component> 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);
}else{ }else{
List<String> lore = meta.getLore(); List<String> lore = meta.getLore();
for(int i=0;i<lore.size();i++){ for(int i=0;i<lore.size();i++){

View file

@ -1,10 +1,9 @@
package pk.ajneb97.managers; package pk.ajneb97.managers;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.api.ChatColor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import pk.ajneb97.PlayerKits2;
import pk.ajneb97.api.PlayerKitsAPI; import pk.ajneb97.api.PlayerKitsAPI;
import pk.ajneb97.utils.MiniMessageUtils;
import pk.ajneb97.utils.OtherUtils; import pk.ajneb97.utils.OtherUtils;
import java.util.regex.Matcher; import java.util.regex.Matcher;
@ -89,11 +88,7 @@ public class MessagesManager {
public void sendMessage(CommandSender sender, String message, boolean prefix){ public void sendMessage(CommandSender sender, String message, boolean prefix){
if(!message.isEmpty()){ if(!message.isEmpty()){
if(PlayerKitsAPI.getPlugin().getConfigsManager().getMainConfigManager().isUseMiniMessage()){ if(PlayerKitsAPI.getPlugin().getConfigsManager().getMainConfigManager().isUseMiniMessage()){
if(prefix){ MiniMessageUtils.messagePrefix(sender,message,prefix,this.prefix);
sender.sendMessage(MiniMessage.miniMessage().deserialize(this.prefix+message));
}else{
sender.sendMessage(MiniMessage.miniMessage().deserialize(message));
}
}else{ }else{
if(prefix){ if(prefix){
sender.sendMessage(getLegacyColoredMessage(this.prefix+message)); sender.sendMessage(getLegacyColoredMessage(this.prefix+message));

View file

@ -1,6 +1,5 @@
package pk.ajneb97.managers.edit; package pk.ajneb97.managers.edit;
import net.kyori.adventure.text.minimessage.MiniMessage;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.ClickType;
@ -20,6 +19,7 @@ import pk.ajneb97.model.inventory.KitInventory;
import pk.ajneb97.utils.InventoryItem; import pk.ajneb97.utils.InventoryItem;
import pk.ajneb97.utils.InventoryUtils; import pk.ajneb97.utils.InventoryUtils;
import pk.ajneb97.utils.ItemUtils; import pk.ajneb97.utils.ItemUtils;
import pk.ajneb97.utils.MiniMessageUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -39,7 +39,7 @@ public class InventoryEditPositionManager {
Inventory inv; Inventory inv;
MainConfigManager mainConfigManager = plugin.getConfigsManager().getMainConfigManager(); MainConfigManager mainConfigManager = plugin.getConfigsManager().getMainConfigManager();
if(mainConfigManager.isUseMiniMessage()){ if(mainConfigManager.isUseMiniMessage()){
inv = Bukkit.createInventory(null,kitInventory.getSlots(), MiniMessage.miniMessage().deserialize(kitInventory.getTitle())); inv = MiniMessageUtils.createInventory(kitInventory.getSlots(),kitInventory.getTitle());
}else{ }else{
inv = Bukkit.createInventory(null,kitInventory.getSlots(), MessagesManager.getLegacyColoredMessage(kitInventory.getTitle())); inv = Bukkit.createInventory(null,kitInventory.getSlots(), MessagesManager.getLegacyColoredMessage(kitInventory.getTitle()));
} }

View file

@ -1,6 +1,5 @@
package pk.ajneb97.utils; package pk.ajneb97.utils;
import net.kyori.adventure.text.minimessage.MiniMessage;
import org.bukkit.*; import org.bukkit.*;
import org.bukkit.command.ConsoleCommandSender; import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.entity.EntityType; import org.bukkit.entity.EntityType;
@ -22,7 +21,7 @@ public class ActionUtils {
public static void message(Player player,String actionLine) { public static void message(Player player,String actionLine) {
if(PlayerKitsAPI.getPlugin().getConfigsManager().getMainConfigManager().isUseMiniMessage()){ if(PlayerKitsAPI.getPlugin().getConfigsManager().getMainConfigManager().isUseMiniMessage()){
player.sendMessage(MiniMessage.miniMessage().deserialize(actionLine)); MiniMessageUtils.message(player,actionLine);
}else{ }else{
player.sendMessage(MessagesManager.getLegacyColoredMessage(actionLine)); player.sendMessage(MessagesManager.getLegacyColoredMessage(actionLine));
} }

View file

@ -0,0 +1,129 @@
package pk.ajneb97.utils;
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 net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
import net.kyori.adventure.title.Title;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.meta.ItemMeta;
import pk.ajneb97.PlayerKits2;
import pk.ajneb97.managers.InventoryRequirementsManager;
import pk.ajneb97.managers.MessagesManager;
import pk.ajneb97.model.internal.KitVariable;
import pk.ajneb97.model.item.KitItem;
import java.util.ArrayList;
import java.util.List;
public class MiniMessageUtils {
public static void messagePrefix(CommandSender sender, String message, boolean isPrefix, String prefix){
if(isPrefix){
sender.sendMessage(MiniMessage.miniMessage().deserialize(prefix+message));
}else{
sender.sendMessage(MiniMessage.miniMessage().deserialize(message));
}
}
public static void title(Player player, String title, String subtitle){
player.showTitle(Title.title(
MiniMessage.miniMessage().deserialize(title),MiniMessage.miniMessage().deserialize(subtitle)
));
}
public static void actionbar(Player player, String message){
player.sendActionBar(MiniMessage.miniMessage().deserialize(message));
}
public static void message(Player player,String message){
player.sendMessage(MiniMessage.miniMessage().deserialize(message));
}
public static Inventory createInventory(int slots, String title){
return Bukkit.createInventory(null,slots, MiniMessage.miniMessage().deserialize(title));
}
public static void setCommonItemName(KitItem commonItem, ItemMeta meta){
commonItem.setName(MiniMessage.miniMessage().serialize(meta.displayName()));
}
public static void setCommonItemLore(List<String> 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<String> 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<String> lore, Player player, PlayerKits2 plugin){
List<Component> loreComponent = new ArrayList<>();
for(int i=0;i<lore.size();i++) {
String line = OtherUtils.replaceGlobalVariables(lore.get(i),player,plugin);
loreComponent.add(MiniMessage.miniMessage().deserialize(line).decoration(TextDecoration.ITALIC, false));
}
meta.lore(loreComponent);
}
public static void replaceVariablesItemName(ItemMeta meta, ArrayList<KitVariable> 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<KitVariable> variables){
List<Component> lore = meta.lore();
List<Component> 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<Component> newLore = new ArrayList<>();
PlainTextComponentSerializer plainSerializer = PlainTextComponentSerializer.plainText();
for(Component line : meta.lore()){
String plainText = plainSerializer.serialize(line);
if(plainText.contains("%kit_requirements_message%")){
List<String> 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);
}
}