import{_ as s,o as e,c as o,a}from"./app-CLu4Xwf8.js";const n={},l=a(`
注意
由于维护成本,YukiHookAPI 从 1.3.0 版本开始将不再会对此文档进行更新且在 2.0.0 版本切换为 Dokka 插件自动生成的 API 文档。
class FieldFinder internal constructor(override val classSet: Class<*>?) : MemberBaseFinder
变更记录
v1.0 添加
v1.0.2 修改
合并到 BaseFinder
v1.1.0 修改
合并到 MemberBaseFinder
v1.1.8 修改
移动 hookInstance 参数到 MemberBaseFinder.MemberHookerManager
功能描述
Field查找类。
可通过指定类型查找指定 Field 或一组 Field。
变更记录
v1.0 添加
v1.0.2 移除
var name: String
变更记录
v1.0 添加
v1.0.70 修改
允许不填写名称
功能描述
设置
Field名称。
特别注意
若不填写名称则必须存在一个其它条件。
var type: Any?
变更记录
v1.0 添加
功能描述
设置
Field类型。
可不填写类型。
fun modifiers(conditions: ModifierConditions): IndexTypeCondition
变更记录
v1.0.67 新增
v1.0.80 修改
将方法体进行 inline
v1.1.0 修改
合并到 ModifierConditions
功能描述
设置
Field标识符筛选条件。
可不设置筛选条件。
特别注意
存在多个 IndexTypeCondition 时除了 order 只会生效最后一个。
fun order(): IndexTypeCondition
变更记录
v1.0.70 新增
功能描述
顺序筛选字节码的下标。
fun name(value: String): IndexTypeCondition
变更记录
v1.0.70 新增
功能描述
设置
Field名称。
特别注意
若不填写名称则必须存在一个其它条件。
存在多个 IndexTypeCondition 时除了 order 只会生效最后一个。
fun name(conditions: NameConditions): IndexTypeCondition
变更记录
v1.0.88 新增
v1.1.0 修改
合并到 NameConditions
功能描述
设置
Field名称条件。
特别注意
若不填写名称则必须存在一个其它条件。
存在多个 IndexTypeCondition 时除了 order 只会生效最后一个。
fun type(value: Any): IndexTypeCondition
变更记录
v1.0.70 新增
功能描述
设置
Field类型。
可不填写类型。
特别注意
存在多个 IndexTypeCondition 时除了 order 只会生效最后一个。
fun type(conditions: ObjectConditions): IndexTypeCondition
变更记录
v1.1.5 新增
功能描述
设置
Field类型条件。
可不填写类型。
特别注意
存在多个 IndexTypeCondition 时除了 order 只会生效最后一个。
fun superClass(isOnlySuperClass: Boolean)
变更记录
v1.0.80 新增
功能描述
设置在
classSet的所有父类中查找当前Field。
注意
若当前 classSet 的父类较多可能会耗时,API 会自动循环到父类继承是 Any 前的最后一个类。
inner class RemedyPlan internal constructor()
变更记录
v1.1.0 新增
功能描述
Field重查找实现类,可累计失败次数直到查找成功。
inline fun field(initiate: FieldConditions): Result
变更记录
v1.1.0 新增
功能描述
创建需要重新查找的
Field。
你可以添加多个备选 Field,直到成功为止,若最后依然失败,将停止查找并输出错误日志。
inner class Result internal constructor()
变更记录
v1.1.0 新增
功能描述
RemedyPlan结果实现类。
fun onFind(initiate: MutableList<Field>.() -> Unit)
变更记录
v1.1.0 新增
v1.2.0 修改
initiate 类型由 HashSet 修改为 MutableList
功能描述
当在
RemedyPlan中找到结果时。
功能示例
你可以方便地对重查找的 Field 实现 onFind 方法。
示例如下
field {
// Your code here.
}.onFind {
// Your code here.
}
inner class Result internal constructor(internal val isNoSuch: Boolean, internal val throwable: Throwable?) : BaseResult
变更记录
v1.0 添加
v1.1.0 修改
继承到接口 BaseResult
功能描述
Field查找结果实现类。
inline fun result(initiate: Result.() -> Unit): Result
变更记录
v1.0 添加
v1.0.80 修改
将方法体进行 inline
功能描述
创建监听结果事件方法体。
功能示例
你可以使用 lambda 形式创建 Result 类。
示例如下
field {
// Your code here.
}.result {
get(instance).set("something")
get(instance).string()
get(instance).cast<CustomClass>()
get().boolean()
all(instance)
give()
giveAll()
onNoSuchField {}
}
fun get(instance: Any?): Instance
变更记录
v1.0 添加
功能描述
获得
Field实例处理类。
若有多个 Field 结果只会返回第一个。
功能示例
你可以轻松地得到 Field 的实例以及使用它进行设置实例。
示例如下
field {
// Your code here.
}.get(instance).set("something")
如果你取到的是静态 Field,可以不需要设置实例。
示例如下
field {
// Your code here.
}.get().set("something")
fun all(instance: Any?): MutableList<Instance>
变更记录
v1.1.0 新增
v1.2.0 修改
返回值类型由 ArrayList 修改为 MutableList
功能描述
获得
Field实例处理类数组。
返回全部查找条件匹配的多个 Field 实例结果。
功能示例
你可以通过此方法来获得当前条件结果中匹配的全部 Field,其 Field 所在实例用法与 get 相同。
示例如下
field {
// Your code here.
}.all(instance).forEach { instance ->
instance.self
}
fun give(): Field?
变更记录
v1.0 添加
功能描述
得到
Field本身。
若有多个 Field 结果只会返回第一个。
在查找条件找不到任何结果的时候将返回 null。
fun giveAll(): MutableList<Field>
变更记录
v1.1.0 新增
v1.2.0 修改
返回值类型由 HashSet 修改为 MutableList
功能描述
得到
Field本身数组。
返回全部查找条件匹配的多个 Field 实例。
在查找条件找不到任何结果的时候将返回空的 MutableList。
fun wait(instance: Any?, initiate: Instance.() -> Unit)
变更记录
v1.1.0 新增
功能描述
获得
Field实例处理类,配合RemedyPlan使用。
若有多个 Field 结果只会返回第一个。
特别注意
若你设置了 remedys 必须使用此方法才能获得结果。
若你没有设置 remedys 此方法将不会被回调。
fun waitAll(instance: Any?, initiate: MutableList<Instance>.() -> Unit)
变更记录
v1.1.0 新增
v1.2.0 修改
initiate 类型由 ArrayList 修改为 MutableList
功能描述
获得
Field实例处理类数组,配合RemedyPlan使用。
返回全部查找条件匹配的多个 Field 实例结果。
特别注意
若你设置了 remedys 必须使用此方法才能获得结果。
若你没有设置 remedys 此方法将不会被回调。
inline fun remedys(initiate: RemedyPlan.() -> Unit): Result
变更记录
v1.1.0 新增
功能描述
创建
Field重查找功能。
功能示例
当你遇到一种 Field 可能存在不同形式的存在时,可以使用 RemedyPlan 重新查找它,而没有必要使用 onNoSuchField 捕获异常二次查找 Field。
若第一次查找失败了,你还可以在这里继续添加此方法体直到成功为止。
示例如下
field {
// Your code here.
}.remedys {
field {
// Your code here.
}
field {
// Your code here.
}
}
fun onNoSuchField(result: (Throwable) -> Unit): Result
变更记录
v1.0 添加
功能描述
监听找不到
Field时。
fun ignored(): Result
变更记录
v1.1.0 新增
功能描述
忽略异常并停止打印任何错误日志。
若 MemberBaseFinder.MemberHookerManager.isNotIgnoredNoSuchMemberFailure 为 false 则自动忽略。
注意
此时若要监听异常结果,你需要手动实现 onNoSuchField 方法。
变更记录
v1.0.3 新增
v1.1.0 作废
请迁移到新方法 ignored()
inner class Instance internal constructor(private val instance: Any?, private val field: Field?)
变更记录
v1.0 添加
v1.1.0 修改
新增 field 参数
不再对外公开 self 参数
功能描述
Field实例变量处理类。
变更记录
v1.0 添加
v1.1.0 移除
请直接使用 any 方法得到 Field 自身的实例化对象
fun current(ignored: Boolean): CurrentClass?
inline fun current(ignored: Boolean, initiate: CurrentClass.() -> Unit): Any?
变更记录
v1.1.0 新增
功能描述
获得当前
Field自身self实例的类操作对象CurrentClass。
fun <T> cast(): T?
变更记录
v1.0 添加
v1.0.68 修改
修改 为 ofcast
移动方法到 Instance
功能描述
得到当前
Field实例。
fun byte(): Byte?
变更记录
v1.0.68 新增
功能描述
得到当前
FieldByte 实例。
fun int(): Int
变更记录
v1.0.65 新增
v1.0.68 修改
修改 为 ofIntint
移动方法到 Instance
功能描述
得到当前
FieldInt 实例。
fun long(): Long
变更记录
v1.0.65 新增
v1.0.68 修改
修改 为 ofLonglong
移动方法到 Instance
功能描述
得到当前
FieldLong 实例。
fun short(): Short
变更记录
v1.0.65 新增
v1.0.68 修改
修改 为 ofShortshort
移动方法到 Instance
功能描述
得到当前
FieldShort 实例。
fun double(): Double
变更记录
v1.0.65 新增
v1.0.68 修改
修改 为 ofDoubledouble
移动方法到 Instance
功能描述
得到当前
FieldDouble 实例。
fun float(): Float
变更记录
v1.0.65 新增
v1.0.68 修改
修改 为 ofFloatfloat
移动方法到 Instance
功能描述
得到当前
FieldFloat 实例。
fun string(): String
变更记录
v1.0.65 新增
v1.0.68 修改
修改 为 ofStringstring
移动方法到 Instance
功能描述
得到当前
FieldString 实例。
fun char(): Char
变更记录
v1.0.68 新增
功能描述
得到当前
FieldChar 实例。
fun boolean(): Boolean
变更记录
v1.0.65 新增
v1.0.68 修改
修改 为 ofBooleanboolean
移动方法到 Instance
功能描述
得到当前
FieldBoolean 实例。
fun any(): Any?
变更记录
v1.0.65 新增
v1.0.68 修改
修改 为 ofAnyany
移动方法到 Instance
功能描述
得到当前
FieldAny 实例。
inline fun <reified T> array(): Array<T>
变更记录
v1.0.68 新增
功能描述
得到当前
FieldArray 实例。
inline fun <reified T> list(): List<T>
变更记录
v1.0.68 新增
功能描述
得到当前
FieldList 实例。
fun set(any: Any?)
变更记录
v1.0 添加
功能描述
设置当前
Field实例。
fun setTrue()
变更记录
v1.0 添加
功能描述
设置当前
Field实例为true。
特别注意
请确保实例对象类型为 Boolean。
fun setFalse()
变更记录
v1.0 添加
功能描述
设置当前
Field实例为false。
特别注意
请确保实例对象类型为 Boolean。
fun setNull()
变更记录
v1.0 添加
功能描述
`,387),p=[l];function c(t,d){return e(),o("div",null,p)}const i=s(n,[["render",c],["__file","FieldFinder.html.vue"]]);export{i as default};设置当前
Field实例为null。