Add ContactMessage.time

This commit is contained in:
Him188 2020-04-23 11:52:44 +08:00
parent 200a140f38
commit 454205a6af
6 changed files with 38 additions and 11 deletions

View File

@ -241,7 +241,8 @@ internal class MessageSvc {
if (friend.lastMessageSequence.compareAndSet(instant, msg.msgHead.msgSeq)) { if (friend.lastMessageSequence.compareAndSet(instant, msg.msgHead.msgSeq)) {
return@mapNotNull FriendMessage( return@mapNotNull FriendMessage(
friend, friend,
msg.toMessageChain(bot, groupIdOrZero = 0, onlineSource = true) msg.toMessageChain(bot, groupIdOrZero = 0, onlineSource = true),
msg.msgHead.msgTime
) )
} }
} else return@mapNotNull null } else return@mapNotNull null
@ -266,7 +267,8 @@ internal class MessageSvc {
msg.toMessageChain(bot, msg.toMessageChain(bot,
groupIdOrZero = 0, groupIdOrZero = 0,
onlineSource = true, onlineSource = true,
isTemp = true) isTemp = true),
msg.msgHead.msgTime
) )
} }
} else return@mapNotNull null } else return@mapNotNull null

View File

@ -108,7 +108,8 @@ internal class OnlinePush {
bot.logger.warning("判断群员权限失败: ${pbPushMsg.msg.msgHead._miraiContentToString()}. 请完整截图或复制此日志发送给 mirai 维护者以帮助解决问题.") bot.logger.warning("判断群员权限失败: ${pbPushMsg.msg.msgHead._miraiContentToString()}. 请完整截图或复制此日志发送给 mirai 维护者以帮助解决问题.")
MemberPermission.MEMBER MemberPermission.MEMBER
} }
} },
time = pbPushMsg.msg.msgHead.msgTime
) )
} }
} }

View File

@ -102,6 +102,12 @@ abstract class MessagePacketBase<out TSender : User, out TSubject : Contact> : P
*/ */
abstract val message: MessageChain abstract val message: MessageChain
/**
* 消息发送时间 (由服务器提供)
*/
@SinceMirai("0.39.0")
abstract val time: Int
/** /**
* 消息源 * 消息源
*/ */

View File

