From d3a1535a31e535e3395e0117fd3dead6a04ca85c Mon Sep 17 00:00:00 2001 From: bigguy345 Date: Fri, 2 Jan 2026 16:11:08 +0200 Subject: [PATCH] EnumConstantInfo as token metadata --- .../gui/util/script/interpreter/ScriptLine.java | 8 ++++++++ .../gui/util/script/interpreter/token/Token.java | 13 +++++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/ScriptLine.java b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/ScriptLine.java index 57a13ed78..7c4f73151 100644 --- a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/ScriptLine.java +++ b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/ScriptLine.java @@ -1,6 +1,7 @@ package noppes.npcs.client.gui.util.script.interpreter; import noppes.npcs.client.ClientProxy; +import noppes.npcs.client.gui.util.script.interpreter.field.EnumConstantInfo; import noppes.npcs.client.gui.util.script.interpreter.field.FieldAccessInfo; import noppes.npcs.client.gui.util.script.interpreter.field.FieldInfo; import noppes.npcs.client.gui.util.script.interpreter.method.MethodCallInfo; @@ -190,6 +191,13 @@ public class ScriptLine { FieldInfo.ArgInfo ctx = (FieldInfo.ArgInfo) metadata; token.setFieldInfo(ctx.fieldInfo); token.setMethodCallInfo(ctx.methodCallInfo); + } else if (metadata instanceof EnumConstantInfo) { + EnumConstantInfo enumInfo = (EnumConstantInfo) metadata; + token.setEnumConstantInfo(enumInfo); + token.setFieldInfo(enumInfo.getFieldInfo()); + if (enumInfo.getConstructorCall() != null) + token.setMethodCallInfo(enumInfo.getConstructorCall()); + } else if (metadata instanceof FieldInfo) { token.setFieldInfo((FieldInfo) metadata); } else if (metadata instanceof MethodInfo) { diff --git a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/token/Token.java b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/token/Token.java index 35f956f54..60ead2493 100644 --- a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/token/Token.java +++ b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/token/Token.java @@ -3,6 +3,7 @@ package noppes.npcs.client.gui.util.script.interpreter.token; import noppes.npcs.client.gui.util.script.interpreter.type.ImportData; import noppes.npcs.client.gui.util.script.interpreter.ScriptLine; import noppes.npcs.client.gui.util.script.interpreter.type.TypeInfo; +import noppes.npcs.client.gui.util.script.interpreter.field.EnumConstantInfo; import noppes.npcs.client.gui.util.script.interpreter.field.FieldAccessInfo; import noppes.npcs.client.gui.util.script.interpreter.field.FieldInfo; import noppes.npcs.client.gui.util.script.interpreter.method.MethodCallInfo; @@ -32,6 +33,7 @@ public class Token { private MethodCallInfo methodCallInfo; // For method calls with argument info private ImportData importData; // For import statements private FieldAccessInfo fieldAccessInfo; //For fields like Minecraft.getMinecraft.thePlayer + private EnumConstantInfo enumConstantInfo; // For enum constant references private TokenErrorMessage errorMessage; @@ -110,6 +112,15 @@ public class Token { return t; } + public static Token enumConstant(String text, int start, int end, EnumConstantInfo info) { + Token t = new Token(text, start, end, TokenType.ENUM_CONSTANT); + t.enumConstantInfo = info; + if (info != null) { + t.fieldInfo = info.getFieldInfo(); + } + return t; + } + public static Token undefined(String text, int start, int end) { return new Token(text, start, end, TokenType.UNDEFINED_VAR); } @@ -127,6 +138,7 @@ public class Token { public MethodCallInfo getMethodCallInfo() { return methodCallInfo; } public FieldAccessInfo getFieldAccessInfo() { return fieldAccessInfo; } public ImportData getImportData() { return importData; } + public EnumConstantInfo getEnumConstantInfo() { return enumConstantInfo; } public TokenErrorMessage getErrorMessage() { return errorMessage; } public ScriptLine getParentLine() { return parentLine; } @@ -139,6 +151,7 @@ public class Token { public void setMethodInfo(MethodInfo info) { this.methodInfo = info; } public void setMethodCallInfo(MethodCallInfo info) { this.methodCallInfo = info; } public void setImportData(ImportData data) { this.importData = data; } + public void setEnumConstantInfo(EnumConstantInfo info) { this.enumConstantInfo = info; } public void setErrorMessage(TokenErrorMessage message) { this.errorMessage = message; } public void setParentLine(ScriptLine line) { this.parentLine = line; }