From f1a968d1962b0a8769fa83b116fc710aa9956e58 Mon Sep 17 00:00:00 2001 From: bigguy345 Date: Sat, 24 Jan 2026 06:47:44 +0200 Subject: [PATCH] Got bridges working for new JSTypeRegistry domains (.d.ts files of each loaded mod) --- .../gui/util/script/interpreter/bridge/DtsJavaBridge.java | 8 ++++++++ .../util/script/interpreter/js_parser/JSTypeRegistry.java | 2 ++ 2 files changed, 10 insertions(+) diff --git a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/bridge/DtsJavaBridge.java b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/bridge/DtsJavaBridge.java index eb8d67a87..dea2fb882 100644 --- a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/bridge/DtsJavaBridge.java +++ b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/bridge/DtsJavaBridge.java @@ -20,6 +20,11 @@ public final class DtsJavaBridge { private DtsJavaBridge() {} + public static void clearCache() { + METHOD_CACHE.clear(); + FIELD_CACHE.clear(); + } + public static JSMethodInfo findMatchingMethod(Method method, TypeInfo containingType) { JSMethodInfo cached = METHOD_CACHE.get(method); if (cached != null) return cached; @@ -191,6 +196,9 @@ public final class DtsJavaBridge { private static JSTypeInfo resolveJSTypeInfo(String javaFqnOrType) { if (javaFqnOrType == null || javaFqnOrType.isEmpty()) return null; + if (javaFqnOrType.startsWith("Java.")) { + javaFqnOrType = javaFqnOrType.substring(5); + } JSTypeRegistry registry = TypeResolver.getInstance().getJSTypeRegistry(); JSTypeInfo direct = registry.getTypeByJavaFqn(javaFqnOrType); if (direct != null) return direct; diff --git a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/js_parser/JSTypeRegistry.java b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/js_parser/JSTypeRegistry.java index de7e92aa2..1107aca07 100644 --- a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/js_parser/JSTypeRegistry.java +++ b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/js_parser/JSTypeRegistry.java @@ -3,6 +3,7 @@ package noppes.npcs.client.gui.util.script.interpreter.js_parser; import net.minecraft.client.Minecraft; import net.minecraft.util.ResourceLocation; import noppes.npcs.scripted.NpcAPI; +import noppes.npcs.client.gui.util.script.interpreter.bridge.DtsJavaBridge; import java.io.*; import java.net.URL; @@ -817,6 +818,7 @@ public class JSTypeRegistry { hooks.clear(); contextHooks.clear(); globalEngineObjects.clear(); + DtsJavaBridge.clearCache(); initialized = false; }