From 296bad085a21fbc6aa0dc5a3b935bb6e17ca0db5 Mon Sep 17 00:00:00 2001 From: Andrea Bonari <52862005+spartacus04@users.noreply.github.com> Date: Wed, 17 Jan 2024 18:49:21 +0100 Subject: [PATCH] Fix an issue with config loading & compiling --- build.gradle.kts | 9 ++++++--- proguard-rules.pro | 3 ++- .../java/me/spartacus04/jext/config/ConfigFactory.kt | 1 + src/main/java/me/spartacus04/jext/gui/GuiBuilder.kt | 2 -- src/main/java/me/spartacus04/jext/utils/FileBind.kt | 8 +++++++- 5 files changed, 16 insertions(+), 7 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 8b950d8f..f482be5a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -86,7 +86,10 @@ tasks { exclude("ScopeJVMKt.class") exclude("DebugProbesKt.bin") - minimize() + + minimize{ + exclude(dependency("xyz.xenondevs.invui:.*:.*")) + } } } @@ -105,9 +108,9 @@ tasks.register("proguardJar") { injars(tasks.shadowJar.flatMap { it.archiveFile }) - outjars("build/libs/${rootProject.name}_${project.version}.jar") - configuration("proguard-rules.pro") + + outjars("build/libs/${rootProject.name}_${project.version}.jar") } tasks.processResources { diff --git a/proguard-rules.pro b/proguard-rules.pro index 06dd273a..f966959f 100644 --- a/proguard-rules.pro +++ b/proguard-rules.pro @@ -50,8 +50,9 @@ -keep class * implements com.google.gson.TypeAdapterFactory -keep class * implements com.google.gson.JsonSerializer -keep class * implements com.google.gson.JsonDeserializer --keepclassmembers,allowobfuscation class * { +-keepclassmembers class * { @com.google.gson.annotations.SerializedName ; } +-keepattributes *Annotation*,EventHandler -keep,allowobfuscation,allowshrinking class com.google.gson.reflect.TypeToken -keep,allowobfuscation,allowshrinking class * extends com.google.gson.reflect.TypeToken \ No newline at end of file diff --git a/src/main/java/me/spartacus04/jext/config/ConfigFactory.kt b/src/main/java/me/spartacus04/jext/config/ConfigFactory.kt index a1143f4a..89e50b0d 100644 --- a/src/main/java/me/spartacus04/jext/config/ConfigFactory.kt +++ b/src/main/java/me/spartacus04/jext/config/ConfigFactory.kt @@ -180,6 +180,7 @@ object ConfigFactory { if(PLUGIN.dataFolder.resolve("config.json").exists()) { updateOldConfig() } + return FileBind.create(Config::class.java) } } diff --git a/src/main/java/me/spartacus04/jext/gui/GuiBuilder.kt b/src/main/java/me/spartacus04/jext/gui/GuiBuilder.kt index defb3d83..0aaf3261 100644 --- a/src/main/java/me/spartacus04/jext/gui/GuiBuilder.kt +++ b/src/main/java/me/spartacus04/jext/gui/GuiBuilder.kt @@ -81,7 +81,5 @@ class GuiBuilder { .addIngredient('#', border) .setContent(listOf(inventory)) } - - } } \ No newline at end of file diff --git a/src/main/java/me/spartacus04/jext/utils/FileBind.kt b/src/main/java/me/spartacus04/jext/utils/FileBind.kt index 051d9deb..0f78d46d 100644 --- a/src/main/java/me/spartacus04/jext/utils/FileBind.kt +++ b/src/main/java/me/spartacus04/jext/utils/FileBind.kt @@ -30,7 +30,13 @@ open class FileBind(@Transient private val filePath: String, @Transient private } } - gson.fromJson(file.readText(), typeToken) + val obj = gson.fromJson(file.readText(), typeToken) + + obj.javaClass.declaredFields.forEach { field -> + field.isAccessible = true + + field.set(this, field.get(obj)) + } } fun save() {