Package-level declarations

Types

Link copied to clipboard

事件相关拦截器入口。通过解析拦截器列表提供一个最终的入口。

Link copied to clipboard

事件拦截器的生成/构建器,用于 SimpleListenerManagerConfiguration 中。

Link copied to clipboard

监听函数执行的异常处理器。 当 SimpleEventListenerManager 中的某一个 EventListener 执行过程中出现了异常(包括其过程中所经过的拦截器或过滤器), 则本次执行内容与对应异常将会交由一个 唯一 的一场管理器进行处理,并得到一个应得的结果。

原则上异常处理器内部应当尽可能避免再次出现异常。

TODO

用于构建监听函数的构建器。

Link copied to clipboard

用于构建监听函数的构建器。

Link copied to clipboard

事件流程上下文的管理器,SimpleEventListenerManager 通过此接口实例完成对 EventProcessingContext 的统一管理。

Link copied to clipboard
Link copied to clipboard

核心监听函数管理器。

Link copied to clipboard

核心提供的事件拦截器实现, 基于函数提供外部事件逻辑。

Link copied to clipboard
class SimpleListener(targets: Set<Event.Key<*>>, attributes: AttributeContainer? = null, matcher: suspend EventListenerProcessingContext.() -> Boolean = { true }, function: suspend EventListenerProcessingContext.() -> EventResult) : EventListener

核心模块中所提供的最基础的 EventListener 实现。

Link copied to clipboard

用于构建一个 SimpleListener 监听函数。

Link copied to clipboard

使用于 EventListenerRegistrationDescriptionsGenerator.listen, 用于兼容Kotlin和Java的函数接口差异。

Link copied to clipboard
data class SimpleListenerManagerConfig(coroutineContext: CoroutineContext, exceptionHandler: (Throwable) -> EventResult? = null, processingInterceptors: IDMaps<EventProcessingInterceptor>, listenerInterceptors: IDMaps<EventListenerInterceptor>, listeners: List<EventListenerRegistrationDescription>, messageSerializersModule: SerializersModule)
Link copied to clipboard

SimpleEventListenerManager 的配置文件. 当配置文件作为构建参数的时候,他会被立即使用。

Functions

Link copied to clipboard
@JvmName(name = "simpleFilter")
fun blockingSimpleFilter(priority: Int = PriorityConstant.NORMAL, tester: Predicate<EventListenerProcessingContext>): EventFilter

使用阻塞的逻辑构建一个 EventFilter.

Link copied to clipboard

构建一个 EventListener 实例。 为不支持挂起函数的使用者准备,例如 Java 。

Link copied to clipboard

构建一个 EventListener 实例。 为不支持挂起函数的使用者准备,例如 Java 。

Link copied to clipboard
Link copied to clipboard

通过 EventProcessingContext 获取并进入 ContinuousSessionContext 的作用域中, 可以在存在 EventProcessingContext 时搭配使用:

Link copied to clipboard

EventListenerRegistrar 中注册一个监听函数。

inline fun <E : Event> EventListenerRegistrar.listen(attributes: AttributeContainer? = null, crossinline matcher: suspend EventListenerProcessingContext.(E) -> Boolean = { true }, crossinline func: suspend EventListenerProcessingContext.(E) -> EventResult): EventListener
inline fun <E : Event> EventListenerRegistrar.listen(eventKey: Event.Key<E>, attributes: AttributeContainer? = null, crossinline matcher: suspend EventListenerProcessingContext.(E) -> Boolean = { true }, crossinline func: suspend EventListenerProcessingContext.(E) -> EventResult): EventListener

EventListenerManager 中注册一个监听器。

Link copied to clipboard
@JvmName(name = "simpleListenerInterceptor")
fun listenerInterceptor4J(point: EventListenerInterceptor.Point = EventListenerInterceptor.Point.DEFAULT, priority: Int = PriorityConstant.NORMAL, interceptFunction: Function<EventListenerInterceptor.Context, EventResult>): EventListenerInterceptor

提供一个 优先级拦截函数, 得到一个流程拦截器 EventListenerInterceptor.

Link copied to clipboard
Link copied to clipboard
inline fun <E : MessageEvent, M : Message.Element<M>> SimpleListenerBuilder<E>.matchMessage(messageKey: Message.Key<M>, require: Boolean = true, crossinline matcher: suspend EventListenerProcessingContext.(E, M, index: Int) -> Boolean)

对一个消息事件 E消息元素 中指定的类型进行校验。

Link copied to clipboard
inline fun <E : MessageEvent> SimpleListenerBuilder<E>.matchText(crossinline textProvider: suspend EventListenerProcessingContext.(E) -> String)

对一个消息事件 E文本内容 进行匹配。

Link copied to clipboard

向目标 EventListener 外层包装多个 EventFilter.

向目标 EventListener 外层包装 EventFilter.

Link copied to clipboard
@JvmName(name = "simpleProcessingInterceptor")
fun processingInterceptor4J(priority: Int = PriorityConstant.NORMAL, interceptFunction: Function<EventProcessingInterceptor.Context, EventProcessingResult>): EventProcessingInterceptor

提供一个 优先级拦截函数, 得到一个流程拦截器 EventProcessingInterceptor.

Link copied to clipboard
fun <E : EventListener> E.proxy(handleMatch: suspend EventListenerProcessingContext.(E) -> Boolean = { it.match(this) }, handleInvoke: suspend EventListenerProcessingContext.(E) -> EventResult): EventListener

提供一层包装来代理目标监听函数。

Link copied to clipboard
fun simpleFilter(priority: Int = PriorityConstant.NORMAL, tester: suspend (context: EventListenerProcessingContext) -> Boolean): EventFilter

构建一个 EventFilter.

Link copied to clipboard
inline fun <E : Event> simpleListener(attributes: AttributeContainer? = null, crossinline matcher: suspend EventListenerProcessingContext.(E) -> Boolean = { true }, crossinline function: suspend EventListenerProcessingContext.(E) -> EventResult): EventListener

构建一个监听指定类型的监听函数。

inline fun simpleListener(targets: Collection<Event.Key<*>>, attributes: AttributeContainer? = null, crossinline matcher: suspend EventListenerProcessingContext.() -> Boolean = { true }, crossinline function: suspend EventListenerProcessingContext.() -> EventResult): EventListener

构建一个监听多个类型的监听函数。

inline fun <E : Event> simpleListener(target: Event.Key<E>, attributes: AttributeContainer? = null, crossinline matcher: suspend EventListenerProcessingContext.(E) -> Boolean = EventListenerProcessingContext::defaultMatcher, crossinline function: suspend EventListenerProcessingContext.(E) -> EventResult): EventListener

构建一个监听指定的类型的监听函数。

Link copied to clipboard
fun simpleListenerInterceptor(point: EventListenerInterceptor.Point = EventListenerInterceptor.Point.DEFAULT, priority: Int = PriorityConstant.NORMAL, interceptFunction: suspend (EventListenerInterceptor.Context) -> EventResult): EventListenerInterceptor

提供一个 优先级拦截函数, 得到一个流程拦截器 EventListenerInterceptor.

Link copied to clipboard
Link copied to clipboard
fun simpleProcessingInterceptor(priority: Int = PriorityConstant.NORMAL, interceptFunction: suspend (EventProcessingInterceptor.Context) -> EventProcessingResult): EventProcessingInterceptor

提供一个 优先级拦截函数, 得到一个流程拦截器 EventProcessingInterceptor.

Link copied to clipboard

提供一个匹配函数,将当前监听函数根据新的匹配函数转化为一个新的 EventListener.