mirror of
https://github.com/mamoe/mirai.git
synced 2025-01-09 09:50:16 +08:00
Improve login and init
This commit is contained in:
parent
288d0df738
commit
fb3fe2bcca
@ -37,7 +37,6 @@ internal class QQAndroidBotNetworkHandler(bot: QQAndroidBot) : BotNetworkHandler
|
||||
|
||||
|
||||
override suspend fun login() {
|
||||
suspend fun doLogin() {
|
||||
channel = PlatformSocket()
|
||||
channel.connect("113.96.13.208", 8080)
|
||||
launch(CoroutineName("Incoming Packet Receiver")) { processReceive() }
|
||||
@ -95,7 +94,7 @@ internal class QQAndroidBotNetworkHandler(bot: QQAndroidBot) : BotNetworkHandler
|
||||
StatSvc.Register(bot.client).sendAndExpect<StatSvc.Register.Response>()
|
||||
}
|
||||
|
||||
suspend fun doInit() {
|
||||
suspend fun init() {
|
||||
//start updating friend/group list
|
||||
bot.logger.info("Start updating friend/group list")
|
||||
/*
|
||||
@ -113,10 +112,6 @@ internal class QQAndroidBotNetworkHandler(bot: QQAndroidBot) : BotNetworkHandler
|
||||
println(data.contentToString())
|
||||
}
|
||||
|
||||
doLogin()
|
||||
doInit()
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 单线程处理包的接收, 分割和连接.
|
||||
|
@ -27,7 +27,8 @@ abstract class BotImpl<N : BotNetworkHandler> constructor(
|
||||
@Suppress("CanBePrimaryConstructorProperty") // for logger
|
||||
final override val account: BotAccount = account
|
||||
@UseExperimental(RawAccountIdUse::class)
|
||||
override val uin: Long get() = account.id
|
||||
override val uin: Long
|
||||
get() = account.id
|
||||
final override val logger: MiraiLogger by lazy { configuration.logger ?: DefaultLogger("Bot($uin)").also { configuration.logger = it } }
|
||||
|
||||
init {
|
||||
@ -98,9 +99,10 @@ abstract class BotImpl<N : BotNetworkHandler> constructor(
|
||||
}
|
||||
_network = createNetworkHandler(this.coroutineContext)
|
||||
|
||||
while (true){
|
||||
loginLoop@ while (true) {
|
||||
try {
|
||||
return _network.login()
|
||||
_network.login()
|
||||
break@loginLoop
|
||||
} catch (e: Exception) {
|
||||
e.logStacktrace()
|
||||
_network.dispose(e)
|
||||
@ -108,6 +110,17 @@ abstract class BotImpl<N : BotNetworkHandler> constructor(
|
||||
logger.warning("Login failed. Retrying in 3s...")
|
||||
delay(3000)
|
||||
}
|
||||
|
||||
while (true) {
|
||||
try {
|
||||
return _network.init()
|
||||
} catch (e: Exception) {
|
||||
e.logStacktrace()
|
||||
_network.dispose(e)
|
||||
}
|
||||
logger.warning("Init failed. Retrying in 3s...")
|
||||
delay(3000)
|
||||
}
|
||||
}
|
||||
|
||||
protected abstract fun createNetworkHandler(coroutineContext: CoroutineContext): N
|
||||
|
@ -47,6 +47,13 @@ abstract class BotNetworkHandler : CoroutineScope {
|
||||
@MiraiInternalAPI
|
||||
abstract suspend fun login()
|
||||
|
||||
/**
|
||||
* 初始化获取好友列表等值.
|
||||
*/
|
||||
@MiraiInternalAPI
|
||||
open suspend fun init() {
|
||||
}
|
||||
|
||||
/**
|
||||
* 等待直到与服务器断开连接. 若未连接则立即返回
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user