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() {