Fix JEI creative search tree replacement not working

Fixes #86
This commit is contained in:
embeddedt 2023-05-08 09:44:44 -04:00
parent 558ced7497
commit c63252946a
No known key found for this signature in database
GPG Key ID: A69433EC199B5613

View File

@ -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<? extends ModContainer> 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();
}
}