From abb1869ab947bb45d3647dab609ab71d96f550fe Mon Sep 17 00:00:00 2001 From: 1robie Date: Tue, 19 Aug 2025 17:36:17 +0200 Subject: [PATCH 1/2] Add tooltip style support in item configuration --- .../items/api/configurations/ItemConfiguration.java | 9 +++++++++ src/main/java/fr/maxlego08/items/ZItem.java | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/API/src/main/java/fr/maxlego08/items/api/configurations/ItemConfiguration.java b/API/src/main/java/fr/maxlego08/items/api/configurations/ItemConfiguration.java index 52150ae..4ffb23c 100644 --- a/API/src/main/java/fr/maxlego08/items/api/configurations/ItemConfiguration.java +++ b/API/src/main/java/fr/maxlego08/items/api/configurations/ItemConfiguration.java @@ -116,6 +116,7 @@ public class ItemConfiguration { private ItemRuneConfiguration itemRuneConfiguration; private Food food; private ItemRarity itemRarity; + private String tooltipstyle; public ItemConfiguration(ItemPlugin plugin, YamlConfiguration configuration, String fileName, String path) { @@ -261,6 +262,10 @@ public ItemConfiguration(ItemPlugin plugin, YamlConfiguration configuration, Str if (swappableEquipment && this.equippedModel != null && this.equippedSlot != null) { this.swappableEquipment = true; } + String tooltypestyleString = configuration.getString(path + "tooltip-style", null); + if (tooltypestyleString != null) { + this.tooltipstyle = tooltypestyleString; + } this.loadAxolotl(plugin, configuration, fileName, path); this.loadBanner(plugin, configuration, fileName, path); @@ -648,6 +653,10 @@ public List getRunes() { return runes; } + public String getTooltipstyle() { + return tooltipstyle; + } + public int getNbRunesView() { return nbRunesView; } diff --git a/src/main/java/fr/maxlego08/items/ZItem.java b/src/main/java/fr/maxlego08/items/ZItem.java index d4dab1d..055cabc 100644 --- a/src/main/java/fr/maxlego08/items/ZItem.java +++ b/src/main/java/fr/maxlego08/items/ZItem.java @@ -147,6 +147,12 @@ public ItemStack build(Player player, int amount) { } itemMeta.setEquippable(equippableComponent); } + if (this.configuration.getTooltipstyle() != null && !this.configuration.getTooltipstyle().isEmpty()) { + String[] tooltipStyleSplit = this.configuration.getTooltipstyle().split(":", 2); + if (tooltipStyleSplit.length == 2) { + itemMeta.setTooltipStyle(new NamespacedKey(tooltipStyleSplit[0], tooltipStyleSplit[1])); + } + } this.configuration.applyLeatherArmorMeta(itemMeta); From a4642be51f9ad06cc5d6181fe371109e678069e3 Mon Sep 17 00:00:00 2001 From: 1robie <97293924+1robie@users.noreply.github.com> Date: Sun, 5 Oct 2025 15:02:08 +0200 Subject: [PATCH 2/2] Add ZItemsLoadedEvent to handle item loading completion --- .../items/api/events/ZItemsLoadedEvent.java | 18 ++++++++++++++++++ .../java/fr/maxlego08/items/ZItemManager.java | 3 +++ 2 files changed, 21 insertions(+) create mode 100644 API/src/main/java/fr/maxlego08/items/api/events/ZItemsLoadedEvent.java diff --git a/API/src/main/java/fr/maxlego08/items/api/events/ZItemsLoadedEvent.java b/API/src/main/java/fr/maxlego08/items/api/events/ZItemsLoadedEvent.java new file mode 100644 index 0000000..6a52423 --- /dev/null +++ b/API/src/main/java/fr/maxlego08/items/api/events/ZItemsLoadedEvent.java @@ -0,0 +1,18 @@ +package fr.maxlego08.items.api.events; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; +import org.jetbrains.annotations.NotNull; + +public class ZItemsLoadedEvent extends Event { + private static final HandlerList HANDLERS = new HandlerList(); + + @Override + public @NotNull HandlerList getHandlers() { + return HANDLERS; + } + + public static HandlerList getHandlerList() { + return HANDLERS; + } +} diff --git a/src/main/java/fr/maxlego08/items/ZItemManager.java b/src/main/java/fr/maxlego08/items/ZItemManager.java index 0121029..cb1508e 100644 --- a/src/main/java/fr/maxlego08/items/ZItemManager.java +++ b/src/main/java/fr/maxlego08/items/ZItemManager.java @@ -3,6 +3,7 @@ import fr.maxlego08.items.api.Item; import fr.maxlego08.items.api.ItemManager; import fr.maxlego08.items.api.configurations.ItemConfiguration; +import fr.maxlego08.items.api.events.ZItemsLoadedEvent; import fr.maxlego08.items.api.utils.ItemFile; import fr.maxlego08.items.zcore.enums.Message; import fr.maxlego08.items.zcore.utils.ZUtils; @@ -69,6 +70,8 @@ public void loadItems() { itemFile = ItemFile.fromFolder(folder); + ZItemsLoadedEvent itemsLoadedEvent = new ZItemsLoadedEvent(); + this.plugin.getServer().getPluginManager().callEvent(itemsLoadedEvent); } @Override