mirror of
https://github.com/LLOneBot/LLOneBot.git
synced 2024-11-22 01:56:33 +00:00
fix
This commit is contained in:
parent
e39c89a441
commit
18cb46ade5
@ -27,8 +27,8 @@ declare module 'cordis' {
|
||||
}
|
||||
interface Events {
|
||||
'nt/message-created': (input: RawMessage[]) => void
|
||||
'nt/message-deleted': (input: RawMessage[]) => void
|
||||
'nt/message-sent': (input: RawMessage[]) => void
|
||||
'nt/message-deleted': (input: RawMessage) => void
|
||||
'nt/message-sent': (input: RawMessage) => void
|
||||
'nt/group-notify': (input: GroupNotify[]) => void
|
||||
'nt/friend-request': (input: FriendRequest[]) => void
|
||||
'nt/group-member-info-updated': (input: { groupCode: string, members: GroupMember[] }) => void
|
||||
@ -174,23 +174,26 @@ class Core extends Service {
|
||||
this.ctx.parallel('nt/message-created', payload.msgList)
|
||||
})
|
||||
|
||||
const sentMsgIds = new Map<string, boolean>()
|
||||
const recallMsgIds: string[] = [] // 避免重复上报
|
||||
|
||||
registerReceiveHook<{ msgList: RawMessage[] }>([ReceiveCmdS.UPDATE_MSG], payload => {
|
||||
const list = payload.msgList.filter(v => {
|
||||
if (recallMsgIds.includes(v.msgId)) {
|
||||
return false
|
||||
for (const msg of payload.msgList) {
|
||||
if (msg.recallTime !== '0' && !recallMsgIds.includes(msg.msgId)) {
|
||||
recallMsgIds.push(msg.msgId)
|
||||
this.ctx.parallel('nt/message-deleted', msg)
|
||||
} else if (sentMsgIds.get(msg.msgId)) {
|
||||
sentMsgIds.delete(msg.msgId)
|
||||
this.ctx.parallel('nt/message-sent', msg)
|
||||
}
|
||||
recallMsgIds.push(v.msgId)
|
||||
return true
|
||||
})
|
||||
this.ctx.parallel('nt/message-deleted', list)
|
||||
}
|
||||
})
|
||||
|
||||
registerReceiveHook<{ msgRecord: RawMessage }>(ReceiveCmdS.SELF_SEND_MSG, payload => {
|
||||
if (!this.config.reportSelfMessage) {
|
||||
return
|
||||
}
|
||||
this.ctx.parallel('nt/message-sent', [payload.msgRecord])
|
||||
sentMsgIds.set(payload.msgRecord.msgId, true)
|
||||
})
|
||||
|
||||
const groupNotifyFlags: string[] = []
|
||||
|
@ -226,20 +226,16 @@ class OneBot11Adapter extends Service {
|
||||
}
|
||||
}
|
||||
|
||||
private handleRecallMsg(msgList: RawMessage[]) {
|
||||
for (const message of msgList) {
|
||||
if (message.recallTime != '0') {
|
||||
const oriMessageId = MessageUnique.getShortIdByMsgId(message.msgId)
|
||||
if (!oriMessageId) {
|
||||
continue
|
||||
}
|
||||
OB11Entities.recallEvent(this.ctx, message, oriMessageId).then((recallEvent) => {
|
||||
if (recallEvent) {
|
||||
this.dispatch(recallEvent)
|
||||
}
|
||||
})
|
||||
}
|
||||
private handleRecallMsg(message: RawMessage) {
|
||||
const oriMessageId = MessageUnique.getShortIdByMsgId(message.msgId)
|
||||
if (!oriMessageId) {
|
||||
return
|
||||
}
|
||||
OB11Entities.recallEvent(this.ctx, message, oriMessageId).then((recallEvent) => {
|
||||
if (recallEvent) {
|
||||
this.dispatch(recallEvent)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
private async handleFriendRequest(buddyReqs: FriendRequest[]) {
|
||||
@ -404,7 +400,7 @@ class OneBot11Adapter extends Service {
|
||||
this.handleRecallMsg(input)
|
||||
})
|
||||
this.ctx.on('nt/message-sent', input => {
|
||||
this.handleMsg(input)
|
||||
this.handleMsg([input])
|
||||
})
|
||||
this.ctx.on('nt/group-notify', input => {
|
||||
this.handleGroupNotify(input)
|
||||
|
Loading…
x
Reference in New Issue
Block a user