mirror of
https://github.com/mamoe/mirai.git
synced 2025-04-24 20:43:33 +08:00
Replace all deprecated api usages
This commit is contained in:
parent
d1419824a9
commit
80a6d1bc23
UpdateLog.md
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet
mirai-core-timpc/src/commonMain/kotlin/net.mamoe.mirai.timpc
TIMPCBot.kt
network
mirai-core/src/commonMain/kotlin/net.mamoe.mirai
@ -2,6 +2,11 @@
|
||||
|
||||
开发版本. 频繁更新, 不保证高稳定性
|
||||
|
||||
## `0.11.0` *UNRELEASED*
|
||||
### mirai-core
|
||||
- 弃用 `BotAccount.id`. 将来它可能会被改名成为邮箱等账号. QQ 号码需通过 `bot.uin` 获取.
|
||||
- `Gender` 由 `inline class` 改为 enum
|
||||
|
||||
## `0.10.6` *2020/1/8*
|
||||
TIMPC
|
||||
- Fix #27, 群成员找不到的问题
|
||||
|
@ -190,10 +190,10 @@ internal inline fun PacketFactory<*, *>.buildSessionOutgoingPacket(
|
||||
* Encryption method to be used for packet body.
|
||||
*/
|
||||
@UseExperimental(ExperimentalUnsignedTypes::class)
|
||||
interface EncryptMethod {
|
||||
internal interface EncryptMethod {
|
||||
val id: Int
|
||||
|
||||
fun makeBody(body: BytePacketBuilder.() -> Unit): ByteReadPacket
|
||||
fun makeBody(client: QQAndroidClient, body: BytePacketBuilder.() -> Unit): ByteReadPacket
|
||||
}
|
||||
|
||||
internal interface EncryptMethodSessionKey : EncryptMethod {
|
||||
@ -211,7 +211,7 @@ internal interface EncryptMethodSessionKey : EncryptMethod {
|
||||
* fully encrypted
|
||||
* }
|
||||
*/
|
||||
override fun makeBody(body: BytePacketBuilder.() -> Unit): ByteReadPacket = buildPacket {
|
||||
override fun makeBody(client: QQAndroidClient, body: BytePacketBuilder.() -> Unit): ByteReadPacket = buildPacket {
|
||||
require(currentLoginState == 2 || currentLoginState == 3) { "currentLoginState must be either 2 or 3" }
|
||||
writeByte(1) // const
|
||||
writeByte(if (currentLoginState == 2) 3 else 2)
|
||||
@ -251,16 +251,16 @@ internal interface EncryptMethodECDH : EncryptMethod {
|
||||
* byte[] [ECDH.publicKey]
|
||||
* byte[] encrypted `body()` by [ECDH.shareKey]
|
||||
*/
|
||||
override fun makeBody(body: BytePacketBuilder.() -> Unit): ByteReadPacket = buildPacket {
|
||||
override fun makeBody(client: QQAndroidClient, body: BytePacketBuilder.() -> Unit): ByteReadPacket = buildPacket {
|
||||
writeByte(1) // const
|
||||
writeByte(1) // const
|
||||
writeFully(ByteArray(16))
|
||||
writeFully(client.randomKey)
|
||||
writeShort(258) // const
|
||||
|
||||
// writeShortLVByteArray("04 CB 36 66 98 56 1E 93 6E 80 C1 57 E0 74 CA B1 3B 0B B6 8D DE B2 82 45 48 A1 B1 8D D4 FB 61 22 AF E1 2F E4 8C 52 66 D8 D7 26 9D 76 51 A8 EB 6F E7".hexToBytes())
|
||||
|
||||
writeShortLVByteArray(ecdh.keyPair.publicKey.getEncoded().drop(23).take(49).toByteArray().also {
|
||||
it.toUHexString().debugPrint("PUBLIC KEY")
|
||||
// it.toUHexString().debugPrint("PUBLIC KEY")
|
||||
check(it[0].toInt() == 0x04) { "Bad publicKey generated. Expected first element=0x04, got${it[0]}" }
|
||||
//check(ecdh.calculateShareKeyByPeerPublicKey(it.adjustToPublicKey()).contentEquals(ecdh.keyPair.shareKey)) { "PublicKey Validation failed" }
|
||||
})
|
||||
@ -296,7 +296,7 @@ internal fun BytePacketBuilder.writeOicqRequestPacket(
|
||||
packetId: PacketId,
|
||||
bodyBlock: BytePacketBuilder.() -> Unit
|
||||
) {
|
||||
val body = encryptMethod.makeBody(bodyBlock)
|
||||
val body = encryptMethod.makeBody(client, bodyBlock)
|
||||
// writeIntLVPacket(lengthOffset = { it + 4 }) {
|
||||
// Head
|
||||
writeByte(0x02) // head
|
||||
|
@ -134,11 +134,11 @@ internal object KnownPacketFactories : List<PacketFactory<*, *>> by mutableListO
|
||||
runCatching {
|
||||
byteArrayBuffer.decryptBy(bot.client.ecdh.keyPair.shareKey, size)
|
||||
}.getOrElse {
|
||||
byteArrayBuffer.decryptBy(bot.client.tgtgtKey, size)
|
||||
byteArrayBuffer.decryptBy(bot.client.randomKey, size)
|
||||
} // 这里实际上应该用 privateKey(另一个random出来的key)
|
||||
}
|
||||
} else {
|
||||
this.decryptBy(bot.client.tgtgtKey, 0, this.readRemaining - 1)
|
||||
this.decryptBy(bot.client.randomKey, 0, this.readRemaining - 1)
|
||||
}
|
||||
|
||||
packetFactory.decode(bot, data.toReadPacket())
|
||||
|
@ -187,9 +187,11 @@ internal object LoginPacket : PacketFactory<LoginPacket.LoginPacketResponse, Log
|
||||
val client = bot.client
|
||||
|
||||
val subCommand = readShort().toInt()
|
||||
println("subCommand=$subCommand")
|
||||
val type = readByte()
|
||||
discardExact(3)
|
||||
val tlvMap = this.readTLVMap()
|
||||
println("type=$subCommand")
|
||||
debugDiscardExact(3)
|
||||
val tlvMap: Map<Int, ByteArray> = this.readTLVMap()
|
||||
|
||||
tlvMap[0x150]?.let { client.analysisTlv150(it) }
|
||||
tlvMap[0x161]?.let { client.analysisTlv161(it) }
|
||||
|
@ -11,7 +11,6 @@ import net.mamoe.mirai.data.Packet
|
||||
import net.mamoe.mirai.message.data.Image
|
||||
import net.mamoe.mirai.message.data.ImageId0x03
|
||||
import net.mamoe.mirai.message.data.ImageId0x06
|
||||
import net.mamoe.mirai.qqAccount
|
||||
import net.mamoe.mirai.timpc.internal.RawGroupInfo
|
||||
import net.mamoe.mirai.timpc.network.GroupImpl
|
||||
import net.mamoe.mirai.timpc.network.MemberImpl
|
||||
@ -89,14 +88,14 @@ internal abstract class TIMPCBotBase constructor(
|
||||
}
|
||||
|
||||
final override suspend fun addFriend(id: Long, message: String?, remark: String?): AddFriendResult {
|
||||
return when (CanAddFriendPacket(qqAccount, id, sessionKey).sendAndExpect<CanAddFriendResponse>()) {
|
||||
return when (CanAddFriendPacket(uin, id, sessionKey).sendAndExpect<CanAddFriendResponse>()) {
|
||||
is CanAddFriendResponse.AlreadyAdded -> AddFriendResult.ALREADY_ADDED
|
||||
is CanAddFriendResponse.Rejected -> AddFriendResult.REJECTED
|
||||
|
||||
is CanAddFriendResponse.ReadyToAdd,
|
||||
is CanAddFriendResponse.RequireVerification -> {
|
||||
val key = RequestFriendAdditionKeyPacket(qqAccount, id, sessionKey).sendAndExpect<RequestFriendAdditionKeyPacket.Response>().key
|
||||
AddFriendPacket.RequestAdd(qqAccount, id, sessionKey, message, remark, key).sendAndExpect<AddFriendPacket.Response>()
|
||||
val key = RequestFriendAdditionKeyPacket(uin, id, sessionKey).sendAndExpect<RequestFriendAdditionKeyPacket.Response>().key
|
||||
AddFriendPacket.RequestAdd(uin, id, sessionKey, message, remark, key).sendAndExpect<AddFriendPacket.Response>()
|
||||
AddFriendResult.WAITING_FOR_APPROVAL
|
||||
} //这个做的是需要验证消息的情况, 不确定 ReadyToAdd 的是啥
|
||||
|
||||
@ -114,7 +113,7 @@ internal abstract class TIMPCBotBase constructor(
|
||||
}
|
||||
|
||||
final override suspend fun approveFriendAddRequest(id: Long, remark: String?) {
|
||||
AddFriendPacket.Approve(qqAccount, sessionKey, 0, id, remark).sendAndExpect<AddFriendPacket.Response>()
|
||||
AddFriendPacket.Approve(uin, sessionKey, 0, id, remark).sendAndExpect<AddFriendPacket.Response>()
|
||||
}
|
||||
|
||||
|
||||
@ -134,7 +133,7 @@ internal abstract class TIMPCBotBase constructor(
|
||||
final override suspend fun getGroup(id: GroupId): Group = groups.delegate.getOrNull(id.value) ?: inline {
|
||||
val info: RawGroupInfo = try {
|
||||
when (val response =
|
||||
GroupPacket.QueryGroupInfo(qqAccount, id.toInternalId(), sessionKey).sendAndExpect<GroupPacket.InfoResponse>()) {
|
||||
GroupPacket.QueryGroupInfo(uin, id.toInternalId(), sessionKey).sendAndExpect<GroupPacket.InfoResponse>()) {
|
||||
is RawGroupInfo -> response
|
||||
is GroupNotFound -> throw GroupNotFoundException("id=${id.value}")
|
||||
else -> assertUnreachable()
|
||||
@ -152,7 +151,7 @@ internal abstract class TIMPCBotBase constructor(
|
||||
private suspend inline fun getGroup0(id: Long): Group =
|
||||
groups.delegate.getOrNull(id) ?: inline {
|
||||
val info: RawGroupInfo = try {
|
||||
GroupPacket.QueryGroupInfo(qqAccount, GroupId(id).toInternalId(), sessionKey).sendAndExpect()
|
||||
GroupPacket.QueryGroupInfo(uin, GroupId(id).toInternalId(), sessionKey).sendAndExpect()
|
||||
} catch (e: Exception) {
|
||||
e.logStacktrace()
|
||||
error("Cannot obtain group info for id $id")
|
||||
@ -201,8 +200,8 @@ internal abstract class TIMPCBotBase constructor(
|
||||
|
||||
|
||||
final override suspend fun Image.getLink(): ImageLink = when (val id = this.id) {
|
||||
is ImageId0x03 -> GroupImagePacket.RequestImageLink(qqAccount, sessionKey, id).sendAndExpect<GroupImageLink>().requireSuccess()
|
||||
is ImageId0x06 -> FriendImagePacket.RequestImageLink(qqAccount, sessionKey, id).sendAndExpect<FriendImageLink>()
|
||||
is ImageId0x03 -> GroupImagePacket.RequestImageLink(uin, sessionKey, id).sendAndExpect<GroupImageLink>().requireSuccess()
|
||||
is ImageId0x06 -> FriendImagePacket.RequestImageLink(uin, sessionKey, id).sendAndExpect<FriendImageLink>()
|
||||
else -> assertUnreachable()
|
||||
}
|
||||
|
||||
|
@ -13,7 +13,6 @@ import net.mamoe.mirai.data.Profile
|
||||
import net.mamoe.mirai.event.subscribeAlways
|
||||
import net.mamoe.mirai.message.data.ImageId
|
||||
import net.mamoe.mirai.message.data.MessageChain
|
||||
import net.mamoe.mirai.qqAccount
|
||||
import net.mamoe.mirai.timpc.TIMPCBot
|
||||
import net.mamoe.mirai.timpc.internal.RawGroupInfo
|
||||
import net.mamoe.mirai.timpc.network.packet.action.*
|
||||
@ -56,19 +55,19 @@ internal class GroupImpl internal constructor(bot: TIMPCBot, val groupId: GroupI
|
||||
members.delegate.filteringGetOrAdd({ it.id == id }) { MemberImpl(QQImpl(bot, id, coroutineContext), this, MemberPermission.MEMBER, coroutineContext) }
|
||||
|
||||
override suspend fun sendMessage(message: MessageChain) {
|
||||
bot.sendPacket(GroupPacket.Message(bot.qqAccount, internalId, bot.sessionKey, message))
|
||||
bot.sendPacket(GroupPacket.Message(bot.uin, internalId, bot.sessionKey, message))
|
||||
}
|
||||
|
||||
override suspend fun uploadImage(image: ExternalImage): ImageId = withTIMPCBot {
|
||||
val userContext = coroutineContext
|
||||
val response = GroupImagePacket.RequestImageId(bot.qqAccount, internalId, image, sessionKey).sendAndExpect<GroupImageResponse>()
|
||||
val response = GroupImagePacket.RequestImageId(bot.uin, internalId, image, sessionKey).sendAndExpect<GroupImageResponse>()
|
||||
|
||||
withContext(userContext) {
|
||||
when (response) {
|
||||
is ImageUploadInfo -> response.uKey?.let { uKey ->
|
||||
check(Http.postImage(
|
||||
htcmd = "0x6ff0071",
|
||||
uin = bot.qqAccount,
|
||||
uin = bot.uin,
|
||||
groupId = GroupId(id),
|
||||
imageInput = image.input,
|
||||
inputSize = image.inputSize,
|
||||
@ -87,11 +86,11 @@ internal class GroupImpl internal constructor(bot: TIMPCBot, val groupId: GroupI
|
||||
}
|
||||
|
||||
override suspend fun updateGroupInfo(): GroupInfo = withTIMPCBot {
|
||||
GroupPacket.QueryGroupInfo(qqAccount, internalId, sessionKey).sendAndExpect<RawGroupInfo>().parseBy(this@GroupImpl).also { info = it }
|
||||
GroupPacket.QueryGroupInfo(uin, internalId, sessionKey).sendAndExpect<RawGroupInfo>().parseBy(this@GroupImpl).also { info = it }
|
||||
}
|
||||
|
||||
override suspend fun quit(): Boolean = withTIMPCBot {
|
||||
GroupPacket.QuitGroup(qqAccount, sessionKey, internalId).sendAndExpect<GroupPacket.QuitGroupResponse>().isSuccess
|
||||
GroupPacket.QuitGroup(uin, sessionKey, internalId).sendAndExpect<GroupPacket.QuitGroupResponse>().isSuccess
|
||||
}
|
||||
|
||||
@UseExperimental(MiraiInternalAPI::class)
|
||||
@ -114,16 +113,16 @@ internal class QQImpl @PublishedApi internal constructor(bot: TIMPCBot, override
|
||||
override val bot: TIMPCBot by bot.unsafeWeakRef()
|
||||
|
||||
override suspend fun sendMessage(message: MessageChain) =
|
||||
bot.sendPacket(SendFriendMessagePacket(bot.qqAccount, id, bot.sessionKey, message))
|
||||
bot.sendPacket(SendFriendMessagePacket(bot.uin, id, bot.sessionKey, message))
|
||||
|
||||
override suspend fun uploadImage(image: ExternalImage): ImageId = withTIMPCBot {
|
||||
FriendImagePacket.RequestImageId(qqAccount, sessionKey, id, image).sendAndExpect<FriendImageResponse>().let {
|
||||
FriendImagePacket.RequestImageId(uin, sessionKey, id, image).sendAndExpect<FriendImageResponse>().let {
|
||||
when (it) {
|
||||
is FriendImageUKey -> {
|
||||
check(
|
||||
Http.postImage(
|
||||
htcmd = "0x6ff0070",
|
||||
uin = bot.qqAccount,
|
||||
uin = bot.uin,
|
||||
groupId = null,
|
||||
uKeyHex = it.uKey.toUHexString(""),
|
||||
imageInput = image.input,
|
||||
@ -141,15 +140,15 @@ internal class QQImpl @PublishedApi internal constructor(bot: TIMPCBot, override
|
||||
}
|
||||
|
||||
override suspend fun queryProfile(): Profile = withTIMPCBot {
|
||||
RequestProfileDetailsPacket(bot.qqAccount, id, sessionKey).sendAndExpect<RequestProfileDetailsResponse>().profile
|
||||
RequestProfileDetailsPacket(bot.uin, id, sessionKey).sendAndExpect<RequestProfileDetailsResponse>().profile
|
||||
}
|
||||
|
||||
override suspend fun queryPreviousNameList(): PreviousNameList = withTIMPCBot {
|
||||
QueryPreviousNamePacket(bot.qqAccount, sessionKey, id).sendAndExpect()
|
||||
QueryPreviousNamePacket(bot.uin, sessionKey, id).sendAndExpect()
|
||||
}
|
||||
|
||||
override suspend fun queryRemark(): FriendNameRemark = withTIMPCBot {
|
||||
QueryFriendRemarkPacket(bot.qqAccount, sessionKey, id).sendAndExpect()
|
||||
QueryFriendRemarkPacket(bot.uin, sessionKey, id).sendAndExpect()
|
||||
}
|
||||
|
||||
@PublishedApi
|
||||
@ -177,7 +176,7 @@ internal data class MemberImpl(
|
||||
require(durationSeconds <= 30 * 24 * 3600) { "duration must be no more than 30 days" }
|
||||
|
||||
if (permission == MemberPermission.OWNER) return false
|
||||
val operator = group.getMember(bot.qqAccount)
|
||||
val operator = group.getMember(bot.uin)
|
||||
check(operator.id != id) { "The bot is the owner of group ${group.id}, it cannot mute itself!" }
|
||||
when (operator.permission) {
|
||||
MemberPermission.MEMBER -> return false
|
||||
@ -186,7 +185,7 @@ internal data class MemberImpl(
|
||||
}
|
||||
}
|
||||
|
||||
GroupPacket.Mute(qqAccount, group.internalId, sessionKey, id, durationSeconds.toUInt()).sendAndExpect<GroupPacket.MuteResponse>()
|
||||
GroupPacket.Mute(uin, group.internalId, sessionKey, id, durationSeconds.toUInt()).sendAndExpect<GroupPacket.MuteResponse>()
|
||||
return true
|
||||
}
|
||||
|
||||
@ -196,6 +195,6 @@ internal data class MemberImpl(
|
||||
}
|
||||
|
||||
override suspend fun unmute(): Unit = withTIMPCBot {
|
||||
GroupPacket.Mute(qqAccount, group.internalId, sessionKey, id, 0u).sendAndExpect<GroupPacket.MuteResponse>()
|
||||
GroupPacket.Mute(uin, group.internalId, sessionKey, id, 0u).sendAndExpect<GroupPacket.MuteResponse>()
|
||||
}
|
||||
}
|
@ -14,7 +14,6 @@ import net.mamoe.mirai.event.Subscribable
|
||||
import net.mamoe.mirai.event.broadcast
|
||||
import net.mamoe.mirai.event.events.BotLoginSucceedEvent
|
||||
import net.mamoe.mirai.network.BotNetworkHandler
|
||||
import net.mamoe.mirai.qqAccount
|
||||
import net.mamoe.mirai.timpc.TIMPCBot
|
||||
import net.mamoe.mirai.timpc.network.handler.DataPacketSocketAdapter
|
||||
import net.mamoe.mirai.timpc.network.handler.TemporaryPacketHandler
|
||||
@ -178,7 +177,7 @@ internal class TIMPCBotNetworkHandler internal constructor(coroutineContext: Cor
|
||||
loginResult.complete(LoginResult.TIMEOUT)
|
||||
}
|
||||
}
|
||||
sendPacket(TouchPacket(bot.qqAccount, serverIp, false))
|
||||
sendPacket(TouchPacket(bot.uin, serverIp, false))
|
||||
|
||||
return loginResult.await()
|
||||
} finally {
|
||||
@ -319,7 +318,7 @@ internal class TIMPCBotNetworkHandler internal constructor(coroutineContext: Cor
|
||||
|
||||
socket.sendPacket(
|
||||
SubmitPasswordPacket(
|
||||
bot = bot.qqAccount,
|
||||
bot = bot.uin,
|
||||
passwordMd5 = bot.account.passwordMd5,
|
||||
loginTime = loginTime,
|
||||
loginIP = loginIP,
|
||||
@ -349,7 +348,7 @@ internal class TIMPCBotNetworkHandler internal constructor(coroutineContext: Cor
|
||||
|
||||
socket.sendPacket(
|
||||
SubmitPasswordPacket(
|
||||
bot = bot.qqAccount,
|
||||
bot = bot.uin,
|
||||
passwordMd5 = bot.account.passwordMd5,
|
||||
loginTime = loginTime,
|
||||
loginIP = loginIP,
|
||||
@ -367,7 +366,7 @@ internal class TIMPCBotNetworkHandler internal constructor(coroutineContext: Cor
|
||||
this.captchaCache = packet.captchaPart1
|
||||
|
||||
this.captchaSectionId = 1
|
||||
socket.sendPacket(CaptchaPacket.RequestTransmission(bot.qqAccount, this.token0825, this.captchaSectionId++, packet.token00BA))
|
||||
socket.sendPacket(CaptchaPacket.RequestTransmission(bot.uin, this.token0825, this.captchaSectionId++, packet.token00BA))
|
||||
}
|
||||
|
||||
is CaptchaPacket.CaptchaResponse.Transmission -> {
|
||||
@ -393,19 +392,19 @@ internal class TIMPCBotNetworkHandler internal constructor(coroutineContext: Cor
|
||||
this.captchaCache = null
|
||||
if (code == null || code.length != 4) {
|
||||
this.captchaSectionId = 1//意味着正在刷新验证码
|
||||
socket.sendPacket(CaptchaPacket.Refresh(bot.qqAccount, token0825))
|
||||
socket.sendPacket(CaptchaPacket.Refresh(bot.uin, token0825))
|
||||
} else {
|
||||
this.captchaSectionId = 0//意味着已经提交验证码
|
||||
socket.sendPacket(CaptchaPacket.Submit(bot.qqAccount, token0825, code, packet.captchaToken))
|
||||
socket.sendPacket(CaptchaPacket.Submit(bot.uin, token0825, code, packet.captchaToken))
|
||||
}
|
||||
} else {
|
||||
socket.sendPacket(CaptchaPacket.RequestTransmission(bot.qqAccount, token0825, captchaSectionId++, packet.token00BA))
|
||||
socket.sendPacket(CaptchaPacket.RequestTransmission(bot.uin, token0825, captchaSectionId++, packet.token00BA))
|
||||
}
|
||||
}
|
||||
|
||||
is SubmitPasswordPacket.LoginResponse.Success -> {
|
||||
this.sessionResponseDecryptionKey = packet.sessionResponseDecryptionKey
|
||||
socket.sendPacket(RequestSessionPacket(bot.qqAccount, socket.serverIp, packet.token38, packet.token88, packet.encryptionKey))
|
||||
socket.sendPacket(RequestSessionPacket(bot.uin, socket.serverIp, packet.token38, packet.token88, packet.encryptionKey))
|
||||
}
|
||||
|
||||
//是ClientPasswordSubmissionPacket之后服务器回复的可能之一
|
||||
@ -414,7 +413,7 @@ internal class TIMPCBotNetworkHandler internal constructor(coroutineContext: Cor
|
||||
|
||||
socket.sendPacket(
|
||||
SubmitPasswordPacket(
|
||||
bot = bot.qqAccount,
|
||||
bot = bot.uin,
|
||||
passwordMd5 = bot.account.passwordMd5,
|
||||
loginTime = loginTime,
|
||||
loginIP = loginIP,
|
||||
@ -447,12 +446,12 @@ internal class TIMPCBotNetworkHandler internal constructor(coroutineContext: Cor
|
||||
if (withTimeoutOrNull(configuration.heartbeatTimeoutMillis) {
|
||||
// FIXME: 2019/11/26 启动被挤掉线检测
|
||||
|
||||
HeartbeatPacket(bot.qqAccount, sessionKey).sendAndExpect<HeartbeatPacketResponse>()
|
||||
HeartbeatPacket(bot.uin, sessionKey).sendAndExpect<HeartbeatPacketResponse>()
|
||||
} == null) {
|
||||
|
||||
// retry one time
|
||||
if (withTimeoutOrNull(configuration.heartbeatTimeoutMillis) {
|
||||
HeartbeatPacket(bot.qqAccount, sessionKey).sendAndExpect<HeartbeatPacketResponse>()
|
||||
HeartbeatPacket(bot.uin, sessionKey).sendAndExpect<HeartbeatPacketResponse>()
|
||||
} == null) {
|
||||
bot.logger.warning("Heartbeat timed out")
|
||||
|
||||
@ -474,7 +473,7 @@ internal class TIMPCBotNetworkHandler internal constructor(coroutineContext: Cor
|
||||
|
||||
@Suppress("MemberVisibilityCanBePrivate")
|
||||
suspend fun setOnlineStatus(status: OnlineStatus) {
|
||||
socket.sendPacket(ChangeOnlineStatusPacket(bot.qqAccount, sessionKey, status))
|
||||
socket.sendPacket(ChangeOnlineStatusPacket(bot.uin, sessionKey, status))
|
||||
}
|
||||
|
||||
fun close() {
|
||||
|
@ -8,7 +8,6 @@ import net.mamoe.mirai.network.BotNetworkHandler
|
||||
import net.mamoe.mirai.data.Packet
|
||||
import net.mamoe.mirai.utils.NoLog
|
||||
import net.mamoe.mirai.timpc.network.TIMPCBotNetworkHandler
|
||||
import net.mamoe.mirai.qqAccount
|
||||
import net.mamoe.mirai.timpc.network.packet.*
|
||||
import net.mamoe.mirai.utils.io.readIoBuffer
|
||||
|
||||
@ -46,7 +45,7 @@ internal object EventPacketFactory : PacketFactory<Packet, SessionKey>(SessionKe
|
||||
to = readUInt().toLong(), // clear semantic
|
||||
uniqueId = readIoBuffer(8)
|
||||
)
|
||||
(handler as TIMPCBotNetworkHandler).socket.sendPacket(EventPacketFactory(id, sequenceId, handler.bot.qqAccount, handler.sessionKey, eventIdentity))
|
||||
(handler as TIMPCBotNetworkHandler).socket.sendPacket(EventPacketFactory(id, sequenceId, handler.bot.uin, handler.sessionKey, eventIdentity))
|
||||
discardExact(2) // 1F 40
|
||||
|
||||
return with(matchEventPacketFactory(readUShort())) { parse(handler.bot, eventIdentity) }.also {
|
||||
|
@ -8,7 +8,6 @@ import net.mamoe.mirai.Bot
|
||||
import net.mamoe.mirai.contact.Group
|
||||
import net.mamoe.mirai.contact.Member
|
||||
import net.mamoe.mirai.data.EventPacket
|
||||
import net.mamoe.mirai.qqAccount
|
||||
import net.mamoe.mirai.utils.io.*
|
||||
|
||||
/**
|
||||
@ -54,7 +53,7 @@ internal object MemberGoneEventPacketHandler : KnownEventParserAndHandler<Member
|
||||
|
||||
discardExact(1)
|
||||
val id = readQQ()
|
||||
if (id == bot.qqAccount) {
|
||||
if (id == bot.uin) {
|
||||
discardExact(1)
|
||||
return BeingKickEvent(group, group.getMember(readQQ()))
|
||||
}
|
||||
|
@ -10,7 +10,6 @@ import net.mamoe.mirai.Bot
|
||||
import net.mamoe.mirai.contact.Group
|
||||
import net.mamoe.mirai.contact.Member
|
||||
import net.mamoe.mirai.data.*
|
||||
import net.mamoe.mirai.qqAccount
|
||||
import net.mamoe.mirai.utils.io.debugPrintIfFail
|
||||
import net.mamoe.mirai.utils.io.readQQ
|
||||
import net.mamoe.mirai.utils.io.readRemainingBytes
|
||||
@ -78,13 +77,13 @@ internal object MemberMuteEventPacketParserAndHandler : KnownEventParserAndHandl
|
||||
|
||||
val durationSeconds = readUInt().toInt()
|
||||
if (durationSeconds == 0) {
|
||||
if (memberQQ == bot.qqAccount) {
|
||||
if (memberQQ == bot.uin) {
|
||||
BeingUnmutedEvent(operator)
|
||||
} else {
|
||||
MemberUnmuteEvent(group.getMember(memberQQ), operator)
|
||||
}
|
||||
} else {
|
||||
if (memberQQ == bot.qqAccount) {
|
||||
if (memberQQ == bot.uin) {
|
||||
BeingMutedEvent(durationSeconds, operator)
|
||||
} else {
|
||||
MemberMuteEvent(group.getMember(memberQQ), durationSeconds, operator)
|
||||
|
@ -41,7 +41,7 @@ abstract class BotImpl<N : BotNetworkHandler> constructor(
|
||||
|
||||
fun instanceWhose(qq: Long): Bot {
|
||||
instances.forEach {
|
||||
if (it.qqAccount == qq) {
|
||||
if (it.uin == qq) {
|
||||
return it
|
||||
}
|
||||
}
|
||||
@ -82,7 +82,7 @@ abstract class BotImpl<N : BotNetworkHandler> constructor(
|
||||
private suspend fun reinitializeNetworkHandler(
|
||||
cause: Throwable?
|
||||
) {
|
||||
logger.info("BotAccount: $qqAccount")
|
||||
logger.info("BotAccount: $uin")
|
||||
logger.info("Initializing BotNetworkHandler")
|
||||
try {
|
||||
if (::_network.isInitialized) {
|
||||
|
@ -7,7 +7,6 @@ import net.mamoe.mirai.contact.MemberPermission
|
||||
import net.mamoe.mirai.event.BroadcastControllable
|
||||
import net.mamoe.mirai.message.data.At
|
||||
import net.mamoe.mirai.message.data.MessageChain
|
||||
import net.mamoe.mirai.qqAccount
|
||||
import net.mamoe.mirai.utils.unsafeWeakRef
|
||||
|
||||
@Suppress("unused", "NOTHING_TO_INLINE")
|
||||
@ -37,5 +36,5 @@ class GroupMessage(
|
||||
|
||||
|
||||
override val shouldBroadcast: Boolean
|
||||
get() = bot.qqAccount != sender.id // 自己会收到自己发的消息
|
||||
get() = bot.uin != sender.id // 自己会收到自己发的消息
|
||||
}
|
Loading…
Reference in New Issue
Block a user