Add Bot.close(), improve docs

This commit is contained in:
Him188 2021-01-11 17:59:54 +08:00
parent 190a098227
commit 499a518016
2 changed files with 13 additions and 5 deletions

View File

@ -171,17 +171,21 @@ public interface Bot : CoroutineScope, ContactOrBot, UserOrBot {
public override fun nudge(): BotNudge = BotNudge(this)
/**
* 关闭这个 [Bot], 立即取消 [Bot] [SupervisorJob].
* 之后 [isActive] 将会返回 `false`.
* 关闭这个 [Bot], 立即取消 [Bot] [SupervisorJob], 取消与这个 [Bot] 相关的所有有协程联系的任务.
*
* **注意:** 不可重新登录. 必须重新实例化一个 [Bot].
*
* @param cause 原因. null 时视为正常关闭, null 时视为异常关闭
* @param cause 原因. null 时视为正常关闭, null 时视为异常关闭. 在关闭 [Bot] 作用域下的协程时将会传递这个原因.
*
* @see closeAndJoin 取消并 [Bot.join], 以确保 [Bot] 相关的活动被完全关闭
*/
public fun close(cause: Throwable? = null)
/**
* 关闭这个 [Bot]. 查看 [close] 获取更多信息.
*/
public fun close(): Unit = close(null)
public companion object {
@Suppress("ObjectPropertyName")

View File

@ -30,7 +30,7 @@ public data class BotOnlineEvent internal constructor(
) : BotActiveEvent, AbstractEvent()
/**
* [Bot] 离线.
* [Bot] 离线时广播的事件. Bot 离线不会 [关闭 Bot][Bot.close], 只会关闭 Bot 的网络层.
*/
public sealed class BotOfflineEvent : BotEvent, AbstractEvent() {
/**
@ -39,7 +39,11 @@ public sealed class BotOfflineEvent : BotEvent, AbstractEvent() {
public open val reconnect: Boolean get() = true
/**
* 主动离线. 主动广播这个事件也可以让 [Bot] 关闭.
* 主动离线.
*
* 在调用 [Bot.close] , 如果 Bot 连接正常, 将会广播 [Active].
*
* 主动广播这个事件也可以让 [Bot] 离线.
*/
public data class Active(
public override val bot: Bot,