Skip to content

Commit

Permalink
fix wrong event timestamp type
Browse files Browse the repository at this point in the history
fix #114
  • Loading branch information
MrXiaoM committed Dec 17, 2024
1 parent 7d6c17e commit 7086e65
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 12 deletions.
9 changes: 9 additions & 0 deletions onebot/src/main/kotlin/sdk/event/Event.kt
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,13 @@ open class Event : JsonContainer() {
var time: Long = 0
@SerializedName("self_id")
var selfId: Long = 0

/**
* 自动转换毫秒时间戳(如果是)为秒时间戳,
* 仅支持2000年以后的毫秒时间戳,2000年以前的认定为秒时间戳
*/
fun timeInSecond(): Long {
return if (time < 946656000000L) time
else time / 1000L
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ internal class NotifyNoticeListener : EventListener<NotifyNoticeEvent> {
internal class UnsolvedEventListener : EventListener<UnsolvedEvent> {
override suspend fun onMessage(e: UnsolvedEvent) {
Overflow.scope.launch {
UnsolvedOnebotEvent(e.selfId, e.jsonString, e.time).broadcast()
UnsolvedOnebotEvent(e.selfId, e.jsonString, e.timeInSecond()).broadcast()
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ internal class FriendMessageListener : EventListener<PrivateMessageEvent> {
sender = friend,
subject = friend,
target = bot,
time = (e.time / 1000).toInt()
time = e.timeInSecond().toInt()
)
val miraiMessage = messageSource.plus(message)
bot.logger.verbose("${friend.remarkOrNick}(${friend.id}) -> $messageString")
Expand Down Expand Up @@ -78,7 +78,7 @@ internal class FriendMessageListener : EventListener<PrivateMessageEvent> {
subject = member,
isOriginalMessageInitialized = true,
target = bot,
time = (e.time / 1000).toInt()
time = e.timeInSecond().toInt()
)
val miraiMessage = messageSource.plus(message)
bot.logger.verbose("[群临时消息] ${member.remarkOrNick}(${member.id}) -> $messageString")
Expand All @@ -104,7 +104,7 @@ internal class FriendMessageListener : EventListener<PrivateMessageEvent> {
sender = stranger,
subject = stranger,
target = bot,
time = (e.time / 1000).toInt()
time = e.timeInSecond().toInt()
)
val miraiMessage = messageSource.plus(message)
bot.logger.verbose("${stranger.remarkOrNick}(${stranger.id}) -> $messageString")
Expand Down Expand Up @@ -143,7 +143,7 @@ internal class FriendMessageRecallListener : EventListener<PrivateMsgDeleteNotic
MessageRecallEvent.FriendRecall(bot,
intArrayOf(e.msgId.toInt()),
intArrayOf(e.msgId.toInt()),
(e.time / 1000).toInt(),
e.timeInSecond().toInt(),
operatorId,
friend
))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ internal class GroupMessageListener : EventListener<GroupMessageEvent> {
group.emptyMessagesIdMap.put(member.id, e.messageId)
return
}
receiveGroupMessage(bot, member, message, e.messageId, e.time)
receiveGroupMessage(bot, member, message, e.messageId, e.timeInSecond())
}
"anonymous" -> {
val group = bot.group(e.groupId)
Expand All @@ -81,7 +81,7 @@ internal class GroupMessageListener : EventListener<GroupMessageEvent> {
isOriginalMessageInitialized = true,
originalMessage = message,
sender = member,
time = (e.time / 1000).toInt()
time = e.timeInSecond().toInt()
)
val miraiMessage = messageSource.plus(message)
bot.logger.verbose("[${group.name}(${group.id})] ${member.nameCard}(${member.anonymousId}) -> $messageString")
Expand All @@ -98,7 +98,7 @@ internal class GroupMessageListener : EventListener<GroupMessageEvent> {
}

companion object {
internal fun receiveGroupMessage(bot: BotWrapper, member: NormalMember, message: MessageChain, messageId: Int, time: Long) {
internal fun receiveGroupMessage(bot: BotWrapper, member: NormalMember, message: MessageChain, messageId: Int, timeInSecond: Long) {
val group = member.group
val messageString = message.toString()
val messageSource = IncomingSource.group(
Expand All @@ -108,7 +108,7 @@ internal class GroupMessageListener : EventListener<GroupMessageEvent> {
isOriginalMessageInitialized = true,
originalMessage = message,
sender = member,
time = (time / 1000).toInt()
time = timeInSecond.toInt()
)
val miraiMessage = messageSource.plus(message)
if (member.id == bot.id) {
Expand Down Expand Up @@ -145,7 +145,7 @@ internal class GroupMessageRecallListener : EventListener<GroupMsgDeleteNoticeEv
target.id,
intArrayOf(e.msgId.toInt()),
intArrayOf(e.msgId.toInt()),
(e.time / 1000).toInt(),
e.timeInSecond().toInt(),
operator, group,
target
))
Expand Down Expand Up @@ -431,6 +431,6 @@ internal class GroupUploadNoticeListener : EventListener<GroupUploadNoticeEvent>
val message = buildMessageChain {
add(WrappedFileMessage(file.id, file.busId.toInt(), file.name, file.size, file.url))
}
GroupMessageListener.receiveGroupMessage(bot, member, message, messageId, e.time)
GroupMessageListener.receiveGroupMessage(bot, member, message, messageId, e.timeInSecond())
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ internal class GuildMessageListener : EventListener<GuildMessageEvent> {
"admin" -> MemberPermission.ADMINISTRATOR
else -> MemberPermission.MEMBER
},
time = (e.time / 1000).toInt()
time = e.timeInSecond().toInt()
))
}
}
Expand Down

0 comments on commit 7086e65

Please sign in to comment.