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 6f95538c6..f3214441a 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 @@ -9175,6 +9175,12 @@ for (ScriptTypeInfo type:scriptTypes.values()) { constructor = info.findConstructor(argCount); } } + + // Second pass: re-parse arguments with expected parameter types from resolved constructor + // This enables SAM type inference for lambda arguments (e.g., Consumer parameters) + if (constructor != null && constructor.getParameters().size() == arguments.size()) { + arguments = parseMethodArguments(openParen + 1, closeParen, constructor, info); + } // Create MethodCallInfo for constructor // Use the actual variable name (className) for variables, not the class's simple name