mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-07 03:05:36 +08:00
Change PackageParam.kt
This commit is contained in:
@@ -188,18 +188,7 @@ open class PackageParam(private var wrapper: PackageParamWrapper? = null) {
|
|||||||
* @param name 可填入多个类名 - 自动匹配
|
* @param name 可填入多个类名 - 自动匹配
|
||||||
* @return [HookClass]
|
* @return [HookClass]
|
||||||
*/
|
*/
|
||||||
fun findClass(vararg name: String) = findClass(VariousClass(*name))
|
fun findClass(vararg name: String) = VariousClass(*name).hookClass
|
||||||
|
|
||||||
/**
|
|
||||||
* 通过 [appClassLoader] 查询并装载 [VariousClass]
|
|
||||||
* @param various 实例
|
|
||||||
* @return [HookClass]
|
|
||||||
*/
|
|
||||||
fun findClass(various: VariousClass) = try {
|
|
||||||
various.clazz.hookClass
|
|
||||||
} catch (e: Throwable) {
|
|
||||||
HookClass(name = "VariousClass", throwable = Throwable(e.message))
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Hook 方法、构造类
|
* Hook 方法、构造类
|
||||||
@@ -215,6 +204,24 @@ open class PackageParam(private var wrapper: PackageParamWrapper? = null) {
|
|||||||
fun HookClass.hook(initiate: YukiHookCreater.() -> Unit) =
|
fun HookClass.hook(initiate: YukiHookCreater.() -> Unit) =
|
||||||
YukiHookCreater(packageParam = thisParam, hookClass = bind()).apply(initiate).hook()
|
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]
|
* 将目标 [Class] 绑定到 [appClassLoader]
|
||||||
*
|
*
|
||||||
|
Reference in New Issue
Block a user