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:
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 }))