aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kr/syeyoung/dungeonsguide/DungeonsGuideMain.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/kr/syeyoung/dungeonsguide/DungeonsGuideMain.java')
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/DungeonsGuideMain.java133
1 files changed, 133 insertions, 0 deletions
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/DungeonsGuideMain.java b/src/main/java/kr/syeyoung/dungeonsguide/DungeonsGuideMain.java
new file mode 100644
index 00000000..1c35524d
--- /dev/null
+++ b/src/main/java/kr/syeyoung/dungeonsguide/DungeonsGuideMain.java
@@ -0,0 +1,133 @@
+package kr.syeyoung.dungeonsguide;
+
+import com.mojang.authlib.exceptions.AuthenticationException;
+import lombok.Getter;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.gui.FontRenderer;
+import net.minecraft.client.gui.GuiErrorScreen;
+import net.minecraft.client.gui.GuiScreen;
+import net.minecraft.util.IChatComponent;
+import net.minecraftforge.fml.client.CustomModLoadingErrorDisplayException;
+import net.minecraftforge.fml.common.Mod;
+import net.minecraftforge.fml.common.Mod.EventHandler;
+import net.minecraftforge.fml.common.event.FMLInitializationEvent;
+import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
+
+import java.io.*;
+import java.security.NoSuchAlgorithmException;
+
+@Mod(modid = DungeonsGuideMain.MODID, version = DungeonsGuideMain.VERSION)
+public class DungeonsGuideMain
+{
+ public static final String MODID = "skyblock_dungeons_guide";
+ public static final String VERSION = "0.1";
+
+ private static DungeonsGuideMain DungeonsGuideMain;
+
+ private DungeonsGuideInterface dungeonsGuideInterface;
+
+ @EventHandler
+ public void init(FMLInitializationEvent event)
+ {
+
+ DungeonsGuideMain = this;
+
+ dungeonsGuideInterface.init(event);
+ }
+
+ @Getter
+ private Authenticator authenticator;
+ private NetworkClassLoader classLoader;
+ @EventHandler
+ public void pre(FMLPreInitializationEvent event) {
+ authenticator = new Authenticator();
+ String token = null;
+ try {
+ token = authenticator.authenticate();
+ System.out.println(token);
+ if (token != null) {
+ classLoader = new NetworkClassLoader(authenticator, DungeonsGuide.class.getClassLoader());
+
+ Class skyblockStatusCls = null;
+ try {
+ skyblockStatusCls = classLoader.findClass("kr.syeyoung.dungeonsguide.DungeonsGuide");
+ } catch (ClassNotFoundException e) {
+ e.printStackTrace();
+
+ error(new String[]{
+ "Couldn't load Dungeons Guide",
+ "Please contact developer if this problem persists after restart"
+ });
+ return;
+ }
+ try {
+ dungeonsGuideInterface = (DungeonsGuideInterface) skyblockStatusCls.newInstance();
+ dungeonsGuideInterface.pre(event);
+ } catch (InstantiationException e) {
+ e.printStackTrace();
+
+ error(new String[]{
+ "Couldn't load Dungeons Guide",
+ "Please contact developer if this problem persists after restart"
+ });
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+
+ error(new String[]{
+ "Couldn't load Dungeons Guide",
+ "Please contact developer if this problem persists after restart"
+ });
+ }
+ return;
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ } catch (AuthenticationException e) {
+ e.printStackTrace();
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ }
+
+ error(new String[]{
+ "Can't validate current installation of Dungeons Guide",
+ "Please contact mod author if you purchased this mod and getting this error",
+ "And if you haven't purchased the mod, please consider doing so"
+ });
+ }
+
+ public void error(final String[] s_msg) {
+ final GuiScreen errorGui = new GuiErrorScreen(null, null) {
+
+ @Override
+ public void handleMouseInput() {
+ }
+
+ @Override
+ public void handleKeyboardInput() {
+ }
+
+ @Override
+ public void drawScreen(int par1, int par2, float par3) {
+ drawDefaultBackground();
+ for (int i = 0; i < s_msg.length; ++i) {
+ drawCenteredString(fontRendererObj, s_msg[i], width / 2, height / 3 + 12 * i, 0xFFFFFFFF);
+ }
+ }
+ };
+ @SuppressWarnings("serial") CustomModLoadingErrorDisplayException e = new CustomModLoadingErrorDisplayException() {
+
+ @Override
+ public void initGui(GuiErrorScreen errorScreen, FontRenderer fontRenderer) {
+ Minecraft.getMinecraft().displayGuiScreen(errorGui);
+ }
+
+ @Override
+ public void drawScreen(GuiErrorScreen errorScreen, FontRenderer fontRenderer, int mouseRelX, int mouseRelY, float tickTime) {
+ }
+ };
+ throw e;
+ }
+ public static DungeonsGuideMain getDungeonsGuideMain() {
+ return DungeonsGuideMain;
+ }
+}