From 79373573c6e0c891d2722022f7fec2c9635baca8 Mon Sep 17 00:00:00 2001 From: shedaniel Date: Wed, 12 Feb 2020 15:02:10 +0800 Subject: FilteringEntry Signed-off-by: shedaniel --- src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java') diff --git a/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java b/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java index e201fd7b7..f0c376053 100644 --- a/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java +++ b/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java @@ -33,6 +33,8 @@ import me.shedaniel.rei.api.RecipeHelper; import me.shedaniel.rei.gui.ConfigReloadingScreen; import me.shedaniel.rei.gui.ContainerScreenOverlay; import me.shedaniel.rei.gui.config.RecipeScreenType; +import me.shedaniel.rei.gui.config.entry.FilteringEntry; +import me.shedaniel.rei.gui.config.entry.NoFilteringEntry; import me.shedaniel.rei.gui.config.entry.RecipeScreenTypeEntry; import me.shedaniel.rei.gui.credits.CreditsScreen; import net.fabricmc.loader.api.FabricLoader; @@ -48,6 +50,7 @@ import net.minecraft.client.util.Window; import net.minecraft.util.math.MathHelper; import org.jetbrains.annotations.ApiStatus; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Optional; @@ -99,6 +102,12 @@ public class ConfigManagerImpl implements ConfigManager { guiRegistry.registerAnnotationProvider((i13n, field, config, defaults, guiProvider) -> Collections.singletonList(new RecipeScreenTypeEntry(220, i13n, getUnsafely(field, config, RecipeScreenType.UNSET), getUnsafely(field, defaults), type -> setUnsafely(field, config, type))) , (field) -> field.getType() == RecipeScreenType.class, ConfigObjectImpl.UseSpecialRecipeTypeScreen.class); + guiRegistry.registerAnnotationProvider((i13n, field, config, defaults, guiProvider) -> + ScreenHelper.getLastContainerScreenHooks() == null || MinecraftClient.getInstance().getNetworkHandler() == null || MinecraftClient.getInstance().getNetworkHandler().getRecipeManager() == null ? + Collections.singletonList(new NoFilteringEntry(getUnsafely(field, config, new ArrayList<>()), getUnsafely(field, defaults), list -> setUnsafely(field, config, list))) + : + Collections.singletonList(new FilteringEntry(getUnsafely(field, config, new ArrayList<>()), getUnsafely(field, defaults), list -> setUnsafely(field, config, list))) + , (field) -> field.getType() == List.class, ConfigObjectImpl.UseFilteringScreen.class); saveConfig(); RoughlyEnoughItemsCore.LOGGER.info("[REI] Config is loaded."); } -- cgit