diff options
author | syeyoung <42869671+cyoung06@users.noreply.github.com> | 2020-12-08 14:54:17 +0900 |
---|---|---|
committer | syeyoung <42869671+cyoung06@users.noreply.github.com> | 2020-12-08 14:54:17 +0900 |
commit | 87e89fd42ca44400a3d3d3d5477cd1525b24d91a (patch) | |
tree | 02023a2650c2a9e4fd2d47f64cb91ec614a28556 /src/main/java/kr/syeyoung/dungeonsguide/DungeonsGuide.java | |
parent | 055520e1d8313a302f58babc6526d95bf22b471f (diff) | |
download | Skyblock-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.java | 90 |
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() { |