From b0ad434af1ffb0846ec7c478b9fd6d1c61ee792e Mon Sep 17 00:00:00 2001 From: Hileb <107909747+Ecdcaeb@users.noreply.github.com> Date: Wed, 9 Oct 2024 22:47:27 +0800 Subject: [PATCH] fix gson and adjust the deeper config --- build.gradle | 2 +- .../RedirectionorConfig.java | 37 ++++++++++++++----- .../RedirectionorContainer.java | 2 +- 3 files changed, 30 insertions(+), 11 deletions(-) diff --git a/build.gradle b/build.gradle index ec83293..d27fff3 100644 --- a/build.gradle +++ b/build.gradle @@ -28,7 +28,7 @@ if (useMirror) apply from: "mirror.gradle" apply plugin: "net.minecraftforge.gradle.forge" //Only edit below this line, the above code adds and enables the necessary things for Forge to be setup. -version = "1.7 for 1.12.2-1.8.8" +version = "1.8 for 1.12.2-1.8.8" group = "com.ideallandframework.silent_assassin" // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = "redirectionor" diff --git a/src/main/java/com/Hileb/teampotato.redirectionor/RedirectionorConfig.java b/src/main/java/com/Hileb/teampotato.redirectionor/RedirectionorConfig.java index 9e4fb69..43998d3 100644 --- a/src/main/java/com/Hileb/teampotato.redirectionor/RedirectionorConfig.java +++ b/src/main/java/com/Hileb/teampotato.redirectionor/RedirectionorConfig.java @@ -6,16 +6,19 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; +import com.google.gson.JsonPrimitive; import com.google.gson.JsonSyntaxException; import net.minecraft.crash.CrashReport; import net.minecraft.launchwrapper.Launch; import net.minecraftforge.fml.common.ICrashCallable; +import sun.awt.windows.ThemeReader; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.nio.file.Files; import java.util.HashSet; +import java.util.Iterator; import java.util.Locale; /** @@ -71,13 +74,13 @@ public static JsonObject encode(){ JsonArray contains = new JsonArray(); for(String element : Config.contains){ - contains.add(element); + contains.add(new JsonPrimitive(element)); } json.add("contains", contains); JsonArray prefix = new JsonArray(); for(String element : Config.prefix){ - prefix.add(element); + prefix.add(new JsonPrimitive(element)); } json.add("prefix", prefix); @@ -158,14 +161,30 @@ public static void handleCrash(CrashReport crashReport){ if (Config.generateConfigWhenCrash){ if ("ThisIsFake".equals(crashReport.getDescription())) return; else if (Config.isBlock){ - for(StackTraceElement element : crashReport.getCrashCause().getStackTrace()){ - try{ - Class cls = Class.forName(element.getClassName(), false, Launch.classLoader); - if (cls.isEnum()){ - Config.prefix.add(cls.getName()); + Iterator iterator = new Iterator() { + public Throwable current = crashReport.getCrashCause(); + @Override + public boolean hasNext() { + return current != null; + } + + @Override + public Throwable next() { + Throwable toReturn = current; + current = toReturn.getCause(); + return toReturn; + } + }; + while (iterator.hasNext()){ + for(StackTraceElement element : iterator.next().getStackTrace()){ + try{ + Class cls = Class.forName(element.getClassName(), false, Launch.classLoader); + if (cls.isEnum()){ + Config.prefix.add(cls.getName()); + } + } catch (ClassNotFoundException ignored) { + // no ops } - } catch (ClassNotFoundException ignored) { - // no ops } } save(); diff --git a/src/main/java/com/Hileb/teampotato.redirectionor/RedirectionorContainer.java b/src/main/java/com/Hileb/teampotato.redirectionor/RedirectionorContainer.java index 77d2528..9f2f9da 100644 --- a/src/main/java/com/Hileb/teampotato.redirectionor/RedirectionorContainer.java +++ b/src/main/java/com/Hileb/teampotato.redirectionor/RedirectionorContainer.java @@ -22,7 +22,7 @@ public RedirectionorContainer(){ metadata.modId=Redirectionor.MODID; metadata.name="Redirectionor"; metadata.description="Redirectionor is the implementation of this concept, specifically for the Direction enum class stuff, to reduce the required memory of the game."; - metadata.version="1.7 for 1.12.2-1.8.8"; + metadata.version="1.8 for 1.12.2-1.8.8"; metadata.url="https://www.curseforge.com/minecraft/mc-mods/redirectionor"; metadata.logoFile="/icon_redirectionor.png"; metadata.authorList.add("MCTeamPotato");