mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-06 02:35:40 +08:00
Added hasThrowable, throwable, resultOrThrowable function in HookParam
This commit is contained in:
@@ -30,6 +30,7 @@
|
||||
package com.highcapable.yukihookapi.hook.param
|
||||
|
||||
import com.highcapable.yukihookapi.hook.core.YukiMemberHookCreater
|
||||
import com.highcapable.yukihookapi.hook.core.YukiMemberHookCreater.MemberHookCreater
|
||||
import com.highcapable.yukihookapi.hook.param.wrapper.HookParamWrapper
|
||||
import java.lang.reflect.Constructor
|
||||
import java.lang.reflect.Member
|
||||
@@ -108,6 +109,35 @@ class HookParam internal constructor(private val createrInstance: YukiMemberHook
|
||||
wrapper?.result = value
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是否存在设置过的方法调用抛出异常
|
||||
* @return [Boolean]
|
||||
*/
|
||||
val hasThrowable get() = wrapper?.hasThrowable
|
||||
|
||||
/**
|
||||
* 获取、设置方法调用抛出的异常
|
||||
*
|
||||
* 仅会在回调方法的 [MemberHookCreater.beforeHook] or [MemberHookCreater.afterHook] 中生效
|
||||
*
|
||||
* 你可以使用 [hasThrowable] 判断当前是否存在被抛出的异常
|
||||
*
|
||||
* - ❗设置后会同时执行 [resultNull] 方法并将异常抛出给当前宿主 APP
|
||||
* @return [Throwable] or null
|
||||
* @throws Throwable
|
||||
*/
|
||||
var throwable: Throwable?
|
||||
get() = wrapper?.throwable
|
||||
set(value) {
|
||||
wrapper?.throwable = value
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取 [result] 或 [throwable] - 存在 [throwable] 时优先返回
|
||||
* @return [Any] or [Throwable] or null
|
||||
*/
|
||||
val resultOrThrowable get() = wrapper?.resultOrThrowable
|
||||
|
||||
/**
|
||||
* 获取当前 Hook 对象的 [method] or [constructor] 的返回值 [T]
|
||||
* @return [T] or null
|
||||
|
@@ -71,7 +71,7 @@ class HookParamWrapper internal constructor(private var baseParam: XC_MethodHook
|
||||
val args: Array<Any?>? get() = baseParam?.args
|
||||
|
||||
/**
|
||||
* 方法、设置方法结果
|
||||
* 获取、设置方法结果
|
||||
* @return [Any] or null
|
||||
*/
|
||||
var result: Any?
|
||||
@@ -80,6 +80,29 @@ class HookParamWrapper internal constructor(private var baseParam: XC_MethodHook
|
||||
baseParam?.result = value
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是否存在设置过的方法调用抛出异常
|
||||
* @return [Boolean]
|
||||
*/
|
||||
val hasThrowable get() = baseParam?.hasThrowable() ?: false
|
||||
|
||||
/**
|
||||
* 获取、设置方法调用抛出的异常
|
||||
* @return [Throwable] or null
|
||||
* @throws Throwable
|
||||
*/
|
||||
var throwable: Throwable?
|
||||
get() = baseParam?.throwable
|
||||
set(value) {
|
||||
baseParam?.throwable = value
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取 [result] 或 [throwable] - 存在 [throwable] 时优先返回
|
||||
* @return [Any] or null
|
||||
*/
|
||||
val resultOrThrowable get() = baseParam?.resultOrThrowable
|
||||
|
||||
/**
|
||||
* 设置方法参数
|
||||
* @param index 数组下标
|
||||
|
Reference in New Issue
Block a user