Hide debug tools from JEI when disabled via config (#4439)

This commit is contained in:
yueh
2020-07-01 14:29:43 +02:00
committed by GitHub
parent 400fcdb633
commit 0f11c1e0a4
3 changed files with 58 additions and 11 deletions
@@ -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<ItemStack> 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);
}
}