Files
FalsePatternLib/src/main/java/com/falsepattern/lib/internal/FalsePatternLib.java
T

88 lines
3.3 KiB
Java
Raw Normal View History

2022-05-06 13:40:42 +02:00
package com.falsepattern.lib.internal;
2022-01-10 02:35:24 +01:00
2022-06-09 20:14:11 +02:00
import com.falsepattern.lib.config.ConfigException;
2022-05-06 23:48:24 +02:00
import com.falsepattern.lib.config.ConfigurationManager;
import com.falsepattern.lib.updates.ModUpdateInfo;
import com.falsepattern.lib.updates.UpdateChecker;
import com.falsepattern.lib.util.ResourceUtil;
import com.google.common.eventbus.EventBus;
2022-05-07 20:24:05 +02:00
import com.google.common.eventbus.Subscribe;
2022-01-10 02:35:24 +01:00
import cpw.mods.fml.common.DummyModContainer;
import cpw.mods.fml.common.LoadController;
2022-06-09 20:14:11 +02:00
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.MetadataCollection;
2022-05-07 19:45:43 +02:00
import cpw.mods.fml.common.event.FMLConstructionEvent;
2022-06-09 20:14:11 +02:00
import cpw.mods.fml.common.event.FMLInterModComms;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import lombok.Getter;
2022-06-09 20:14:11 +02:00
import lombok.SneakyThrows;
import lombok.val;
2022-01-10 02:35:24 +01:00
import net.minecraft.launchwrapper.Launch;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.util.List;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
/**
2022-06-08 16:01:06 +02:00
* Utility class used by FalsePatternLib's internal code. This can change between versions without notice, so do not use
* this in your code!
*/
2022-06-09 20:14:11 +02:00
@SuppressWarnings("UnstableApiUsage")
2022-01-10 02:35:24 +01:00
public class FalsePatternLib extends DummyModContainer {
2022-06-08 16:01:06 +02:00
@Getter private static final Logger log = LogManager.getLogger(Tags.MODNAME);
2022-01-10 02:35:24 +01:00
2022-06-08 16:01:06 +02:00
@Getter private static final boolean developerEnvironment =
(boolean) Launch.blackboard.get("fml.deobfuscatedEnvironment");
2022-01-10 02:35:24 +01:00
private Future<List<ModUpdateInfo>> updateCheckFuture;
2022-01-10 02:35:24 +01:00
public FalsePatternLib() {
2022-06-08 16:01:06 +02:00
super(MetadataCollection.from(ResourceUtil.getResourceFromJar("/mcmod.info", FalsePatternLib.class), Tags.MODID)
.getMetadataForId(Tags.MODID, null));
log.info("Version " + Tags.VERSION + " initialized!");
2022-01-10 02:35:24 +01:00
}
2022-05-07 20:24:05 +02:00
@SuppressWarnings("UnstableApiUsage")
@Subscribe
2022-05-07 19:45:43 +02:00
public void construct(FMLConstructionEvent e) {
ConfigurationManager.init();
2022-06-09 20:14:11 +02:00
try {
ConfigurationManager.registerConfig(LibraryConfig.class);
} catch (ConfigException ex) {
getLog().error("Failed to register " + Tags.MODNAME + " config!", ex);
}
}
@Subscribe
public void preInit(FMLPreInitializationEvent e) {
if (LibraryConfig.ENABLE_UPDATE_CHECKER) {
getLog().info("Launching asynchronous update check. I'll check back on it during postInit.");
updateCheckFuture = UpdateChecker.fetchUpdatesAsync("https://falsepattern.com/mc/versions.json");
}
}
2022-06-09 20:14:11 +02:00
@Subscribe
public void postInit(FMLPostInitializationEvent e) {
if (updateCheckFuture != null && !updateCheckFuture.isCancelled()) {
try {
val updates = updateCheckFuture.get();
if (updates != null)
for (val update: updates)
update.log(getLog());
} catch (InterruptedException | ExecutionException ex) {
getLog().warn("Error while checking updates", ex);
}
2022-06-09 20:14:11 +02:00
}
2022-05-07 19:45:43 +02:00
}
@SuppressWarnings("UnstableApiUsage")
@Override
public boolean registerBus(EventBus bus, LoadController controller) {
2022-05-07 19:45:43 +02:00
bus.register(this);
return true;
}
2022-01-10 02:35:24 +01:00
}