From db3a7de9260aa8a589fffb62e3c34b37329761ad Mon Sep 17 00:00:00 2001 From: bigguy345 Date: Sun, 4 Jan 2026 18:21:29 +0200 Subject: [PATCH] Drawn static/final denoters to AutocompleteItems --- .../script/autocomplete/AutocompleteItem.java | 24 +++++++++++++++++++ .../script/autocomplete/AutocompleteMenu.java | 17 +++++++++++++ .../JavaAutocompleteProvider.java | 12 ++-------- 3 files changed, 43 insertions(+), 10 deletions(-) diff --git a/src/main/java/noppes/npcs/client/gui/util/script/autocomplete/AutocompleteItem.java b/src/main/java/noppes/npcs/client/gui/util/script/autocomplete/AutocompleteItem.java index 3aee42085..c049504ce 100644 --- a/src/main/java/noppes/npcs/client/gui/util/script/autocomplete/AutocompleteItem.java +++ b/src/main/java/noppes/npcs/client/gui/util/script/autocomplete/AutocompleteItem.java @@ -396,6 +396,30 @@ public class AutocompleteItem implements Comparable { public int getMatchScore() { return matchScore; } public int[] getMatchIndices() { return matchIndices; } + /** + * Check if this item represents a static member. + */ + public boolean isStatic() { + if (sourceData instanceof MethodInfo) { + return ((MethodInfo) sourceData).isStatic(); + } else if (sourceData instanceof FieldInfo) { + return ((FieldInfo) sourceData).isStatic(); + } + return false; + } + + /** + * Check if this item represents a final member. + */ + public boolean isFinal() { + if (sourceData instanceof MethodInfo) { + return ((MethodInfo) sourceData).isFinal(); + } else if (sourceData instanceof FieldInfo) { + return ((FieldInfo) sourceData).isFinal(); + } + return false; + } + /** * Get icon identifier based on kind. */ diff --git a/src/main/java/noppes/npcs/client/gui/util/script/autocomplete/AutocompleteMenu.java b/src/main/java/noppes/npcs/client/gui/util/script/autocomplete/AutocompleteMenu.java index b73ac42a3..2478ccc05 100644 --- a/src/main/java/noppes/npcs/client/gui/util/script/autocomplete/AutocompleteMenu.java +++ b/src/main/java/noppes/npcs/client/gui/util/script/autocomplete/AutocompleteMenu.java @@ -4,6 +4,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.Gui; import net.minecraft.client.gui.ScaledResolution; +import noppes.npcs.client.gui.util.script.interpreter.token.TokenType; import org.lwjgl.opengl.GL11; import java.util.ArrayList; @@ -294,6 +295,22 @@ public class AutocompleteMenu extends Gui { int textX = itemX; int textY = itemY + (ITEM_HEIGHT - font.FONT_HEIGHT) / 2; + + // Draw modifier text (static/final) if present + boolean isStatic = item.isStatic(); + boolean isFinal = item.isFinal(); + if (isStatic || isFinal) { + GL11.glPushMatrix(); + float scale = 0.5f; + GL11.glScalef(scale, scale, scale); + int col = TokenType.MODIFIER.getHexColor(); + + if (isStatic) + font.drawString("s", (int) (textX / scale), (int) (textY / scale), col); + if (isFinal) + font.drawString("f", (int) (textX / scale), (int) (textY / scale) + 10, col); + GL11.glPopMatrix(); + } // Draw icon String icon = item.getIconId(); diff --git a/src/main/java/noppes/npcs/client/gui/util/script/autocomplete/JavaAutocompleteProvider.java b/src/main/java/noppes/npcs/client/gui/util/script/autocomplete/JavaAutocompleteProvider.java index 4244d11dd..57ac351d7 100644 --- a/src/main/java/noppes/npcs/client/gui/util/script/autocomplete/JavaAutocompleteProvider.java +++ b/src/main/java/noppes/npcs/client/gui/util/script/autocomplete/JavaAutocompleteProvider.java @@ -405,16 +405,8 @@ public class JavaAutocompleteProvider implements AutocompleteProvider { return; } - // Check if the item is a static member - Object sourceData = item.getSourceData(); - boolean isStatic = false; - - if (sourceData instanceof MethodInfo) { - isStatic = ((MethodInfo) sourceData).isStatic(); - } else if (sourceData instanceof FieldInfo) { - isStatic = ((FieldInfo) sourceData).isStatic(); - } - + boolean isStatic = item.isStatic(); + // Apply penalty to static members in instance context if (isStatic) { int matchScore = item.getMatchScore();