Skip to content

Commit

Permalink
Fix group detection; fix #1661
Browse files Browse the repository at this point in the history
  • Loading branch information
Karlatemp committed Nov 12, 2021
1 parent 92ab2bf commit 4db04e2
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5027,7 +5027,7 @@ public abstract class net/mamoe/mirai/message/data/OnlineMessageSource$Incoming$
public final fun getGroup ()Lnet/mamoe/mirai/contact/Group;
public abstract fun getSender ()Lnet/mamoe/mirai/contact/Member;
public synthetic fun getSubject ()Lnet/mamoe/mirai/contact/Contact;
public final fun getSubject ()Lnet/mamoe/mirai/contact/Group;
public fun getSubject ()Lnet/mamoe/mirai/contact/Group;
public synthetic fun getTarget ()Lnet/mamoe/mirai/contact/ContactOrBot;
public final fun getTarget ()Lnet/mamoe/mirai/contact/Group;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5027,7 +5027,7 @@ public abstract class net/mamoe/mirai/message/data/OnlineMessageSource$Incoming$
public final fun getGroup ()Lnet/mamoe/mirai/contact/Group;
public abstract fun getSender ()Lnet/mamoe/mirai/contact/Member;
public synthetic fun getSubject ()Lnet/mamoe/mirai/contact/Contact;
public final fun getSubject ()Lnet/mamoe/mirai/contact/Group;
public fun getSubject ()Lnet/mamoe/mirai/contact/Group;
public synthetic fun getTarget ()Lnet/mamoe/mirai/contact/ContactOrBot;
public final fun getTarget ()Lnet/mamoe/mirai/contact/Group;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -558,9 +558,9 @@ public sealed class OnlineMessageSource : MessageSource() { // TODO: 2021/1/10 E
AbstractPolymorphicMessageKey<Incoming, FromGroup>(Incoming, { it.safeCast() })

public abstract override val sender: Member
public final override val subject: Group get() = sender.group
public final override val target: Group get() = group
public inline val group: Group get() = sender.group
public override val subject: Group get() = sender.group
public final override val target: Group get() = subject
public inline val group: Group get() = subject
}

public companion object Key :
Expand Down
6 changes: 3 additions & 3 deletions mirai-core/src/commonMain/kotlin/MiraiImpl.kt
Original file line number Diff line number Diff line change
Expand Up @@ -467,9 +467,9 @@ internal open class MiraiImpl : IMirai, LowLevelApiAccessor {
is OnlineMessageSourceToGroupImpl,
is OnlineMessageSourceFromGroupImpl
-> {
val group = when (source) {
is OnlineMessageSourceToGroupImpl -> source.target
is OnlineMessageSourceFromGroupImpl -> source.group
val group: Group = when (source) {
is OnlineMessageSourceToGroupImpl -> source.subject
is OnlineMessageSourceFromGroupImpl -> source.subject
else -> error("stub")
}
if (bot.id != source.fromId) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import net.mamoe.mirai.contact.Friend
import net.mamoe.mirai.contact.Member
import net.mamoe.mirai.contact.Stranger
import net.mamoe.mirai.internal.asQQAndroidBot
import net.mamoe.mirai.internal.contact.GroupImpl
import net.mamoe.mirai.internal.contact.checkIsGroupImpl
import net.mamoe.mirai.internal.contact.newAnonymous
import net.mamoe.mirai.internal.getGroupByUinOrCodeOrFail
Expand Down Expand Up @@ -174,13 +175,19 @@ internal class OnlineMessageSourceFromGroupImpl(
}
override val originalMessage: MessageChain get() = originalMessageLazy.value

override val sender: Member by lazy {
override val subject: GroupImpl by lazy {
val groupCode = msg.first().msgHead.groupInfo?.groupCode
?: error("cannot find groupCode for OnlineMessageSourceFromGroupImpl. msg=${msg._miraiContentToString()}")

val group = bot.getGroup(groupCode)?.checkIsGroupImpl()
?: error("cannot find group for OnlineMessageSourceFromGroupImpl. msg=${msg._miraiContentToString()}")

group
}

override val sender: Member by lazy {
val group = subject

val member = group[msg.first().msgHead.fromUin]
if (member != null) return@lazy member

Expand Down

0 comments on commit 4db04e2

Please sign in to comment.