Commit 7d283808 authored by Him188's avatar Him188

Rename `awaitDisconnection` to `join`

parent b59ae076
...@@ -88,10 +88,10 @@ internal abstract class QQAndroidBotBase constructor( ...@@ -88,10 +88,10 @@ internal abstract class QQAndroidBotBase constructor(
}.groups.asSequence().map { it.groupUin.shl(32) and it.groupCode } }.groups.asSequence().map { it.groupUin.shl(32) and it.groupCode }
} }
override suspend fun queryGroupInfo(id: Long): GroupInfo = network.run { override suspend fun queryGroupInfo(groupCode: Long): GroupInfo = network.run {
TroopManagement.GetGroupInfo( TroopManagement.GetGroupInfo(
client = bot.client, client = bot.client,
groupCode = id groupCode = groupCode
).sendAndExpect<GroupInfoImpl>(retry = 2) ).sendAndExpect<GroupInfoImpl>(retry = 2)
} }
......
...@@ -547,5 +547,5 @@ internal class QQAndroidBotNetworkHandler(bot: QQAndroidBot) : BotNetworkHandler ...@@ -547,5 +547,5 @@ internal class QQAndroidBotNetworkHandler(bot: QQAndroidBot) : BotNetworkHandler
super.close(cause) super.close(cause)
} }
override suspend fun awaitDisconnection() = supervisor.join() override suspend fun join() = supervisor.join()
} }
\ No newline at end of file
...@@ -33,7 +33,7 @@ import kotlin.jvm.JvmStatic ...@@ -33,7 +33,7 @@ import kotlin.jvm.JvmStatic
* 机器人对象. 一个机器人实例登录一个 QQ 账号. * 机器人对象. 一个机器人实例登录一个 QQ 账号.
* Mirai 为多账号设计, 可同时维护多个机器人. * Mirai 为多账号设计, 可同时维护多个机器人.
* *
* 注: Bot 为全协程实现, 没有其他任务时若不使用 [awaitDisconnection], 主线程将会退出. * 注: Bot 为全协程实现, 没有其他任务时若不使用 [join], 主线程将会退出.
* *
* @see Contact * @see Contact
*/ */
...@@ -144,7 +144,9 @@ abstract class Bot : CoroutineScope { ...@@ -144,7 +144,9 @@ abstract class Bot : CoroutineScope {
abstract val groups: ContactList<Group> abstract val groups: ContactList<Group>
/** /**
* 获取一个机器人加入的群. 若没有这个群, 则会抛出异常 [NoSuchElementException] * 获取一个机器人加入的群.
*
* @throws NoSuchElementException 当不存在这个群时
*/ */
fun getGroup(id: Long): Group { fun getGroup(id: Long): Group {
return groups.delegate.getOrNull(id) return groups.delegate.getOrNull(id)
...@@ -152,21 +154,23 @@ abstract class Bot : CoroutineScope { ...@@ -152,21 +154,23 @@ abstract class Bot : CoroutineScope {
} }
/** /**
* 获取群列表. 返回值前 32 bits 为 uin, 后 32 bits 为 groupCode * 向服务器查询群列表. 返回值前 32 bits 为 uin, 后 32 bits 为 groupCode
*/ */
abstract suspend fun queryGroupList(): Sequence<Long> abstract suspend fun queryGroupList(): Sequence<Long>
/** /**
* 查询群资料. 获得的仅为当前时刻的资料. * 向服务器查询群资料. 获得的仅为当前时刻的资料.
* 请优先使用 [getGroup] 然后查看群资料. * 请优先使用 [getGroup] 然后查看群资料.
*/ */
abstract suspend fun queryGroupInfo(id: Long): GroupInfo abstract suspend fun queryGroupInfo(groupCode: Long): GroupInfo
/** /**
* 查询群成员列表. * 向服务器查询群成员列表.
* 请优先使用 [getGroup], [Group.members] 查看群成员. * 请优先使用 [getGroup], [Group.members] 查看群成员.
* *
* 这个函数很慢. 请不要频繁使用. * 这个函数很慢. 请不要频繁使用.
*
* @see Group.calculateGroupUinByGroupCode 使用 groupCode 计算 groupUin
*/ */
abstract suspend fun queryGroupMemberList(groupUin: Long, groupCode: Long, ownerId: Long): Sequence<MemberInfo> abstract suspend fun queryGroupMemberList(groupUin: Long, groupCode: Long, ownerId: Long): Sequence<MemberInfo>
...@@ -184,7 +188,10 @@ abstract class Bot : CoroutineScope { ...@@ -184,7 +188,10 @@ abstract class Bot : CoroutineScope {
/** /**
* 挂起直到 [Bot] 下线. * 挂起直到 [Bot] 下线.
*/ */
suspend inline fun awaitDisconnection() = network.awaitDisconnection() suspend inline fun join() = network.join()
@Deprecated("使用 join()", ReplaceWith("this.join()"), level = DeprecationLevel.HIDDEN)
suspend inline fun awaitDisconnection() = join()
/** /**
* 登录, 或重新登录. * 登录, 或重新登录.
......
...@@ -80,9 +80,10 @@ abstract class BotNetworkHandler : CoroutineScope { ...@@ -80,9 +80,10 @@ abstract class BotNetworkHandler : CoroutineScope {
} }
/** /**
* 等待直到与服务器断开连接. 若未连接则立即返回 * 当 [Bot] 正常运作时, 这个函数将一直挂起协程到 [Bot] 被 [Bot.close]
* 当 [Bot] 离线时, 这个函数立即返回.
*/ */
abstract suspend fun awaitDisconnection() abstract suspend fun join()
/** /**
* 关闭网络接口, 停止所有有关协程和任务 * 关闭网络接口, 停止所有有关协程和任务
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment