利用注解实现添加监听事件以及对事件的处理的增强
-
案例地址:https://github.com/2938137849/miraiEventHandle
前言
之前用 kt 写插件时候感觉手动 subscribeAlways 注册事件监听写的不是那么的顺手,于是想着能不能注解实现事件监听,翻了一下 开发文档 发现还真有现成的 注解实现事件监听。
结果实际使用后感觉并不是那么良好,依然需要显示的写出对应的事件,而且只支持方法类型,感觉自由度受到了限制,于是决定自己写一个类似的注解处理机制玩玩。
简介
主要代码:miraiEventHandle/my/miraiplus
为了不跟 mirai 方法冲突保持整洁,所以将所有方法封到了 MiraiEventHandle 类里,使用只需要
private val myEventHandle = MiraiEventHandle(this)
即可。如何使用
完整案例代码:miraiEventHandle/my/example
- 在插件中加入一个属性:
val myEventHandle = MiraiEventHandle(this)
- (可选)在插件的
PluginComponentStorage.onLoad()
方法中注册注解处理类 - 在插件的
onEnable()
方法中注册任意对象,会自动将对象内所有被EventHandle
注解的成员注册监听。对于字段类型是取值,对于属性类型是调用getter,对于方法是调用方法。
若想使用的话直接 CV 大法即可,毕竟初衷只是为了注册监听顺手一点,然后抽取一些重复性的代码做成增强,顺便做了一下参数获取之类的东西
- 在插件中加入一个属性: