diff --git a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/ScriptDocument.java b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/ScriptDocument.java index 9e04e3b63..802382b82 100644 --- a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/ScriptDocument.java +++ b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/ScriptDocument.java @@ -804,6 +804,16 @@ public class ScriptDocument { // Strip array brackets baseName = baseName.replace("[]", "").trim(); + // Check primitive types first + if (TypeResolver.isPrimitiveType(baseName)) { + return TypeInfo.forPrimitive(baseName); + } + + // Check for String (common case) + if (baseName.equals("String")) { + return typeResolver.resolveFullName("java.lang.String"); + } + // Check script-defined types FIRST if (scriptTypes.containsKey(baseName)) { return scriptTypes.get(baseName); diff --git a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/TypeResolver.java b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/TypeResolver.java index a962ec9e2..80bbea054 100644 --- a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/TypeResolver.java +++ b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/TypeResolver.java @@ -370,6 +370,16 @@ public class TypeResolver { } } + + /** + * Check if a type name is a primitive type. + */ + public static boolean isPrimitiveType(String typeName) { + return typeName.equals("boolean") || typeName.equals("byte") || typeName.equals("char") || + typeName.equals("short") || typeName.equals("int") || typeName.equals("long") || + typeName.equals("float") || typeName.equals("double") || typeName.equals("void"); + } + /** * Represents a type occurrence within generic content. */