@ -20,19 +20,25 @@ import net.mamoe.mirai.message.data.MessageSource
import net.mamoe.mirai.message.data.OnlineMessageSource import net.mamoe.mirai.message.data.OnlineMessageSource
import net.mamoe.mirai.message.data.source import net.mamoe.mirai.message.data.source
import net.mamoe.mirai.utils.PlannedRemoval import net.mamoe.mirai.utils.PlannedRemoval
import net.mamoe.mirai.utils.currentTimeSeconds
import net.mamoe.mirai.utils.getValue import net.mamoe.mirai.utils.getValue
import net.mamoe.mirai.utils.unsafeWeakRef import net.mamoe.mirai.utils.unsafeWeakRef
/** /**
* 好友消息 * 好友消息
*/ */
class FriendMessage( class FriendMessage constructor(
sender: Friend, sender: Friend,
override val message: MessageChain override val message: MessageChain,
override val time: Int
) : ContactMessage(), BroadcastControllable { ) : ContactMessage(), BroadcastControllable {
@PlannedRemoval("1.0.0") @PlannedRemoval("1.0.0")
@Deprecated("", level = DeprecationLevel.HIDDEN) @Deprecated("", level = DeprecationLevel.HIDDEN)
constructor(sender: QQ, message: MessageChain) : this(sender as Friend, message) constructor(sender: QQ, message: MessageChain) : this(sender as Friend, message, currentTimeSeconds.toInt())
@PlannedRemoval("1.0.0")
@Deprecated("", level = DeprecationLevel.HIDDEN)
constructor(sender: Friend, message: MessageChain) : this(sender, message, currentTimeSeconds.toInt())
init { init {
val source = message.getOrNull(MessageSource) ?: error("Cannot find MessageSource from message") val source = message.getOrNull(MessageSource) ?: error("Cannot find MessageSource from message")

View File

@ -15,6 +15,8 @@ import net.mamoe.mirai.contact.Member
import net.mamoe.mirai.contact.MemberPermission import net.mamoe.mirai.contact.MemberPermission
import net.mamoe.mirai.event.Event import net.mamoe.mirai.event.Event
import net.mamoe.mirai.message.data.* import net.mamoe.mirai.message.data.*
import net.mamoe.mirai.utils.PlannedRemoval
import net.mamoe.mirai.utils.currentTimeSeconds
import net.mamoe.mirai.utils.getValue import net.mamoe.mirai.utils.getValue
import net.mamoe.mirai.utils.unsafeWeakRef import net.mamoe.mirai.utils.unsafeWeakRef
@ -26,8 +28,14 @@ class GroupMessage(
*/ */
val permission: MemberPermission, val permission: MemberPermission,
sender: Member, sender: Member,
override val message: MessageChain override val message: MessageChain,
override val time: Int
) : ContactMessage(), Event { ) : ContactMessage(), Event {
@PlannedRemoval("1.0.0")
@Deprecated("", level = DeprecationLevel.HIDDEN)
constructor(senderName: String, permission: MemberPermission, sender: Member, message: MessageChain) :
this(senderName, permission, sender, message, currentTimeSeconds.toInt())
init { init {
val source = message.getOrNull(MessageSource) ?: error("Cannot find MessageSource from message") val source = message.getOrNull(MessageSource) ?: error("Cannot find MessageSource from message")
check(source is OnlineMessageSource.Incoming.FromGroup) { "source provided to a GroupMessage must be an instance of OnlineMessageSource.Incoming.FromGroup" } check(source is OnlineMessageSource.Incoming.FromGroup) { "source provided to a GroupMessage must be an instance of OnlineMessageSource.Incoming.FromGroup" }

View File

@ -9,9 +9,7 @@ import net.mamoe.mirai.message.data.MessageChain
import net.mamoe.mirai.message.data.MessageSource import net.mamoe.mirai.message.data.MessageSource
import net.mamoe.mirai.message.data.OnlineMessageSource import net.mamoe.mirai.message.data.OnlineMessageSource
import net.mamoe.mirai.message.data.source import net.mamoe.mirai.message.data.source
import net.mamoe.mirai.utils.SinceMirai import net.mamoe.mirai.utils.*
import net.mamoe.mirai.utils.getValue
import net.mamoe.mirai.utils.unsafeWeakRef
/** /**
* 临时会话消息 * 临时会话消息
@ -19,8 +17,14 @@ import net.mamoe.mirai.utils.unsafeWeakRef
@SinceMirai("0.35.0") @SinceMirai("0.35.0")
class TempMessage( class TempMessage(
sender: Member, sender: Member,
override val message: MessageChain override val message: MessageChain,
override val time: Int
) : ContactMessage(), BroadcastControllable { ) : ContactMessage(), BroadcastControllable {
@PlannedRemoval("1.0.0")
@Deprecated("", level = DeprecationLevel.HIDDEN)
constructor(sender: Member, message: MessageChain) :
this(sender, message, currentTimeSeconds.toInt())
init { init {
val source = message.getOrNull(MessageSource) ?: error("Cannot find MessageSource from message") val source = message.getOrNull(MessageSource) ?: error("Cannot find MessageSource from message")
check(source is OnlineMessageSource.Incoming.FromTemp) { "source provided to a TempMessage must be an instance of OnlineMessageSource.Incoming.FromTemp" } check(source is OnlineMessageSource.Incoming.FromTemp) { "source provided to a TempMessage must be an instance of OnlineMessageSource.Incoming.FromTemp" }