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

134 lines
4.3 KiB
Java
Raw Normal View History

2014-04-29 10:54:20 +10:00
package codechicken.nei;
import codechicken.core.CommonUtils;
import codechicken.core.launch.CodeChickenCorePlugin;
import codechicken.nei.api.IConfigureNEI;
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;
2022-01-31 01:01:12 +09:00
import codechicken.nei.recipe.RecipeCatalysts;
2014-04-29 10:54:20 +10:00
import com.google.common.eventbus.EventBus;
import com.google.common.eventbus.Subscribe;
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.ModMetadata;
import cpw.mods.fml.common.event.FMLInitializationEvent;
2021-04-10 22:31:32 -07:00
import cpw.mods.fml.common.event.FMLInterModComms;
2021-03-20 22:38:46 -07:00
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
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;
import net.minecraft.util.EnumChatFormatting;
import java.io.File;
2019-12-30 20:19:16 -08:00
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
2014-04-29 10:54:20 +10:00
public class NEIModContainer extends DummyModContainer
{
2019-12-30 20:19:16 -08:00
public static LinkedList<IConfigureNEI> plugins = new LinkedList<>();
2014-04-29 10:54:20 +10:00
public NEIModContainer() {
2021-11-22 17:56:35 +01:00
super(getModMetadata());
loadMetadata();
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 = "GRADLETOKEN_MODNAME";
modMetadata.modId = "GRADLETOKEN_MODID";
modMetadata.version = "GRADLETOKEN_VERSION";
return modMetadata;
}
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<>();
2014-11-06 21:43:16 -06:00
deps.add(VersionParser.parseVersionReference("CodeChickenCore@["+CodeChickenCorePlugin.version+",)"));
2014-04-29 10:54:20 +10:00
return deps;
}
@Override
public List<ArtifactVersion> getDependencies() {
2019-12-30 20:19:16 -08:00
return new LinkedList<>(getRequirements());
2014-04-29 10:54:20 +10:00
}
private String description;
private void loadMetadata() {
2014-08-05 00:09:34 +10:00
description = super.getMetadata().description.replace("Supporters:", EnumChatFormatting.AQUA+"Supporters:");
}
2014-04-29 10:54:20 +10:00
@Override
public ModMetadata getMetadata() {
2019-12-30 20:19:16 -08:00
StringBuilder s_plugins = new StringBuilder();
2014-04-29 10:54:20 +10:00
if (plugins.size() == 0) {
2019-12-30 20:19:16 -08:00
s_plugins.append(EnumChatFormatting.RED).append("No installed plugins.");
2014-04-29 10:54:20 +10:00
} else {
2019-12-30 20:19:16 -08:00
s_plugins.append(EnumChatFormatting.GREEN).append("Installed plugins: ");
2014-04-29 10:54:20 +10:00
for (int i = 0; i < plugins.size(); i++) {
if (i > 0)
2019-12-30 20:19:16 -08:00
s_plugins.append(", ");
2014-04-29 10:54:20 +10:00
IConfigureNEI plugin = plugins.get(i);
2019-12-30 20:19:16 -08:00
s_plugins.append(plugin.getName()).append(" ").append(plugin.getVersion());
2014-04-29 10:54:20 +10:00
}
2019-12-30 20:19:16 -08:00
s_plugins.append(".");
2014-04-29 10:54:20 +10:00
}
ModMetadata meta = super.getMetadata();
2019-12-30 20:19:16 -08:00
meta.description = description.replace("<plugins>", s_plugins.toString());
2014-04-29 10:54:20 +10:00
return meta;
}
@Override
public boolean registerBus(EventBus bus, LoadController controller) {
bus.register(this);
return true;
}
@Subscribe
public void preInit(FMLPreInitializationEvent event) {
if (CommonUtils.isClient())
ClientHandler.preInit();
}
2014-04-29 10:54:20 +10:00
@Subscribe
public void init(FMLInitializationEvent event) {
if (CommonUtils.isClient())
ClientHandler.load();
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()) {
2021-03-28 00:12:17 -07:00
GuiRecipeTab.loadHandlerInfo();
2022-01-31 01:01:12 +09:00
RecipeCatalysts.loadCatalystInfo();
2021-10-18 19:43:19 -04:00
ClientHandler.postInit();
}
2021-03-20 22:38:46 -07:00
}
2021-04-10 22:31:32 -07:00
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
}
2014-04-29 10:54:20 +10:00
}