diff --git a/src/onebot/api/group.ts b/src/onebot/api/group.ts index 819c82ec..87020100 100644 --- a/src/onebot/api/group.ts +++ b/src/onebot/api/group.ts @@ -116,9 +116,10 @@ export class OneBotGroupApi { const member = await this.core.apis.GroupApi.getGroupMember(msg.peerUid, msg.senderUin); if (member && member.cardName !== msg.sendMemberName) { const newCardName = msg.sendMemberName ?? ''; - // 防止误触:如果新名片为空且旧名片不为空,不触发事件(可能是转发消息等场景的不可靠数据) - if (newCardName === '' && member.cardName !== '') { - this.core.context.logger.logDebug('忽略不可靠的群名片变更事件', { + // 防止误触:如果消息包含转发元素且新名片为空,不触发事件(转发消息的sendMemberName不可靠) + const hasForwardElement = msg.elements.some(e => e.multiForwardMsgElement || e.arkElement); + if (newCardName === '' && member.cardName !== '' && hasForwardElement) { + this.core.context.logger.logDebug('忽略转发消息的不可靠群名片变更事件', { peerUid: msg.peerUid, senderUin: msg.senderUin, oldCard: member.cardName,