From ebe71eb21ad5c6c75ab8fdfc6095201021f83d5e Mon Sep 17 00:00:00 2001 From: fankesyooni Date: Sat, 10 Sep 2022 21:34:59 +0800 Subject: [PATCH] Added include function in Conditions in UtilsFactory --- .../yukihookapi/hook/utils/UtilsFactory.kt | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/utils/UtilsFactory.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/utils/UtilsFactory.kt index 15bb5a77..3e106dfa 100644 --- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/utils/UtilsFactory.kt +++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/utils/UtilsFactory.kt @@ -139,15 +139,26 @@ internal inline fun T.conditions(initiate: Conditions.() -> Unit) = Condi */ internal class Conditions(internal var value: T) { - /** 全部判断条件数组 */ - private val conditions = ArrayList() + /** 全部判断条件数组 (与) */ + private val popularConditions = ArrayList() + + /** 全部判断条件数组 (与成立 - 非忽略) */ + private val includeConditions = ArrayList() /** * 添加与 (and) 条件 * @param value 条件值 */ internal fun and(value: Boolean) { - conditions.add(value) + popularConditions.add(value) + } + + /** + * 添加与 (and) 后成立且不与 (and) 后忽略条件 + * @param value 条件值 + */ + internal fun include(value: Boolean) { + includeConditions.add(value) } /** @@ -165,7 +176,10 @@ internal class Conditions(internal var value: T) { * 获取条件判断结果 * @return [Boolean] */ - private val result by lazy { conditions.takeIf { it.isNotEmpty() }?.any { it.not() }?.not() == true } + private val result by lazy { + includeConditions.takeIf { it.isNotEmpty() }?.any { it.not() }?.not() == true || + popularConditions.takeIf { it.isNotEmpty() }?.any { it.not() }?.not() == true + } /** * 当条件成立