diff --git a/mirai-core-api/src/commonMain/kotlin/contact/Contact.kt b/mirai-core-api/src/commonMain/kotlin/contact/Contact.kt index 7e0e87e55..e3424cc1d 100644 --- a/mirai-core-api/src/commonMain/kotlin/contact/Contact.kt +++ b/mirai-core-api/src/commonMain/kotlin/contact/Contact.kt @@ -36,7 +36,6 @@ public interface Contact : ContactOrBot, CoroutineScope { /** * 这个联系对象所属 [Bot]. */ - @WeakRefProperty public override val bot: Bot /** diff --git a/mirai-core-api/src/commonMain/kotlin/contact/Member.kt b/mirai-core-api/src/commonMain/kotlin/contact/Member.kt index ba957cdf1..0f7e67caf 100644 --- a/mirai-core-api/src/commonMain/kotlin/contact/Member.kt +++ b/mirai-core-api/src/commonMain/kotlin/contact/Member.kt @@ -21,7 +21,6 @@ import net.mamoe.mirai.message.action.Nudge import net.mamoe.mirai.message.data.Message import net.mamoe.mirai.message.data.isContentEmpty import net.mamoe.mirai.utils.NotStableForInheritance -import net.mamoe.mirai.utils.WeakRefProperty /** * 代表一位群成员. @@ -41,7 +40,6 @@ public interface Member : User { /** * 所在的群. */ - @WeakRefProperty public val group: Group /** diff --git a/mirai-core/src/commonMain/kotlin/contact/AbstractContact.kt b/mirai-core/src/commonMain/kotlin/contact/AbstractContact.kt index 2b4e88e3d..76eef94d6 100644 --- a/mirai-core/src/commonMain/kotlin/contact/AbstractContact.kt +++ b/mirai-core/src/commonMain/kotlin/contact/AbstractContact.kt @@ -11,18 +11,13 @@ package net.mamoe.mirai.internal.contact import kotlinx.coroutines.Job import kotlinx.coroutines.SupervisorJob -import net.mamoe.mirai.Bot import net.mamoe.mirai.contact.Contact import net.mamoe.mirai.internal.QQAndroidBot -import net.mamoe.mirai.utils.cast -import net.mamoe.mirai.utils.getValue -import net.mamoe.mirai.utils.unsafeWeakRef import kotlin.coroutines.CoroutineContext internal abstract class AbstractContact( - bot: Bot, + final override val bot: QQAndroidBot, coroutineContext: CoroutineContext, ) : Contact { final override val coroutineContext: CoroutineContext = coroutineContext + SupervisorJob(coroutineContext[Job]) - final override val bot: QQAndroidBot by bot.cast().unsafeWeakRef() } \ No newline at end of file diff --git a/mirai-core/src/commonMain/kotlin/contact/AbstractMember.kt b/mirai-core/src/commonMain/kotlin/contact/AbstractMember.kt index d237454ec..17bf99da2 100644 --- a/mirai-core/src/commonMain/kotlin/contact/AbstractMember.kt +++ b/mirai-core/src/commonMain/kotlin/contact/AbstractMember.kt @@ -14,17 +14,13 @@ import net.mamoe.mirai.contact.MemberPermission import net.mamoe.mirai.data.MemberInfo import net.mamoe.mirai.internal.contact.info.MemberInfoImpl import net.mamoe.mirai.utils.cast -import net.mamoe.mirai.utils.getValue -import net.mamoe.mirai.utils.unsafeWeakRef import kotlin.coroutines.CoroutineContext internal abstract class AbstractMember( - group: GroupImpl, + final override val group: GroupImpl, coroutineContext: CoroutineContext, memberInfo: MemberInfo, ) : AbstractUser(group.bot, coroutineContext, memberInfo), Member { - final override val group: GroupImpl by group.unsafeWeakRef() - final override val info: MemberInfoImpl = memberInfo.cast() override val nameCard: String get() = info.nameCard diff --git a/mirai-core/src/commonMain/kotlin/contact/AbstractUser.kt b/mirai-core/src/commonMain/kotlin/contact/AbstractUser.kt index 0514fc86d..962494537 100644 --- a/mirai-core/src/commonMain/kotlin/contact/AbstractUser.kt +++ b/mirai-core/src/commonMain/kotlin/contact/AbstractUser.kt @@ -9,12 +9,12 @@ package net.mamoe.mirai.internal.contact -import net.mamoe.mirai.Bot import net.mamoe.mirai.Mirai import net.mamoe.mirai.contact.User import net.mamoe.mirai.data.UserInfo import net.mamoe.mirai.event.broadcast import net.mamoe.mirai.event.events.* +import net.mamoe.mirai.internal.QQAndroidBot import net.mamoe.mirai.internal.message.OfflineFriendImage import net.mamoe.mirai.internal.message.contextualBugReportException import net.mamoe.mirai.internal.message.getImageType @@ -40,7 +40,7 @@ import kotlin.coroutines.CoroutineContext internal val User.info: UserInfo? get() = this.castOrNull()?.info internal abstract class AbstractUser( - bot: Bot, + bot: QQAndroidBot, coroutineContext: CoroutineContext, userInfo: UserInfo, ) : User, AbstractContact(bot, coroutineContext) { diff --git a/mirai-core/src/commonMain/kotlin/contact/OtherClientImpl.kt b/mirai-core/src/commonMain/kotlin/contact/OtherClientImpl.kt index b6056125f..6a2cc8153 100644 --- a/mirai-core/src/commonMain/kotlin/contact/OtherClientImpl.kt +++ b/mirai-core/src/commonMain/kotlin/contact/OtherClientImpl.kt @@ -9,7 +9,6 @@ package net.mamoe.mirai.internal.contact -import net.mamoe.mirai.Bot import net.mamoe.mirai.contact.OtherClient import net.mamoe.mirai.contact.OtherClientInfo import net.mamoe.mirai.internal.QQAndroidBot @@ -29,7 +28,7 @@ internal fun QQAndroidBot.createOtherClient( } internal class OtherClientImpl( - bot: Bot, + bot: QQAndroidBot, coroutineContext: CoroutineContext, override val info: OtherClientInfo, ) : OtherClient, AbstractContact(bot, coroutineContext) {