From 62009fbda9faa16c8d1eda1964193a1cee9a42b2 Mon Sep 17 00:00:00 2001 From: zenfyr Date: Sun, 28 Jun 2026 05:43:46 +0000 Subject: [PATCH] compat: update pulsar with fallback --- src/main/java/dev/zenfyr/rbip/compat/PulsarCompat.java | 21 +++++++++++++++------ 1 file(s) changed, 15 insertion(s)(+), 6 deletion(s)(-) diff --git a/src/main/java/dev/zenfyr/rbip/compat/PulsarCompat.java b/src/main/java/dev/zenfyr/rbip/compat/PulsarCompat.java --- a/src/main/java/dev/zenfyr/rbip/compat/PulsarCompat.java +++ b/src/main/java/dev/zenfyr/rbip/compat/PulsarCompat.java @@ -13,16 +13,16 @@ public class PulsarCompat { private static MethodHandle getIconAnimation; - private static MethodHandle animateIcon; + private static MethodHandle renderTabIcon; @SneakyThrows public static boolean render( GuiGraphics context, int i, RecipeBookTabButton widget, CreativeModeTab group) { - if (getIconAnimation == null || animateIcon == null) return false; + if (getIconAnimation == null || renderTabIcon == null) return false; Optional opt = (Optional) getIconAnimation.invoke(group); if (opt.isEmpty()) return false; - animateIcon.invoke( + renderTabIcon.invoke( opt.get(), group, context, @@ -35,15 +35,24 @@ public static void init(MethodHandles.Lookup lookup) { try { - var iconClass = Class.forName("dev.zenfyr.pulsar.creativetab.CreativeModeTabAnimaton"); + boolean legacy = false; + Class iconClass; + + try { + iconClass = + Class.forName("dev.zenfyr.pulsar.api.client.creativetab.CreativeModeTabAnimation"); + } catch (ClassNotFoundException e) { + iconClass = Class.forName("dev.zenfyr.pulsar.creativetab.CreativeModeTabAnimaton"); + legacy = true; + } getIconAnimation = lookup.findStatic( iconClass, "getIconAnimation", MethodType.methodType(Optional.class, CreativeModeTab.class)); - animateIcon = lookup.findVirtual( + renderTabIcon = lookup.findVirtual( iconClass, - "animateIcon", + legacy ? "animateIcon" : "renderTabIcon", MethodType.methodType( void.class, CreativeModeTab.class, -- tangled.sh