From 6e8db7d666f489525f64c2442f3b0f5da229cce7 Mon Sep 17 00:00:00 2001 From: lojosho Date: Thu, 1 May 2025 22:09:58 -0500 Subject: [PATCH] fix: Craft Engine hook (Thanks Bimbo!) --- .../hooks/items/HookCraftEngine.java | 32 ++++++++++++++++--- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/items/HookCraftEngine.java b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/items/HookCraftEngine.java index 7406079..55d76ce 100644 --- a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/items/HookCraftEngine.java +++ b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/items/HookCraftEngine.java @@ -1,24 +1,46 @@ package me.lojosho.hibiscuscommons.hooks.items; +import me.lojosho.hibiscuscommons.api.events.HibiscusHookReload; import me.lojosho.hibiscuscommons.hooks.Hook; import me.lojosho.hibiscuscommons.hooks.HookFlag; import net.momirealms.craftengine.bukkit.api.CraftEngineItems; import net.momirealms.craftengine.core.item.CustomItem; import net.momirealms.craftengine.core.util.Key; +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.event.EventHandler; +import org.bukkit.event.server.PluginEnableEvent; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; public class HookCraftEngine extends Hook { public HookCraftEngine() { - super("CraftEngine", HookFlag.ITEM_SUPPORT); + super("craftengine", HookFlag.ITEM_SUPPORT, HookFlag.LATE_LOAD); } @Override public ItemStack getItem(@NotNull String itemId) { - Key craftEngineKey = Key.of(itemId); - CustomItem itemStack = CraftEngineItems.byId(craftEngineKey); - if (itemStack == null) return null; - return itemStack.buildItemStack(); + if (!isActive()) return new ItemStack(Material.AIR); + CustomItem item = CraftEngineItems.byId(Key.of(itemId)); + if (item == null) return null; + return item.buildItemStack(); + } + + @Override + public String getItemString(ItemStack itemStack) { + if (!itemStack.hasItemMeta()) return null; + Key key = CraftEngineItems.getCustomItemId(itemStack); + if (key == null) return null; + return key.toString(); + } + + @EventHandler + public void onPluginEnable(PluginEnableEvent event) { + // Move to CraftEngine own event for this? Doesn't seem like they have one for post-initialization? Open for PR + if (event.getPlugin().getName().equalsIgnoreCase("CraftEngine") && !isActive()) { + setActive(true); + Bukkit.getPluginManager().callEvent(new HibiscusHookReload(this, HibiscusHookReload.ReloadType.INITIAL)); + } } } \ No newline at end of file