From d3eb029e63b51730982d803d9477e01349174bd9 Mon Sep 17 00:00:00 2001 From: Fankesyooni Date: Tue, 15 Feb 2022 10:52:15 +0800 Subject: [PATCH] Change PackageParam.kt --- .../yukihookapi/hook/param/PackageParam.kt | 31 ++++++++++++------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/param/PackageParam.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/param/PackageParam.kt index 8d85c51b..13ed1703 100644 --- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/param/PackageParam.kt +++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/param/PackageParam.kt @@ -188,18 +188,7 @@ open class PackageParam(private var wrapper: PackageParamWrapper? = null) { * @param name 可填入多个类名 - 自动匹配 * @return [HookClass] */ - fun findClass(vararg name: String) = findClass(VariousClass(*name)) - - /** - * 通过 [appClassLoader] 查询并装载 [VariousClass] - * @param various 实例 - * @return [HookClass] - */ - fun findClass(various: VariousClass) = try { - various.clazz.hookClass - } catch (e: Throwable) { - HookClass(name = "VariousClass", throwable = Throwable(e.message)) - } + fun findClass(vararg name: String) = VariousClass(*name).hookClass /** * Hook 方法、构造类 @@ -215,6 +204,24 @@ open class PackageParam(private var wrapper: PackageParamWrapper? = null) { fun HookClass.hook(initiate: YukiHookCreater.() -> Unit) = YukiHookCreater(packageParam = thisParam, hookClass = bind()).apply(initiate).hook() + /** + * Hook 方法、构造类 + * @param initiate 方法体 + */ + fun VariousClass.hook(initiate: YukiHookCreater.() -> Unit) = + YukiHookCreater(packageParam = thisParam, hookClass = hookClass).apply(initiate).hook() + + /** + * [VariousClass] 转换为 [HookClass] 并绑定到 [appClassLoader] + * @return [HookClass] + */ + private val VariousClass.hookClass + get() = try { + clazz.hookClass + } catch (e: Throwable) { + HookClass(name = "VariousClass", throwable = Throwable(e.message)) + } + /** * 将目标 [Class] 绑定到 [appClassLoader] *