diff options
3 files changed, 11 insertions, 10 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/misc/QuickModMenuSwitch.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/QuickModMenuSwitch.kt index 5c7871a1e..2f21ebe03 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/misc/QuickModMenuSwitch.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/misc/QuickModMenuSwitch.kt @@ -4,6 +4,7 @@ import at.hannibal2.skyhanni.SkyHanniMod import at.hannibal2.skyhanni.events.RepositoryReloadEvent import at.hannibal2.skyhanni.test.command.CopyErrorCommand import at.hannibal2.skyhanni.utils.LorenzUtils +import at.hannibal2.skyhanni.utils.LorenzUtils.makeAccessible import at.hannibal2.skyhanni.utils.RenderUtils.renderStringsAndItems import at.hannibal2.skyhanni.utils.jsonobjects.ModsJson import at.hannibal2.skyhanni.utils.renderables.Renderable @@ -85,12 +86,12 @@ object QuickModMenuSwitch { private fun handleAbstractGuis(openGui: String): String { if (openGui == "gg.essential.vigilance.gui.SettingsGui") { val clazz = Class.forName("gg.essential.vigilance.gui.SettingsGui") - val titleBarDelegate = clazz.getDeclaredField("titleBar\$delegate").also { it.isAccessible = true } + val titleBarDelegate = clazz.getDeclaredField("titleBar\$delegate").makeAccessible() .get(Minecraft.getMinecraft().currentScreen) val titleBar = - titleBarDelegate.javaClass.declaredFields[0].also { it.isAccessible = true }.get(titleBarDelegate) - val gui = titleBar.javaClass.getDeclaredField("gui").also { it.isAccessible = true }.get(titleBar) - val config = gui.javaClass.getDeclaredField("config").also { it.isAccessible = true }.get(gui) + titleBarDelegate.javaClass.declaredFields[0].makeAccessible().get(titleBarDelegate) + val gui = titleBar.javaClass.getDeclaredField("gui").makeAccessible().get(titleBar) + val config = gui.javaClass.getDeclaredField("config").makeAccessible().get(gui) return config.javaClass.name } diff --git a/src/main/java/at/hannibal2/skyhanni/test/SkyHanniConfigSearchResetCommand.kt b/src/main/java/at/hannibal2/skyhanni/test/SkyHanniConfigSearchResetCommand.kt index d498d5e99..0e1c5e5e4 100644 --- a/src/main/java/at/hannibal2/skyhanni/test/SkyHanniConfigSearchResetCommand.kt +++ b/src/main/java/at/hannibal2/skyhanni/test/SkyHanniConfigSearchResetCommand.kt @@ -7,6 +7,7 @@ import at.hannibal2.skyhanni.config.core.config.Position import at.hannibal2.skyhanni.data.ProfileStorageData import at.hannibal2.skyhanni.test.command.CopyErrorCommand import at.hannibal2.skyhanni.utils.LorenzUtils +import at.hannibal2.skyhanni.utils.LorenzUtils.makeAccessible import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators import at.hannibal2.skyhanni.utils.OSUtils import com.google.gson.JsonElement @@ -178,8 +179,7 @@ object SkyHanniConfigSearchResetCommand { val line = term.split(".").drop(1) var field: Field? = null for (entry in line) { - field = obj.javaClass.getField(entry) - field.isAccessible = true + field = obj.javaClass.getField(entry).makeAccessible() parentObject = obj obj = field.get(obj) } @@ -201,8 +201,7 @@ object SkyHanniConfigSearchResetCommand { val name = field.name val fieldName = "$parentName.$name" - field.isAccessible = true - val newObj = field.get(obj) + val newObj = field.makeAccessible().get(obj) map[fieldName] = newObj if (newObj != null) { if (newObj !is Boolean && newObj !is String && newObj !is Long && newObj !is Int && newObj !is Double) { @@ -243,8 +242,6 @@ object SkyHanniConfigSearchResetCommand { } } - private fun Field.makeAccessible() = also { isAccessible = true } - private fun Any.getObjectName(): String { if (this is Position) { val x = javaClass.getDeclaredField("x").makeAccessible().get(this) diff --git a/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt index e58d05fab..183cd78d7 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt @@ -21,6 +21,7 @@ import net.minecraft.event.HoverEvent import net.minecraft.util.ChatComponentText import org.lwjgl.input.Keyboard import java.awt.Color +import java.lang.reflect.Field import java.text.DecimalFormat import java.text.NumberFormat import java.text.SimpleDateFormat @@ -410,4 +411,6 @@ object LorenzUtils { if (this == null) return emptyList() return listOf(this) } + + fun Field.makeAccessible() = also { isAccessible = true } }
\ No newline at end of file |