diff --git a/API/src/main/java/fr/maxlego08/menu/api/animation/PlayerTitleAnimation.java b/API/src/main/java/fr/maxlego08/menu/api/animation/PlayerTitleAnimation.java index 93d635bf..913a9188 100644 --- a/API/src/main/java/fr/maxlego08/menu/api/animation/PlayerTitleAnimation.java +++ b/API/src/main/java/fr/maxlego08/menu/api/animation/PlayerTitleAnimation.java @@ -60,7 +60,7 @@ public void start(@NotNull Player player, @NotNull List inventoryCont } } String title = this.settings.titles().get(this.currentIndex++); - this.sendTitle(player, title); + this.sendTitle(player, this.plugin.parse(player, title)); if (!this.settings.showItemsAfterAnimation()) { if (this.settings.itemUpdateInterval() > 0 && this.currentIndex % this.settings.itemUpdateInterval() == 0) { this.sendInventoryContent(player, inventoryContents); diff --git a/API/src/main/java/fr/maxlego08/menu/api/itemstack/components/ItemNameComponent.java b/API/src/main/java/fr/maxlego08/menu/api/itemstack/components/ItemNameComponent.java index 9e30bdc8..68f4f6eb 100644 --- a/API/src/main/java/fr/maxlego08/menu/api/itemstack/components/ItemNameComponent.java +++ b/API/src/main/java/fr/maxlego08/menu/api/itemstack/components/ItemNameComponent.java @@ -2,6 +2,7 @@ import fr.maxlego08.menu.api.context.BuildContext; import fr.maxlego08.menu.api.itemstack.ItemComponent; +import fr.maxlego08.menu.api.placeholder.Placeholder; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; @@ -25,7 +26,7 @@ public void apply(@NotNull BuildContext context, @NotNull ItemStack itemStack, @ ItemMeta itemMeta = itemStack.getItemMeta(); if (itemMeta != null) { - itemMeta.setItemName(this.itemName); + itemMeta.setItemName(this.itemName == null ? null : Placeholder.Placeholders.getPlaceholder().setPlaceholders(player, context.getPlaceholders().parse(this.itemName))); itemStack.setItemMeta(itemMeta); } diff --git a/API/src/main/java/fr/maxlego08/menu/api/itemstack/components/LoreComponent.java b/API/src/main/java/fr/maxlego08/menu/api/itemstack/components/LoreComponent.java index bb94ff21..c4fe1693 100644 --- a/API/src/main/java/fr/maxlego08/menu/api/itemstack/components/LoreComponent.java +++ b/API/src/main/java/fr/maxlego08/menu/api/itemstack/components/LoreComponent.java @@ -2,6 +2,7 @@ import fr.maxlego08.menu.api.context.BuildContext; import fr.maxlego08.menu.api.itemstack.ItemComponent; +import fr.maxlego08.menu.api.placeholder.Placeholder; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; @@ -27,7 +28,9 @@ public LoreComponent(List<@NotNull String> lore) { public void apply(@NotNull BuildContext context, @NotNull ItemStack itemStack, @Nullable Player player) { ItemMeta itemMeta = itemStack.getItemMeta(); if (itemMeta != null) { - itemMeta.setLore(this.lore); + + itemMeta.setLore(Placeholder.Placeholders.getPlaceholder().setPlaceholders(player,context.getPlaceholders().parse(this.lore))); + itemStack.setItemMeta(itemMeta); } } diff --git a/API/src/main/java/fr/maxlego08/menu/api/itemstack/components/WritableBookContentComponent.java b/API/src/main/java/fr/maxlego08/menu/api/itemstack/components/WritableBookContentComponent.java index 9e8a91cf..51285048 100644 --- a/API/src/main/java/fr/maxlego08/menu/api/itemstack/components/WritableBookContentComponent.java +++ b/API/src/main/java/fr/maxlego08/menu/api/itemstack/components/WritableBookContentComponent.java @@ -3,6 +3,7 @@ import fr.maxlego08.menu.api.configuration.Configuration; import fr.maxlego08.menu.api.context.BuildContext; import fr.maxlego08.menu.api.itemstack.ItemComponent; +import fr.maxlego08.menu.api.placeholder.Placeholder; import fr.maxlego08.menu.api.utils.ItemUtil; import fr.maxlego08.menu.zcore.logger.Logger; import org.bukkit.entity.Player; @@ -34,8 +35,8 @@ public WritableBookContentComponent(@Nullable String title, @NotNull List<@NotNu @Override public void apply(@NotNull BuildContext context, @NotNull ItemStack itemStack, @Nullable Player player) { boolean apply = ItemUtil.editMeta(itemStack, BookMeta.class, bookMeta -> { - bookMeta.setTitle(this.title); - bookMeta.setPages(this.pages); + bookMeta.setTitle(this.title != null ? Placeholder.Placeholders.getPlaceholder().setPlaceholders(player, context.getPlaceholders().parse(this.title)) : null); + bookMeta.setPages(Placeholder.Placeholders.getPlaceholder().setPlaceholders(player, context.getPlaceholders().parse(this.pages))); }); if (!apply && Configuration.enableDebug) Logger.info("Could not apply WritableBookContentComponent to item: " + itemStack.getType().name()); diff --git a/API/src/main/java/fr/maxlego08/menu/api/itemstack/components/WrittenBookContentComponent.java b/API/src/main/java/fr/maxlego08/menu/api/itemstack/components/WrittenBookContentComponent.java index fad9a69e..84fcaa10 100644 --- a/API/src/main/java/fr/maxlego08/menu/api/itemstack/components/WrittenBookContentComponent.java +++ b/API/src/main/java/fr/maxlego08/menu/api/itemstack/components/WrittenBookContentComponent.java @@ -3,6 +3,7 @@ import fr.maxlego08.menu.api.configuration.Configuration; import fr.maxlego08.menu.api.context.BuildContext; import fr.maxlego08.menu.api.itemstack.ItemComponent; +import fr.maxlego08.menu.api.placeholder.Placeholder; import fr.maxlego08.menu.api.utils.ItemUtil; import fr.maxlego08.menu.zcore.logger.Logger; import org.bukkit.entity.Player; @@ -46,10 +47,10 @@ public WrittenBookContentComponent(@Nullable String title, @Nullable String auth @Override public void apply(@NotNull BuildContext context, @NotNull ItemStack itemStack, @Nullable Player player) { boolean apply = ItemUtil.editMeta(itemStack, BookMeta.class, bookMeta -> { - bookMeta.setTitle(this.title); - bookMeta.setAuthor(this.author); + bookMeta.setTitle(this.title == null ? null : Placeholder.Placeholders.getPlaceholder().setPlaceholders(player, context.getPlaceholders().parse(this.title))); + bookMeta.setAuthor(this.author == null ? null : Placeholder.Placeholders.getPlaceholder().setPlaceholders(player, context.getPlaceholders().parse(this.author))); bookMeta.setGeneration(this.generation); - bookMeta.setPages(this.pages); + bookMeta.setPages(Placeholder.Placeholders.getPlaceholder().setPlaceholders(player, context.getPlaceholders().parse(this.pages))); }); if (!apply && Configuration.enableDebug) Logger.info("Could not apply WritableBookContentComponent to item: " + itemStack.getType().name()); diff --git a/Common/src/main/java/fr/maxlego08/menu/placeholder/AutoPlaceholder.java b/API/src/main/java/fr/maxlego08/menu/api/placeholder/AutoPlaceholder.java similarity index 94% rename from Common/src/main/java/fr/maxlego08/menu/placeholder/AutoPlaceholder.java rename to API/src/main/java/fr/maxlego08/menu/api/placeholder/AutoPlaceholder.java index 2584fbdb..605fee4b 100644 --- a/Common/src/main/java/fr/maxlego08/menu/placeholder/AutoPlaceholder.java +++ b/API/src/main/java/fr/maxlego08/menu/api/placeholder/AutoPlaceholder.java @@ -1,4 +1,4 @@ -package fr.maxlego08.menu.placeholder; +package fr.maxlego08.menu.api.placeholder; import fr.maxlego08.menu.api.interfaces.ReturnBiConsumer; import org.bukkit.OfflinePlayer; diff --git a/Common/src/main/java/fr/maxlego08/menu/placeholder/DistantPlaceholder.java b/API/src/main/java/fr/maxlego08/menu/api/placeholder/DistantPlaceholder.java similarity index 96% rename from Common/src/main/java/fr/maxlego08/menu/placeholder/DistantPlaceholder.java rename to API/src/main/java/fr/maxlego08/menu/api/placeholder/DistantPlaceholder.java index 0425772d..ea34911d 100644 --- a/Common/src/main/java/fr/maxlego08/menu/placeholder/DistantPlaceholder.java +++ b/API/src/main/java/fr/maxlego08/menu/api/placeholder/DistantPlaceholder.java @@ -1,4 +1,4 @@ -package fr.maxlego08.menu.placeholder; +package fr.maxlego08.menu.api.placeholder; import me.clip.placeholderapi.expansion.PlaceholderExpansion; import org.bukkit.OfflinePlayer; diff --git a/Common/src/main/java/fr/maxlego08/menu/placeholder/LocalPlaceholder.java b/API/src/main/java/fr/maxlego08/menu/api/placeholder/LocalPlaceholder.java similarity index 98% rename from Common/src/main/java/fr/maxlego08/menu/placeholder/LocalPlaceholder.java rename to API/src/main/java/fr/maxlego08/menu/api/placeholder/LocalPlaceholder.java index 93956a1c..23928d1c 100644 --- a/Common/src/main/java/fr/maxlego08/menu/placeholder/LocalPlaceholder.java +++ b/API/src/main/java/fr/maxlego08/menu/api/placeholder/LocalPlaceholder.java @@ -1,4 +1,4 @@ -package fr.maxlego08.menu.placeholder; +package fr.maxlego08.menu.api.placeholder; import fr.maxlego08.menu.api.MenuPlugin; import fr.maxlego08.menu.api.interfaces.ReturnBiConsumer; diff --git a/Common/src/main/java/fr/maxlego08/menu/placeholder/Placeholder.java b/API/src/main/java/fr/maxlego08/menu/api/placeholder/Placeholder.java similarity index 95% rename from Common/src/main/java/fr/maxlego08/menu/placeholder/Placeholder.java rename to API/src/main/java/fr/maxlego08/menu/api/placeholder/Placeholder.java index 101e68b9..e35631e9 100644 --- a/Common/src/main/java/fr/maxlego08/menu/placeholder/Placeholder.java +++ b/API/src/main/java/fr/maxlego08/menu/api/placeholder/Placeholder.java @@ -1,4 +1,4 @@ -package fr.maxlego08.menu.placeholder; +package fr.maxlego08.menu.api.placeholder; import me.clip.placeholderapi.PlaceholderAPI; import me.clip.placeholderapi.expansion.PlaceholderExpansion; @@ -22,7 +22,7 @@ class Api implements Placeholder { private final Placeholder localPlaceholder; public Api() { - PlaceholderExpansion expansion = new fr.maxlego08.menu.placeholder.DistantPlaceholder(LocalPlaceholder.getInstance()); + PlaceholderExpansion expansion = new fr.maxlego08.menu.api.placeholder.DistantPlaceholder(LocalPlaceholder.getInstance()); expansion.register(); localPlaceholder = new Local(); } diff --git a/Common/src/main/java/fr/maxlego08/menu/common/utils/ActionHelper.java b/Common/src/main/java/fr/maxlego08/menu/common/utils/ActionHelper.java index 78010eed..38d3b3dc 100644 --- a/Common/src/main/java/fr/maxlego08/menu/common/utils/ActionHelper.java +++ b/Common/src/main/java/fr/maxlego08/menu/common/utils/ActionHelper.java @@ -1,7 +1,7 @@ package fr.maxlego08.menu.common.utils; +import fr.maxlego08.menu.api.placeholder.Placeholder; import fr.maxlego08.menu.api.requirement.Action; -import fr.maxlego08.menu.placeholder.Placeholder; import org.bukkit.entity.Player; import java.util.List; diff --git a/Common/src/main/java/fr/maxlego08/menu/common/utils/PapiUtils.java b/Common/src/main/java/fr/maxlego08/menu/common/utils/PapiUtils.java index 3ce1bea1..7882e91a 100644 --- a/Common/src/main/java/fr/maxlego08/menu/common/utils/PapiUtils.java +++ b/Common/src/main/java/fr/maxlego08/menu/common/utils/PapiUtils.java @@ -1,7 +1,7 @@ package fr.maxlego08.menu.common.utils; import fr.maxlego08.menu.api.configuration.Configuration; -import fr.maxlego08.menu.placeholder.Placeholder; +import fr.maxlego08.menu.api.placeholder.Placeholder; import org.bukkit.OfflinePlayer; import java.util.ArrayList; diff --git a/Hooks/Paper/src/main/java/fr/maxlego08/menu/hooks/dialogs/utils/BuilderHelper.java b/Hooks/Paper/src/main/java/fr/maxlego08/menu/hooks/dialogs/utils/BuilderHelper.java index 7ce54270..1a78b2f7 100644 --- a/Hooks/Paper/src/main/java/fr/maxlego08/menu/hooks/dialogs/utils/BuilderHelper.java +++ b/Hooks/Paper/src/main/java/fr/maxlego08/menu/hooks/dialogs/utils/BuilderHelper.java @@ -1,6 +1,6 @@ package fr.maxlego08.menu.hooks.dialogs.utils; -import fr.maxlego08.menu.placeholder.Placeholder; +import fr.maxlego08.menu.api.placeholder.Placeholder; import org.bukkit.entity.Player; import java.util.List; diff --git a/Hooks/Paper/src/main/java/fr/maxlego08/menu/itemstack/components/paper/PaperCustomNameComponent.java b/Hooks/Paper/src/main/java/fr/maxlego08/menu/itemstack/components/paper/PaperCustomNameComponent.java index 3180c68e..ce73b4ac 100644 --- a/Hooks/Paper/src/main/java/fr/maxlego08/menu/itemstack/components/paper/PaperCustomNameComponent.java +++ b/Hooks/Paper/src/main/java/fr/maxlego08/menu/itemstack/components/paper/PaperCustomNameComponent.java @@ -2,8 +2,8 @@ import fr.maxlego08.menu.api.context.BuildContext; import fr.maxlego08.menu.api.itemstack.ItemComponent; +import fr.maxlego08.menu.api.placeholder.Placeholder; import fr.maxlego08.menu.api.utils.PaperMetaUpdater; -import fr.maxlego08.menu.placeholder.Placeholder; import io.papermc.paper.datacomponent.DataComponentTypes; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; diff --git a/Hooks/Paper/src/main/java/fr/maxlego08/menu/itemstack/components/paper/PaperLoreComponent.java b/Hooks/Paper/src/main/java/fr/maxlego08/menu/itemstack/components/paper/PaperLoreComponent.java index a2e652dc..35c14560 100644 --- a/Hooks/Paper/src/main/java/fr/maxlego08/menu/itemstack/components/paper/PaperLoreComponent.java +++ b/Hooks/Paper/src/main/java/fr/maxlego08/menu/itemstack/components/paper/PaperLoreComponent.java @@ -2,8 +2,8 @@ import fr.maxlego08.menu.api.context.BuildContext; import fr.maxlego08.menu.api.itemstack.ItemComponent; +import fr.maxlego08.menu.api.placeholder.Placeholder; import fr.maxlego08.menu.api.utils.PaperMetaUpdater; -import fr.maxlego08.menu.placeholder.Placeholder; import io.papermc.paper.datacomponent.DataComponentTypes; import io.papermc.paper.datacomponent.item.ItemLore; import org.bukkit.entity.Player; diff --git a/src/main/java/fr/maxlego08/menu/ZMenuPlugin.java b/src/main/java/fr/maxlego08/menu/ZMenuPlugin.java index 8ca29c98..1e8a2dab 100644 --- a/src/main/java/fr/maxlego08/menu/ZMenuPlugin.java +++ b/src/main/java/fr/maxlego08/menu/ZMenuPlugin.java @@ -13,6 +13,8 @@ import fr.maxlego08.menu.api.font.FontImage; import fr.maxlego08.menu.api.interfaces.ReturnBiConsumer; import fr.maxlego08.menu.api.pattern.PatternManager; +import fr.maxlego08.menu.api.placeholder.LocalPlaceholder; +import fr.maxlego08.menu.api.placeholder.Placeholder; import fr.maxlego08.menu.api.players.DataManager; import fr.maxlego08.menu.api.players.inventory.InventoriesPlayer; import fr.maxlego08.menu.api.storage.StorageManager; @@ -52,9 +54,7 @@ import fr.maxlego08.menu.loader.materials.ArmorLoader; import fr.maxlego08.menu.loader.materials.Base64Loader; import fr.maxlego08.menu.pattern.ZPatternManager; -import fr.maxlego08.menu.placeholder.LocalPlaceholder; import fr.maxlego08.menu.placeholder.MenuPlaceholders; -import fr.maxlego08.menu.placeholder.Placeholder; import fr.maxlego08.menu.players.ZDataManager; import fr.maxlego08.menu.players.inventory.ZInventoriesPlayer; import fr.maxlego08.menu.save.MessageLoader; diff --git a/src/main/java/fr/maxlego08/menu/loader/components/spigot/SpigotEnchantmentsItemComponentLoader.java b/src/main/java/fr/maxlego08/menu/loader/components/spigot/SpigotEnchantmentsItemComponentLoader.java index 5d92f41f..1a7d896a 100644 --- a/src/main/java/fr/maxlego08/menu/loader/components/spigot/SpigotEnchantmentsItemComponentLoader.java +++ b/src/main/java/fr/maxlego08/menu/loader/components/spigot/SpigotEnchantmentsItemComponentLoader.java @@ -25,7 +25,7 @@ public SpigotEnchantmentsItemComponentLoader(){ @Override public @Nullable ItemComponent load(@NotNull MenuItemStackContext context, @NotNull File file, @NotNull YamlConfiguration configuration, @NotNull String path, @Nullable ConfigurationSection componentSection) { if (componentSection == null) return null; - Map values = configuration.getValues(false); + Map values = componentSection.getValues(false); Map enchantments = new HashMap<>(); for (var entry : values.entrySet()) { String enchantmentName = entry.getKey(); diff --git a/src/main/java/fr/maxlego08/menu/placeholder/MenuPlaceholders.java b/src/main/java/fr/maxlego08/menu/placeholder/MenuPlaceholders.java index 5cfb3ab1..1d661600 100644 --- a/src/main/java/fr/maxlego08/menu/placeholder/MenuPlaceholders.java +++ b/src/main/java/fr/maxlego08/menu/placeholder/MenuPlaceholders.java @@ -17,7 +17,7 @@ public class MenuPlaceholders extends ZUtils { public void register(MenuPlugin plugin) { - LocalPlaceholder placeholder = LocalPlaceholder.getInstance(); + fr.maxlego08.menu.api.placeholder.LocalPlaceholder placeholder = fr.maxlego08.menu.api.placeholder.LocalPlaceholder.getInstance(); var inventoryManager = plugin.getInventoryManager(); placeholder.register("test", (a, b) -> "&ctest"); diff --git a/src/main/java/fr/maxlego08/menu/players/ZDataManager.java b/src/main/java/fr/maxlego08/menu/players/ZDataManager.java index 55943d52..fac70913 100644 --- a/src/main/java/fr/maxlego08/menu/players/ZDataManager.java +++ b/src/main/java/fr/maxlego08/menu/players/ZDataManager.java @@ -2,6 +2,7 @@ import fr.maxlego08.menu.ZMenuPlugin; import fr.maxlego08.menu.api.interfaces.ReturnConsumer; +import fr.maxlego08.menu.api.placeholder.LocalPlaceholder; import fr.maxlego08.menu.api.players.Data; import fr.maxlego08.menu.api.players.DataManager; import fr.maxlego08.menu.api.players.PlayerData; @@ -9,7 +10,6 @@ import fr.maxlego08.menu.api.utils.Message; import fr.maxlego08.menu.api.utils.OfflinePlayerCache; import fr.maxlego08.menu.common.utils.builder.TimerBuilder; -import fr.maxlego08.menu.placeholder.LocalPlaceholder; import org.bukkit.OfflinePlayer; import org.bukkit.command.CommandSender; import org.bukkit.configuration.ConfigurationSection; diff --git a/src/main/java/fr/maxlego08/menu/website/ZWebsiteManager.java b/src/main/java/fr/maxlego08/menu/website/ZWebsiteManager.java index 9cffbd14..488e6377 100644 --- a/src/main/java/fr/maxlego08/menu/website/ZWebsiteManager.java +++ b/src/main/java/fr/maxlego08/menu/website/ZWebsiteManager.java @@ -7,11 +7,11 @@ import fr.maxlego08.menu.api.configuration.Configuration; import fr.maxlego08.menu.api.exceptions.InventoryException; import fr.maxlego08.menu.api.loader.NoneLoader; +import fr.maxlego08.menu.api.placeholder.LocalPlaceholder; import fr.maxlego08.menu.api.utils.Message; import fr.maxlego08.menu.api.website.WebsiteManager; import fr.maxlego08.menu.common.utils.ZUtils; import fr.maxlego08.menu.common.utils.nms.NmsVersion; -import fr.maxlego08.menu.placeholder.LocalPlaceholder; import fr.maxlego08.menu.website.buttons.*; import fr.maxlego08.menu.website.request.HttpRequest; import org.bukkit.command.CommandSender; diff --git a/src/main/java/fr/maxlego08/menu/zcore/ZPlugin.java b/src/main/java/fr/maxlego08/menu/zcore/ZPlugin.java index 371629f8..e5fe2d52 100644 --- a/src/main/java/fr/maxlego08/menu/zcore/ZPlugin.java +++ b/src/main/java/fr/maxlego08/menu/zcore/ZPlugin.java @@ -4,6 +4,8 @@ import com.google.gson.GsonBuilder; import fr.maxlego08.menu.ZMenuPlugin; import fr.maxlego08.menu.api.exceptions.ListenerNullException; +import fr.maxlego08.menu.api.placeholder.LocalPlaceholder; +import fr.maxlego08.menu.api.placeholder.Placeholder; import fr.maxlego08.menu.api.players.Data; import fr.maxlego08.menu.api.utils.EnumInventory; import fr.maxlego08.menu.command.VCommand; @@ -11,8 +13,6 @@ import fr.maxlego08.menu.inventory.VInventory; import fr.maxlego08.menu.inventory.VInventoryManager; import fr.maxlego08.menu.listener.ListenerAdapter; -import fr.maxlego08.menu.placeholder.LocalPlaceholder; -import fr.maxlego08.menu.placeholder.Placeholder; import fr.maxlego08.menu.zcore.logger.Logger; import fr.maxlego08.menu.zcore.logger.Logger.LogType; import fr.maxlego08.menu.zcore.utils.gson.DataAdapter;