ModUpdater/src/main/java/com/thebrokenrail/modupdater/ModUpdater.java

51 lines
1.5 KiB
Java
Raw Normal View History

2020-06-24 02:04:22 +00:00
package com.thebrokenrail.modupdater;
import com.thebrokenrail.modupdater.strategy.ModUpdateStrategies;
import com.thebrokenrail.modupdater.util.ModUpdate;
import net.fabricmc.api.ModInitializer;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
2020-06-24 18:03:02 +00:00
import java.util.Objects;
2020-06-24 02:04:22 +00:00
public class ModUpdater implements ModInitializer {
public static final String NAMESPACE = "modupdater";
private static final String LOGGER_NAME = "ModUpdater";
2020-06-24 14:02:31 +00:00
public static Logger getLogger() {
2020-06-24 02:04:22 +00:00
return LogManager.getLogger(LOGGER_NAME);
}
public static void invalidModUpdaterConfig(String modID) {
getLogger().warn("Invalid JSON Configuration: " + modID);
}
2020-06-24 18:21:26 +00:00
private static volatile ModUpdate[] updates;
2020-06-24 02:04:22 +00:00
2020-06-24 18:03:02 +00:00
private static Thread updateThread;
2020-06-24 02:04:22 +00:00
public static ModUpdate[] getUpdates() {
if (updates == null) {
2020-06-24 18:03:02 +00:00
if (Thread.currentThread() == updateThread) {
updates = ModUpdateStrategies.findAvailableUpdates();
} else {
return null;
}
2020-06-24 02:04:22 +00:00
}
return updates;
}
@Override
public void onInitialize() {
2020-06-24 18:03:02 +00:00
updateThread = new Thread(() -> {
getLogger().info("Checking For Mod Updates...");
for (ModUpdate update : Objects.requireNonNull(getUpdates())) {
getLogger().info(update.text + " (" + update.downloadURL + ')');
}
getLogger().info(updates.length + " Mod Update(s) Found");
});
2020-06-24 18:21:26 +00:00
updateThread.start();
2020-06-24 02:04:22 +00:00
}
}