From fee59189f20b4d3cb4b91626cdf8011398502f5e Mon Sep 17 00:00:00 2001 From: Tommy Date: Mon, 11 May 2026 22:49:08 -0400 Subject: [PATCH 1/2] Prewarm cache and early exit prefix matching --- src/main/java/mezz/jei/ingredients/IngredientFilter.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/mezz/jei/ingredients/IngredientFilter.java b/src/main/java/mezz/jei/ingredients/IngredientFilter.java index cbe81551..61cee6e0 100644 --- a/src/main/java/mezz/jei/ingredients/IngredientFilter.java +++ b/src/main/java/mezz/jei/ingredients/IngredientFilter.java @@ -180,7 +180,7 @@ private void buildCache() { } for (Map.Entry entry : wildcardEntries) { String prefix = entry.getKey(); - if (uid.equals(prefix) || uid.startsWith(prefix + ":")) { + if (uid.equals(prefix) || (uid.length() > prefix.length() && uid.charAt(prefix.length()) == ':' && uid.startsWith(prefix))) { groupMembershipCache.put(element, entry.getValue()); gtoc.put(entry.getValue(), element); } @@ -281,6 +281,7 @@ public void updateHidden() { for (IIngredientListElement element : this.elementSearch.getAllIngredients()) { updateHiddenState(element); } + buildCache(); } public void updateHiddenState(IIngredientListElement element) { From 477c0b820dda4bd20cfdabfd13f5fc139317ef25 Mon Sep 17 00:00:00 2001 From: Tommy Date: Tue, 12 May 2026 03:10:28 -0400 Subject: [PATCH 2/2] Rebuild cache delegateAfterBlock --- src/main/java/mezz/jei/ingredients/IngredientFilter.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/mezz/jei/ingredients/IngredientFilter.java b/src/main/java/mezz/jei/ingredients/IngredientFilter.java index 61cee6e0..621f3693 100644 --- a/src/main/java/mezz/jei/ingredients/IngredientFilter.java +++ b/src/main/java/mezz/jei/ingredients/IngredientFilter.java @@ -103,6 +103,7 @@ public void delegateAfterBlock(Runnable runnable) { if (this.afterBlock) { runnable.run(); invalidateCache(); + buildCache(); } else { if (this.delegatedActions == null) { this.delegatedActions = new ArrayList<>();