diff --git a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/blast_search_trees/MinecraftMixin.java b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/blast_search_trees/MinecraftMixin.java index b0e3955c..4d5c5b75 100644 --- a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/blast_search_trees/MinecraftMixin.java +++ b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/blast_search_trees/MinecraftMixin.java @@ -4,6 +4,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.searchtree.SearchRegistry; import net.minecraftforge.fml.ModContainer; import net.minecraftforge.fml.ModList; +import org.embeddedt.modernfix.ModernFix; import org.embeddedt.modernfix.annotation.ClientOnlyMixin; import org.embeddedt.modernfix.searchtree.DummySearchTree; import org.embeddedt.modernfix.searchtree.REIBackedSearchTree; @@ -24,18 +25,26 @@ public class MinecraftMixin { @Inject(method = "createSearchTrees", at = @At("HEAD"), cancellable = true) private void replaceSearchTrees(CallbackInfo ci) { - ci.cancel(); Optional jeiContainer = ModList.get().getModContainerById("jei"); if(ModList.get().isLoaded("roughlyenoughitems")) { + ModernFix.LOGGER.info("Replaced creative search logic with REI"); this.searchRegistry.register(SearchRegistry.CREATIVE_NAMES, new REIBackedSearchTree(false)); this.searchRegistry.register(SearchRegistry.CREATIVE_TAGS, new REIBackedSearchTree(true)); - } else if(jeiContainer.isPresent() && jeiContainer.get().getModInfo().getVersion().getMajorVersion() >= 10) { + } else if(jeiContainer.isPresent()) { + /* ugly hack since getMajorVersion() returns 0 */ + if(jeiContainer.get().getModInfo().getVersion().toString().startsWith("9.")) { + ModernFix.LOGGER.warn("Not disabling creative search as JEI 9 is in use"); + return; + } + ModernFix.LOGGER.info("Replaced creative search logic with JEI"); this.searchRegistry.register(SearchRegistry.CREATIVE_NAMES, new JEIBackedSearchTree(false)); this.searchRegistry.register(SearchRegistry.CREATIVE_TAGS, new JEIBackedSearchTree(true)); } else { + ModernFix.LOGGER.info("Completely removed creative search logic"); this.searchRegistry.register(SearchRegistry.CREATIVE_NAMES, new DummySearchTree<>()); this.searchRegistry.register(SearchRegistry.CREATIVE_TAGS, new DummySearchTree<>()); } this.searchRegistry.register(SearchRegistry.RECIPE_COLLECTIONS, new DummySearchTree<>()); + ci.cancel(); } }