aboutsummaryrefslogtreecommitdiff
path: root/loader
diff options
context:
space:
mode:
authorsyeyoung <cyoung06@naver.com>2022-11-17 15:12:50 +0900
committersyeyoung <cyoung06@naver.com>2022-11-17 15:17:35 +0900
commitf033c34b2e2a7824df41ea750b66b21685462279 (patch)
treed55e67d6fda525f153f344c2d76d2a0c70ef57f1 /loader
parent7c8441b75d85cfcd209e3381350a231b61294346 (diff)
downloadSkyblock-Dungeons-Guide-f033c34b2e2a7824df41ea750b66b21685462279.tar.gz
Skyblock-Dungeons-Guide-f033c34b2e2a7824df41ea750b66b21685462279.tar.bz2
Skyblock-Dungeons-Guide-f033c34b2e2a7824df41ea750b66b21685462279.zip
- Add copy error
- Propagate AuthServerException - Fix Loader loading old dg Signed-off-by: syeyoung <cyoung06@naver.com>
Diffstat (limited to 'loader')
-rw-r--r--loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/auth/DgAuthUtil.java2
-rw-r--r--loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/gui/screen/GuiLoadingError.java19
-rw-r--r--loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/loader/JarLoader.java4
-rw-r--r--loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/loader/LocalLoader.java4
-rw-r--r--loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/loader/RemoteLoader.java4
5 files changed, 27 insertions, 6 deletions
diff --git a/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/auth/DgAuthUtil.java b/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/auth/DgAuthUtil.java
index 803ac41a..033427bd 100644
--- a/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/auth/DgAuthUtil.java
+++ b/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/auth/DgAuthUtil.java
@@ -64,6 +64,8 @@ public class DgAuthUtil {
}
return (T) response.getData();
+ } catch (AuthServerException e) {
+ throw e;
} catch (Exception e) {
throw new ResponseParsingException(payload, e);
} finally {
diff --git a/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/gui/screen/GuiLoadingError.java b/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/gui/screen/GuiLoadingError.java
index 436d5d8c..b61484f1 100644
--- a/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/gui/screen/GuiLoadingError.java
+++ b/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/gui/screen/GuiLoadingError.java
@@ -18,14 +18,19 @@
package kr.syeyoung.dungeonsguide.launcher.gui.screen;
+import kr.syeyoung.dungeonsguide.launcher.gui.tooltip.Notification;
+import kr.syeyoung.dungeonsguide.launcher.gui.tooltip.NotificationManager;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.*;
import net.minecraftforge.fml.common.FMLCommonHandler;
import org.lwjgl.opengl.GL11;
+import java.awt.*;
+import java.awt.datatransfer.StringSelection;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.PrintStream;
+import java.util.UUID;
public class GuiLoadingError extends SpecialGuiScreen {
private final String stacktrace;
@@ -42,6 +47,7 @@ public class GuiLoadingError extends SpecialGuiScreen {
ScaledResolution sr = new ScaledResolution(Minecraft.getMinecraft());
this.buttonList.add(new GuiButton(0, sr.getScaledWidth()/2-100,sr.getScaledHeight()-70 ,"Close Minecraft"));
this.buttonList.add(new GuiButton(1, sr.getScaledWidth()/2-100,sr.getScaledHeight()-40 ,"Play Without DG"));
+ this.buttonList.add(new GuiButton(2, 0,sr.getScaledHeight()-20 ,"Copy Error into Clipboard"));
}
@Override
@@ -51,6 +57,19 @@ public class GuiLoadingError extends SpecialGuiScreen {
FMLCommonHandler.instance().exitJava(-1,true);
} else if (button.id == 1) {
dismiss();
+ } else if (button.id == 2) {
+ Toolkit.getDefaultToolkit()
+ .getSystemClipboard()
+ .setContents(
+ new StringSelection(stacktrace),
+ null
+ );
+
+ NotificationManager.INSTANCE.updateNotification(UUID.randomUUID(), Notification.builder()
+ .title("Successfully Copied!")
+ .description("")
+ .titleColor(0xFF00FF00)
+ .build());
}
}
diff --git a/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/loader/JarLoader.java b/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/loader/JarLoader.java
index 2a448e97..dbb86dee 100644
--- a/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/loader/JarLoader.java
+++ b/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/loader/JarLoader.java
@@ -60,7 +60,7 @@ public class JarLoader implements IDGLoader {
private final HashMap<String, byte[]> loadedResources = new HashMap<String, byte[]>();
@Override
public byte[] getClassBytes(String name) throws IOException { // . separated.
- return this.loadedResources.get(name.replace(".", "/"));
+ return this.loadedResources.get(name.replace(".", "/")+".class");
}
@Override
@@ -80,7 +80,7 @@ public class JarLoader implements IDGLoader {
try {
classLoader = new JarClassLoader(this.getClass().getClassLoader(), new ZipInputStream(JarLoader.class.getResourceAsStream("/mod.jar")));
- dgInterface = (DGInterface) classLoader.loadClass("kr.syeyoung.dungeonsguide.DungeonsGuide", true).newInstance();
+ dgInterface = (DGInterface) classLoader.loadClass("kr.syeyoung.dungeonsguide.mod.DungeonsGuide", true).newInstance();
phantomReference = new PhantomReference<>(classLoader, refQueue);
return dgInterface;
} catch (Exception e) {
diff --git a/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/loader/LocalLoader.java b/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/loader/LocalLoader.java
index 267f66d8..a47b2aaf 100644
--- a/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/loader/LocalLoader.java
+++ b/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/loader/LocalLoader.java
@@ -47,7 +47,7 @@ public class LocalLoader implements IDGLoader {
}
@Override
public byte[] getClassBytes(String name) throws IOException { // . separated.
- InputStream in = convert("/"+name.replace(".", "/"));
+ InputStream in = convert("/"+name.replace(".", "/")+".class");
if (in == null) return null;
return IOUtils.toByteArray(in);
}
@@ -67,7 +67,7 @@ public class LocalLoader implements IDGLoader {
try {
classLoader = new LocalClassLoader(this.getClass().getClassLoader());
- dgInterface = (DGInterface) classLoader.loadClass("kr.syeyoung.dungeonsguide.DungeonsGuide", true).newInstance();
+ dgInterface = (DGInterface) classLoader.loadClass("kr.syeyoung.dungeonsguide.mod.DungeonsGuide", true).newInstance();
phantomReference = new PhantomReference<>(classLoader, refQueue);
return dgInterface;
} catch (Exception e) {
diff --git a/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/loader/RemoteLoader.java b/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/loader/RemoteLoader.java
index 860c5a9c..446958a0 100644
--- a/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/loader/RemoteLoader.java
+++ b/loader/src/main/java/kr/syeyoung/dungeonsguide/launcher/loader/RemoteLoader.java
@@ -67,7 +67,7 @@ public class RemoteLoader implements IDGLoader {
private final HashMap<String, byte[]> loadedResources = new HashMap<String, byte[]>();
@Override
public byte[] getClassBytes(String name) throws IOException { // . separated.
- return this.loadedResources.get(name.replace(".", "/"));
+ return this.loadedResources.get(name.replace(".", "/")+".class");
}
@Override
@@ -109,7 +109,7 @@ public class RemoteLoader implements IDGLoader {
classLoader = new JarClassLoader(this.getClass().getClassLoader(), new ZipInputStream(new ByteArrayInputStream(mod)));
- dgInterface = (DGInterface) classLoader.loadClass("kr.syeyoung.dungeonsguide.DungeonsGuide", true).newInstance();
+ dgInterface = (DGInterface) classLoader.loadClass("kr.syeyoung.dungeonsguide.mod.DungeonsGuide", true).newInstance();
phantomReference = new PhantomReference<>(classLoader, refQueue);
return dgInterface;
} catch (Exception e) {