From 2e1c7764b798c5d83223df1ca910bb729fec0a4f Mon Sep 17 00:00:00 2001 From: Kogepan229 <73163994+Kogepan229@users.noreply.github.com> Date: Tue, 27 May 2025 00:55:37 +0900 Subject: [PATCH] Ignore prefix when SearchMode is ALWAYS (#635) Co-authored-by: Martin Robertz Co-authored-by: Maya <10861407+serenibyss@users.noreply.github.com> --- .../java/codechicken/nei/SearchTokenParser.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/main/java/codechicken/nei/SearchTokenParser.java b/src/main/java/codechicken/nei/SearchTokenParser.java index 3b259751..0d5d2bf6 100644 --- a/src/main/java/codechicken/nei/SearchTokenParser.java +++ b/src/main/java/codechicken/nei/SearchTokenParser.java @@ -126,19 +126,24 @@ public class SearchTokenParser { Language currentLanguage = Minecraft.getMinecraft().getLanguageManager().getCurrentLanguage(); if (!currentLanguage.getLanguageCode().equals(providersCache.languageCode)) { + providersCache.providers = new ArrayList<>(); + providersCache.languageCode = currentLanguage.getLanguageCode(); + Map providers = new HashMap<>(); for (int index = this.searchProviders.size() - 1; index >= 0; index--) { ISearchParserProvider provider = this.searchProviders.get(index); - if (!providers.containsKey(provider.getPrefix()) - && provider.getMatchingLanguages().contains(currentLanguage)) { - providers.put(provider.getPrefix(), provider); + if (provider.getMatchingLanguages().contains(currentLanguage)) { + if (provider.getSearchMode() == SearchMode.PREFIX && !providers.containsKey(provider.getPrefix())) { + providers.put(provider.getPrefix(), provider); + } else if (provider.getSearchMode() == SearchMode.ALWAYS) { + providersCache.providers.add(provider); + } } } - providersCache.providers = new ArrayList<>(providers.values()); - providersCache.languageCode = currentLanguage.getLanguageCode(); + providersCache.providers.addAll(providers.values()); } return providersCache.providers;