block

构建一个 JBlockEventInterceptor.

用于在 Java 中提供给参数为 EventInterceptor 的函数。例如:

public void run(EventInterceptor interceptor) {
// ...
}

public void run() {
run(EventInterceptors.block(context -> {
// ...
return EventResult.empty();
}));
}

而避免出现编译错误,也避免需要额外定义变量来接收 Lambda。 (因为 EventInterceptor 也是函数接口,但是单一函数被隐藏了。)


fun block(dispatcherContext: CoroutineContext = Dispatchers.IO, function: JBlockEventListener): EventListener(source)

创建一个阻塞事件处理器。

Parameters

dispatcherContext

阻塞逻辑的调度上下文。默认为 Dispatchers.IO。 会在 runInterruptible 中使用。


fun <E : Event> block(dispatcherContext: CoroutineContext = Dispatchers.IO, type: Class<E>, function: TypedJBlockEventListener<E>): EventListener(source)

创建一个阻塞事件处理器, 只处理 type 类型的事件。 其他类型的事件会直接返回 EventResult.invalid

Parameters

dispatcherContext

阻塞逻辑的调度上下文。默认为 Dispatchers.IO。 会在 runInterruptible 中使用。