From 9d7556eafdbec30798e4cb74b7ed12d3ddb18c20 Mon Sep 17 00:00:00 2001 From: rhunk <101876869+rhunk@users.noreply.github.com> Date: Wed, 11 Oct 2023 23:38:46 +0200 Subject: [PATCH] fix(scripting): setField java object unwrap --- .../me/rhunk/snapenhance/common/scripting/JSModule.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/common/src/main/kotlin/me/rhunk/snapenhance/common/scripting/JSModule.kt b/common/src/main/kotlin/me/rhunk/snapenhance/common/scripting/JSModule.kt index 693dfc69..61ecbf8b 100644 --- a/common/src/main/kotlin/me/rhunk/snapenhance/common/scripting/JSModule.kt +++ b/common/src/main/kotlin/me/rhunk/snapenhance/common/scripting/JSModule.kt @@ -39,7 +39,12 @@ class JSModule( moduleObject.putFunction("setField") { args -> val obj = args?.get(0) as? NativeJavaObject ?: return@putFunction Undefined.instance val name = args[1].toString() - val value = args[2] + val value = args[2].let { + when (it) { + is Wrapper -> it.unwrap() + else -> it + } + } val field = obj.unwrap().javaClass.declaredFields.find { it.name == name } ?: return@putFunction Undefined.instance field.isAccessible = true field.set(obj.unwrap(), value.toPrimitiveValue(lazy { field.type.name }))