diff --git a/src/main/java/appeng/core/AEConfig.java b/src/main/java/appeng/core/AEConfig.java index 0922e7032..22288bf67 100644 --- a/src/main/java/appeng/core/AEConfig.java +++ b/src/main/java/appeng/core/AEConfig.java @@ -18,7 +18,16 @@ package appeng.core; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.EnumMap; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.function.DoubleSupplier; import java.util.stream.Collectors; @@ -36,7 +45,13 @@ import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.config.ModConfig; -import appeng.api.config.*; +import appeng.api.config.CondenserOutput; +import appeng.api.config.PowerMultiplier; +import appeng.api.config.PowerUnits; +import appeng.api.config.SearchBoxMode; +import appeng.api.config.Settings; +import appeng.api.config.TerminalStyle; +import appeng.api.config.YesNo; import appeng.api.features.AEFeature; import appeng.core.settings.TickRates; import appeng.util.EnumCycler; @@ -175,9 +190,10 @@ public final class AEConfig { this.matterCannonBattery = COMMON.matterCannonBattery.get(); this.featureFlags.clear(); + for (final AEFeature feature : AEFeature.values()) { - if (feature.isVisible()) { - if (COMMON.enabledFeatures.containsKey(feature)) { + if (feature.isVisible() && feature.isConfig()) { + if (COMMON.enabledFeatures.containsKey(feature) && COMMON.enabledFeatures.get(feature).get()) { this.featureFlags.add(feature); } } else { diff --git a/src/main/java/appeng/core/ApiDefinitions.java b/src/main/java/appeng/core/ApiDefinitions.java index 36ab4ddcd..e68e97062 100644 --- a/src/main/java/appeng/core/ApiDefinitions.java +++ b/src/main/java/appeng/core/ApiDefinitions.java @@ -19,9 +19,6 @@ package appeng.core; import appeng.api.definitions.IDefinitions; -import appeng.api.definitions.IItems; -import appeng.api.definitions.IMaterials; -import appeng.api.definitions.IParts; import appeng.bootstrap.FeatureFactory; import appeng.core.api.definitions.ApiBlocks; import appeng.core.api.definitions.ApiItems; @@ -57,17 +54,17 @@ public final class ApiDefinitions implements IDefinitions { } @Override - public IItems items() { + public ApiItems items() { return items; } @Override - public IMaterials materials() { + public ApiMaterials materials() { return materials; } @Override - public IParts parts() { + public ApiParts parts() { return parts; } } diff --git a/src/main/java/appeng/integration/modules/jei/JEIPlugin.java b/src/main/java/appeng/integration/modules/jei/JEIPlugin.java index cd531bd2a..71e6282cf 100644 --- a/src/main/java/appeng/integration/modules/jei/JEIPlugin.java +++ b/src/main/java/appeng/integration/modules/jei/JEIPlugin.java @@ -18,6 +18,8 @@ package appeng.integration.modules.jei; +import java.util.ArrayList; +import java.util.Collection; import java.util.Optional; import com.google.common.collect.ImmutableList; @@ -32,7 +34,12 @@ import mezz.jei.api.IModPlugin; import mezz.jei.api.JeiPlugin; import mezz.jei.api.constants.VanillaRecipeCategoryUid; import mezz.jei.api.constants.VanillaTypes; -import mezz.jei.api.registration.*; +import mezz.jei.api.registration.IAdvancedRegistration; +import mezz.jei.api.registration.IRecipeCatalystRegistration; +import mezz.jei.api.registration.IRecipeCategoryRegistration; +import mezz.jei.api.registration.IRecipeRegistration; +import mezz.jei.api.registration.IRecipeTransferRegistration; +import mezz.jei.api.registration.ISubtypeRegistration; import mezz.jei.api.runtime.IJeiRuntime; import appeng.api.AEApi; @@ -44,6 +51,7 @@ import appeng.api.features.AEFeature; import appeng.container.implementations.CraftingTermContainer; import appeng.container.implementations.PatternTermContainer; import appeng.core.AEConfig; +import appeng.core.Api; import appeng.core.AppEng; import appeng.core.localization.GuiText; import appeng.integration.abstraction.JEIFacade; @@ -169,6 +177,32 @@ public class JEIPlugin implements IModPlugin { @Override public void onRuntimeAvailable(IJeiRuntime jeiRuntime) { JEIFacade.setInstance(new JeiRuntimeAdapter(jeiRuntime)); + this.hideDebugTools(jeiRuntime); + + } + + private void hideDebugTools(IJeiRuntime jeiRuntime) { + Collection toRemove = new ArrayList<>(); + + // We use the internal API here as exception as debug tools are not part of the + // public one by design. + toRemove.add(Api.INSTANCE.definitions().items().dummyFluidItem().maybeStack(1).orElse(null)); + + if (!AEConfig.instance().isFeatureEnabled(AEFeature.UNSUPPORTED_DEVELOPER_TOOLS)) { + toRemove.add(Api.INSTANCE.definitions().blocks().cubeGenerator().maybeStack(1).orElse(null)); + toRemove.add(Api.INSTANCE.definitions().blocks().chunkLoader().maybeStack(1).orElse(null)); + toRemove.add(Api.INSTANCE.definitions().blocks().energyGenerator().maybeStack(1).orElse(null)); + toRemove.add(Api.INSTANCE.definitions().blocks().itemGen().maybeStack(1).orElse(null)); + toRemove.add(Api.INSTANCE.definitions().blocks().phantomNode().maybeStack(1).orElse(null)); + + toRemove.add(Api.INSTANCE.definitions().items().toolDebugCard().maybeStack(1).orElse(null)); + toRemove.add(Api.INSTANCE.definitions().items().toolEraser().maybeStack(1).orElse(null)); + toRemove.add(Api.INSTANCE.definitions().items().toolMeteoritePlacer().maybeStack(1).orElse(null)); + toRemove.add(Api.INSTANCE.definitions().items().toolReplicatorCard().maybeStack(1).orElse(null)); + } + + jeiRuntime.getIngredientManager().removeIngredientsAtRuntime(mezz.jei.api.constants.VanillaTypes.ITEM, + toRemove); } }