Files
NotEnoughItems/src/main/java/codechicken/nei/NEIModContainer.java
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

150 lines
4.8 KiB
Java
Raw Normal View History

2014-04-29 10:54:20 +10:00
package codechicken.nei;
2023-09-25 00:35:24 +02:00
import java.io.File;
2024-12-29 06:00:02 +01:00
import java.util.ArrayList;
2023-09-25 00:35:24 +02:00
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import com.google.common.eventbus.EventBus;
import com.google.common.eventbus.Subscribe;
2014-04-29 10:54:20 +10:00
import codechicken.core.CommonUtils;
import codechicken.core.launch.CodeChickenCorePlugin;
import codechicken.nei.asm.NEICorePlugin;
2021-04-10 22:31:32 -07:00
import codechicken.nei.config.IMCHandler;
2021-03-20 22:38:46 -07:00
import codechicken.nei.recipe.GuiRecipeTab;
2014-04-29 10:54:20 +10:00
import cpw.mods.fml.client.FMLFileResourcePack;
import cpw.mods.fml.client.FMLFolderResourcePack;
import cpw.mods.fml.common.DummyModContainer;
import cpw.mods.fml.common.LoadController;
import cpw.mods.fml.common.Loader;
2014-04-29 10:54:20 +10:00
import cpw.mods.fml.common.ModMetadata;
import cpw.mods.fml.common.discovery.ASMDataTable;
2014-04-29 10:54:20 +10:00
import cpw.mods.fml.common.event.FMLInitializationEvent;
2021-04-10 22:31:32 -07:00
import cpw.mods.fml.common.event.FMLInterModComms;
import cpw.mods.fml.common.event.FMLLoadCompleteEvent;
2021-03-20 22:38:46 -07:00
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.event.FMLServerAboutToStartEvent;
2014-04-29 10:54:20 +10:00
import cpw.mods.fml.common.versioning.ArtifactVersion;
import cpw.mods.fml.common.versioning.VersionParser;
import cpw.mods.fml.common.versioning.VersionRange;
@SuppressWarnings("UnstableApiUsage")
public class NEIModContainer extends DummyModContainer {
private static boolean gregTech5Loaded;
2024-12-29 06:00:02 +01:00
private static boolean gtnhLibLoaded;
private static ASMDataTable asmDataTable;
2014-04-29 10:54:20 +10:00
public NEIModContainer() {
2021-11-22 17:56:35 +01:00
super(getModMetadata());
2014-04-29 10:54:20 +10:00
}
2021-11-22 17:56:35 +01:00
private static ModMetadata getModMetadata() {
final ModMetadata modMetadata = new ModMetadata();
modMetadata.name = "NotEnoughItems";
modMetadata.modId = "NotEnoughItems";
modMetadata.version = Tags.VERSION;
modMetadata.authorList = Arrays.asList("ChickenBones", "mitchej123");
modMetadata.url = "https://github.com/GTNewHorizons/NotEnoughItems";
modMetadata.description = "Recipe Viewer, Inventory Manager, Item Spawner, Cheats and more; GTNH Version includes many enhancements.";
2021-11-22 17:56:35 +01:00
return modMetadata;
}
public static boolean isGT5Loaded() {
return gregTech5Loaded;
}
2024-12-29 06:00:02 +01:00
public static boolean isGTNHLibLoaded() {
return gtnhLibLoaded;
}
2014-04-29 10:54:20 +10:00
@Override
public Set<ArtifactVersion> getRequirements() {
2019-12-30 20:19:16 -08:00
Set<ArtifactVersion> deps = new HashSet<>();
2024-12-29 06:00:02 +01:00
deps.add(VersionParser.parseVersionReference("CodeChickenCore@[" + codechicken.core.asm.Tags.VERSION + ",)"));
2014-04-29 10:54:20 +10:00
return deps;
}
@Override
public List<ArtifactVersion> getDependencies() {
2024-12-29 06:00:02 +01:00
List<ArtifactVersion> deps = new ArrayList<>();
deps.add(VersionParser.parseVersionReference("CodeChickenCore@[" + codechicken.core.asm.Tags.VERSION + ",)"));
deps.add(VersionParser.parseVersionReference("gtnhlib@[0.6.0,)"));
return deps;
2014-04-29 10:54:20 +10:00
}
private String description;
2014-04-29 10:54:20 +10:00
@Override
public boolean registerBus(EventBus bus, LoadController controller) {
bus.register(this);
return true;
}
@Subscribe
public void preInit(FMLPreInitializationEvent event) {
gregTech5Loaded = Loader.isModLoaded("gregtech") && !Loader.isModLoaded("gregapi_post");
2024-12-29 06:00:02 +01:00
gtnhLibLoaded = Loader.isModLoaded("gtnhlib");
if (CommonUtils.isClient()) ClientHandler.preInit();
asmDataTable = event.getAsmData();
}
2014-04-29 10:54:20 +10:00
@Subscribe
public void init(FMLInitializationEvent event) {
if (CommonUtils.isClient()) {
ClientHandler.load();
}
2014-04-29 10:54:20 +10:00
ServerHandler.load();
}
2021-03-20 22:38:46 -07:00
@Subscribe
public void postInit(FMLPostInitializationEvent event) {
2021-10-18 19:43:19 -04:00
if (CommonUtils.isClient()) {
ClientHandler.postInit();
}
2021-03-20 22:38:46 -07:00
}
2021-04-10 22:31:32 -07:00
@Subscribe
public void loadComplete(FMLLoadCompleteEvent event) {
if (CommonUtils.isClient()) {
GuiRecipeTab.loadHandlerInfo();
2024-09-01 23:19:12 +03:00
ClientHandler.loadPluginsList();
ClientHandler.loadHandlerOrdering();
asmDataTable = null;
}
}
@Subscribe
public void onServerAboutToStart(FMLServerAboutToStartEvent event) {
NEIServerConfig.resetFirstLoad();
}
2021-08-27 01:35:24 +08:00
@Subscribe
public void handleIMCMessages(FMLInterModComms.IMCEvent event) {
IMCHandler.processIMC(event.getMessages());
2021-04-10 22:31:32 -07:00
}
2014-04-29 10:54:20 +10:00
@Override
public VersionRange acceptableMinecraftVersionRange() {
return VersionParser.parseRange(CodeChickenCorePlugin.mcVersion);
}
2014-04-30 01:03:17 +10:00
@Override
2014-04-29 10:54:20 +10:00
public File getSource() {
return NEICorePlugin.location;
}
@Override
public Class<?> getCustomResourcePackClass() {
return getSource().isDirectory() ? FMLFolderResourcePack.class : FMLFileResourcePack.class;
2014-04-30 01:03:17 +10:00
}
public static ASMDataTable getAsmDataTable() {
return asmDataTable;
}
2014-04-29 10:54:20 +10:00
}