aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kr/syeyoung/dungeonsguide/DungeonsGuide.java
diff options
context:
space:
mode:
authorsyeyoung <42869671+cyoung06@users.noreply.github.com>2020-12-08 14:54:17 +0900
committersyeyoung <42869671+cyoung06@users.noreply.github.com>2020-12-08 14:54:17 +0900
commit87e89fd42ca44400a3d3d3d5477cd1525b24d91a (patch)
tree02023a2650c2a9e4fd2d47f64cb91ec614a28556 /src/main/java/kr/syeyoung/dungeonsguide/DungeonsGuide.java
parent055520e1d8313a302f58babc6526d95bf22b471f (diff)
downloadSkyblock-Dungeons-Guide-87e89fd42ca44400a3d3d3d5477cd1525b24d91a.tar.gz
Skyblock-Dungeons-Guide-87e89fd42ca44400a3d3d3d5477cd1525b24d91a.tar.bz2
Skyblock-Dungeons-Guide-87e89fd42ca44400a3d3d3d5477cd1525b24d91a.zip
authentication stuff and network loading
Diffstat (limited to 'src/main/java/kr/syeyoung/dungeonsguide/DungeonsGuide.java')
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/DungeonsGuide.java90
1 files changed, 87 insertions, 3 deletions
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/DungeonsGuide.java b/src/main/java/kr/syeyoung/dungeonsguide/DungeonsGuide.java
index bcbcbe0a..de1b0067 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/DungeonsGuide.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/DungeonsGuide.java
@@ -1,21 +1,32 @@
package kr.syeyoung.dungeonsguide;
+import com.mojang.authlib.exceptions.AuthenticationException;
import kr.syeyoung.dungeonsguide.commands.*;
import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoomInfoRegistry;
import lombok.Getter;
import net.minecraft.client.Minecraft;
-import net.minecraft.command.CommandDebug;
-import net.minecraft.init.Blocks;
+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.client.ClientCommandHandler;
+import net.minecraftforge.client.event.GuiOpenEvent;
import net.minecraftforge.common.MinecraftForge;
+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 net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import org.apache.commons.io.IOUtils;
+import javax.crypto.BadPaddingException;
+import javax.crypto.IllegalBlockSizeException;
+import javax.crypto.NoSuchPaddingException;
import java.io.*;
+import java.security.InvalidAlgorithmParameterException;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
@Mod(modid = DungeonsGuide.MODID, version = DungeonsGuide.VERSION)
public class DungeonsGuide
@@ -72,7 +83,23 @@ public class DungeonsGuide
}
}
}
- DungeonRoomInfoRegistry.loadAll(configDir);
+ try {
+ DungeonRoomInfoRegistry.loadAll();
+ } catch (BadPaddingException e) {
+ e.printStackTrace();
+ } catch (InvalidAlgorithmParameterException e) {
+ e.printStackTrace();
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } catch (IllegalBlockSizeException e) {
+ e.printStackTrace();
+ } catch (NoSuchPaddingException e) {
+ e.printStackTrace();
+ } catch (InvalidKeyException e) {
+ e.printStackTrace();
+ }
Keybinds.register();
}
@@ -88,9 +115,66 @@ public class DungeonsGuide
@Getter
private File configDir;
+ @Getter
+ private Authenticator authenticator;
+ private NetworkClassLoader classLoader;
@EventHandler
public void pre(FMLPreInitializationEvent event) {
configDir = new File(event.getModConfigurationDirectory(),"dungeonsguide");
+
+ authenticator = new Authenticator();
+ String token = null;
+ try {
+ token = authenticator.authenticate();
+ System.out.println(token);
+ if (token != null) {
+ classLoader = new NetworkClassLoader(authenticator);
+ Thread.currentThread().setContextClassLoader(classLoader);
+ return;
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ } catch (AuthenticationException e) {
+ e.printStackTrace();
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ }
+
+ 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();
+ String[] s_msg = 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"
+ };
+ 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 SkyblockStatus getSkyblockStatus() {