diff --git a/mirai-core/src/commonMain/kotlin/contact/AbstractMember.kt b/mirai-core/src/commonMain/kotlin/contact/AbstractMember.kt index 73f55e4ce..7a710765f 100644 --- a/mirai-core/src/commonMain/kotlin/contact/AbstractMember.kt +++ b/mirai-core/src/commonMain/kotlin/contact/AbstractMember.kt @@ -21,8 +21,12 @@ internal sealed class AbstractMember( parentCoroutineContext: CoroutineContext, memberInfo: MemberInfo, ) : AbstractUser(group.bot, parentCoroutineContext, memberInfo), Member { + final override val info: MemberInfoImpl = memberInfo.cast() + override var nick: String by info::nick + override var remark: String by info::remark + override val nameCard: String get() = info.nameCard override val specialTitle: String get() = info.specialTitle override var permission: MemberPermission by info::permission diff --git a/mirai-core/src/commonMain/kotlin/contact/AbstractUser.kt b/mirai-core/src/commonMain/kotlin/contact/AbstractUser.kt index 76ad013d8..a0017452e 100644 --- a/mirai-core/src/commonMain/kotlin/contact/AbstractUser.kt +++ b/mirai-core/src/commonMain/kotlin/contact/AbstractUser.kt @@ -62,8 +62,8 @@ internal sealed class AbstractUser( ) : User, AbstractContact(bot, parentCoroutineContext) { final override val id: Long = userInfo.uin - final override var nick: String = userInfo.nick - final override val remark: String = userInfo.remark + abstract override val nick: String + abstract override val remark: String val messageSeq = AtomicIntSeq.forMessageSeq() val fragmentedMessageMerger = C2CPkgMsgParsingCache() diff --git a/mirai-core/src/commonMain/kotlin/contact/FriendImpl.kt b/mirai-core/src/commonMain/kotlin/contact/FriendImpl.kt index b5c757daf..89dce8ba8 100644 --- a/mirai-core/src/commonMain/kotlin/contact/FriendImpl.kt +++ b/mirai-core/src/commonMain/kotlin/contact/FriendImpl.kt @@ -63,6 +63,8 @@ internal class FriendImpl( parentCoroutineContext: CoroutineContext, override val info: FriendInfoImpl, ) : Friend, AbstractUser(bot, parentCoroutineContext, info) { + override var nick: String by info::nick + override var remark: String by info::remark override suspend fun delete() { check(bot.friends[id] != null) { "Friend $id had already been deleted" diff --git a/mirai-core/src/commonMain/kotlin/contact/StrangerImpl.kt b/mirai-core/src/commonMain/kotlin/contact/StrangerImpl.kt index eff70f575..7459eb91a 100644 --- a/mirai-core/src/commonMain/kotlin/contact/StrangerImpl.kt +++ b/mirai-core/src/commonMain/kotlin/contact/StrangerImpl.kt @@ -48,6 +48,8 @@ internal class StrangerImpl( parentCoroutineContext: CoroutineContext, override val info: StrangerInfo, ) : Stranger, AbstractUser(bot, parentCoroutineContext, info) { + override val nick: String by info::nick + override val remark: String by info::remark override suspend fun delete() { check(bot.strangers[this.id] != null) { "Stranger ${this.id} had already been deleted"