mirror of
https://github.com/mamoe/mirai.git
synced 2025-02-04 04:09:18 +08:00
Http api calculate messageId with uid and seq
This commit is contained in:
parent
43e0c3b414
commit
b92956f112
@ -99,9 +99,11 @@ fun MessageChain.toDTOChain() = mutableListOf(this[MessageSource].toDTO()).apply
|
|||||||
fun MessageChainDTO.toMessageChain(contact: Contact) =
|
fun MessageChainDTO.toMessageChain(contact: Contact) =
|
||||||
MessageChain().apply { this@toMessageChain.forEach { add(it.toMessage(contact)) } }
|
MessageChain().apply { this@toMessageChain.forEach { add(it.toMessage(contact)) } }
|
||||||
|
|
||||||
|
internal fun MessageSource.calMessageId() = (messageUid.toLong() shl 32) or (sequenceId.toLong() and 0xFFFFFFFF)
|
||||||
|
|
||||||
@UseExperimental(ExperimentalUnsignedTypes::class)
|
@UseExperimental(ExperimentalUnsignedTypes::class)
|
||||||
fun Message.toDTO() = when (this) {
|
fun Message.toDTO() = when (this) {
|
||||||
is MessageSource -> MessageSourceDTO(messageUid.toLong() and 0xFFffFFff)
|
is MessageSource -> MessageSourceDTO(calMessageId())
|
||||||
is At -> AtDTO(target, display)
|
is At -> AtDTO(target, display)
|
||||||
is AtAll -> AtAllDTO(0L)
|
is AtAll -> AtAllDTO(0L)
|
||||||
is Face -> FaceDTO(id)
|
is Face -> FaceDTO(id)
|
||||||
|
@ -11,6 +11,7 @@ package net.mamoe.mirai.api.http.queue
|
|||||||
|
|
||||||
import net.mamoe.mirai.api.http.data.common.EventDTO
|
import net.mamoe.mirai.api.http.data.common.EventDTO
|
||||||
import net.mamoe.mirai.api.http.data.common.IgnoreEventDTO
|
import net.mamoe.mirai.api.http.data.common.IgnoreEventDTO
|
||||||
|
import net.mamoe.mirai.api.http.data.common.calMessageId
|
||||||
import net.mamoe.mirai.api.http.data.common.toDTO
|
import net.mamoe.mirai.api.http.data.common.toDTO
|
||||||
import net.mamoe.mirai.event.events.BotEvent
|
import net.mamoe.mirai.event.events.BotEvent
|
||||||
import net.mamoe.mirai.message.GroupMessage
|
import net.mamoe.mirai.message.GroupMessage
|
||||||
@ -46,7 +47,7 @@ class MessageQueue : ConcurrentLinkedDeque<BotEvent>() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun addQuoteCache(msg: GroupMessage) {
|
private fun addQuoteCache(msg: GroupMessage) {
|
||||||
quoteCache[msg.message[MessageSource].messageUid.toLong()] = msg
|
quoteCache[msg.message[MessageSource].calMessageId()] = msg
|
||||||
if (quoteCache.size > quoteCacheSize) {
|
if (quoteCache.size > quoteCacheSize) {
|
||||||
quoteCache.remove(quoteCache.firstKey())
|
quoteCache.remove(quoteCache.firstKey())
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user