mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-05 18:25:28 +08:00
refactor: disable hook when got empty members and optimize some functions
This commit is contained in:
@@ -98,7 +98,8 @@ class YukiMemberHookCreator internal constructor(private val packageParam: Packa
|
|||||||
initiate: YukiMemberHookCreator.MemberHookCreator.() -> Unit
|
initiate: YukiMemberHookCreator.MemberHookCreator.() -> Unit
|
||||||
): YukiMemberHookCreator.MemberHookCreator.Result {
|
): YukiMemberHookCreator.MemberHookCreator.Result {
|
||||||
val creator = YukiMemberHookCreator(packageParam, HookClass.createPlaceholder())
|
val creator = YukiMemberHookCreator(packageParam, HookClass.createPlaceholder())
|
||||||
val result = creator.injectMember(priority) { if (members.isNotEmpty()) members(*members.toTypedArray()); apply(initiate) }
|
if (members.isEmpty()) return creator.createMemberHook(priority).build()
|
||||||
|
val result = creator.injectMember(priority) { members(*members.toTypedArray()); apply(initiate) }
|
||||||
creator.hook()
|
creator.hook()
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
@@ -181,7 +182,7 @@ class YukiMemberHookCreator internal constructor(private val packageParam: Packa
|
|||||||
*/
|
*/
|
||||||
@LegacyHookApi
|
@LegacyHookApi
|
||||||
inline fun injectMember(priority: YukiHookPriority = YukiHookPriority.DEFAULT, initiate: MemberHookCreator.() -> Unit) =
|
inline fun injectMember(priority: YukiHookPriority = YukiHookPriority.DEFAULT, initiate: MemberHookCreator.() -> Unit) =
|
||||||
MemberHookCreator(priority).apply(initiate).apply { preHookMembers[toString()] = this }.build()
|
createMemberHook(priority).apply(initiate).apply { preHookMembers[toString()] = this }.build()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 注入要 Hook 的 [Method]、[Constructor]
|
* 注入要 Hook 的 [Method]、[Constructor]
|
||||||
@@ -276,6 +277,13 @@ class YukiMemberHookCreator internal constructor(private val packageParam: Packa
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建 [MemberHookCreator]
|
||||||
|
* @param priority Hook 优先级
|
||||||
|
* @return [MemberHookCreator]
|
||||||
|
*/
|
||||||
|
private fun createMemberHook(priority: YukiHookPriority) = MemberHookCreator(priority)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Hook 核心功能实现类
|
* Hook 核心功能实现类
|
||||||
*
|
*
|
||||||
@@ -807,6 +815,7 @@ class YukiMemberHookCreator internal constructor(private val packageParam: Packa
|
|||||||
* @param result 回调错误
|
* @param result 回调错误
|
||||||
* @return [Result] 可继续向下监听
|
* @return [Result] 可继续向下监听
|
||||||
*/
|
*/
|
||||||
|
@LegacyHookApi
|
||||||
fun onNoSuchMemberFailure(result: (Throwable) -> Unit): Result {
|
fun onNoSuchMemberFailure(result: (Throwable) -> Unit): Result {
|
||||||
onNoSuchMemberFailureCallback = result
|
onNoSuchMemberFailureCallback = result
|
||||||
return this
|
return this
|
||||||
@@ -816,6 +825,7 @@ class YukiMemberHookCreator internal constructor(private val packageParam: Packa
|
|||||||
* 忽略 [members] 不存在发生的错误
|
* 忽略 [members] 不存在发生的错误
|
||||||
* @return [Result] 可继续向下监听
|
* @return [Result] 可继续向下监听
|
||||||
*/
|
*/
|
||||||
|
@LegacyHookApi
|
||||||
fun ignoredNoSuchMemberFailure() = onNoSuchMemberFailure {}
|
fun ignoredNoSuchMemberFailure() = onNoSuchMemberFailure {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user