commit 9d7556eafdbec30798e4cb74b7ed12d3ddb18c20
parent 3cd628f7cfa326e02b49f3804a5dbd07bc74ab96
Author: rhunk <101876869+rhunk@users.noreply.github.com>
Date:   Wed, 11 Oct 2023 23:38:46 +0200

fix(scripting): setField java object unwrap

Diffstat:
Mcommon/src/main/kotlin/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 @@ -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 }))