diff --git a/mirai-core-api/src/commonMain/kotlin/IMirai.kt b/mirai-core-api/src/commonMain/kotlin/IMirai.kt index cd29fe42c..d3dcdcf88 100644 --- a/mirai-core-api/src/commonMain/kotlin/IMirai.kt +++ b/mirai-core-api/src/commonMain/kotlin/IMirai.kt @@ -113,6 +113,7 @@ public interface IMirai : LowLevelApiAccessor { */ public fun getUin(contactOrBot: ContactOrBot): Long { return if (contactOrBot is Group) + @Suppress("DEPRECATION") calculateGroupUinByGroupCode(contactOrBot.id) else contactOrBot.id } @@ -121,6 +122,10 @@ public interface IMirai : LowLevelApiAccessor { * 使用 groupCode 计算 groupUin. 这两个值仅在 mirai 内部协议区分, 一般人使用时无需在意. * @see getUin */ + @Deprecated( + "The result might be wrong. Consider using getUin", + level = DeprecationLevel.WARNING + ) // deprecated since 2.8.0-RC, see #1479 public fun calculateGroupUinByGroupCode(groupCode: Long): Long { var left: Long = groupCode / 1000000L when (left) { diff --git a/mirai-core/src/commonMain/kotlin/message/outgoingSourceImpl.kt b/mirai-core/src/commonMain/kotlin/message/outgoingSourceImpl.kt index 42f2ebb4c..389a7ec6c 100644 --- a/mirai-core/src/commonMain/kotlin/message/outgoingSourceImpl.kt +++ b/mirai-core/src/commonMain/kotlin/message/outgoingSourceImpl.kt @@ -17,9 +17,9 @@ import kotlinx.coroutines.Deferred import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.serialization.Serializable import net.mamoe.mirai.Bot -import net.mamoe.mirai.Mirai import net.mamoe.mirai.contact.* import net.mamoe.mirai.event.asyncFromEventOrNull +import net.mamoe.mirai.internal.contact.uin import net.mamoe.mirai.internal.network.notice.group.GroupMessageProcessor.SendGroupMessageReceipt import net.mamoe.mirai.internal.network.protocol.data.proto.ImMsgBody import net.mamoe.mirai.internal.network.protocol.data.proto.MsgComm @@ -200,7 +200,7 @@ internal class OnlineMessageSourceToGroupImpl( ImMsgBody.SourceMsg( origSeqs = sequenceIds, senderUin = fromId, - toUin = Mirai.calculateGroupUinByGroupCode(targetId), + toUin = target.uin, flag = 1, elems = elements, type = 0, @@ -211,7 +211,7 @@ internal class OnlineMessageSourceToGroupImpl( srcMsg = MsgComm.Msg( msgHead = MsgComm.MsgHead( fromUin = fromId, // qq - toUin = Mirai.calculateGroupUinByGroupCode(targetId), // group + toUin = target.uin, // group msgType = 82, // 82? c2cCmd = 1, msgSeq = sequenceIds.single(), diff --git a/mirai-core/src/commonTest/kotlin/notice/Desensitizer.kt b/mirai-core/src/commonTest/kotlin/notice/Desensitizer.kt index afc18c66a..d06cc07d2 100644 --- a/mirai-core/src/commonTest/kotlin/notice/Desensitizer.kt +++ b/mirai-core/src/commonTest/kotlin/notice/Desensitizer.kt @@ -134,6 +134,7 @@ internal class Desensitizer private constructor( rules.forEach { (t, u) -> if (t.toLongOrNull() != null && u.toLongOrNull() != null) { addExtraRulesForNumber(t.toLong(), u.toLong()) + @Suppress("DEPRECATION") addExtraRulesForNumber( Mirai.calculateGroupUinByGroupCode(t.toLong()), Mirai.calculateGroupUinByGroupCode(u.toLong()) diff --git a/mirai-core/src/commonTest/kotlin/notice/processors/AbstractNoticeProcessorTest.kt b/mirai-core/src/commonTest/kotlin/notice/processors/AbstractNoticeProcessorTest.kt index a5c22ef2e..93403ff90 100644 --- a/mirai-core/src/commonTest/kotlin/notice/processors/AbstractNoticeProcessorTest.kt +++ b/mirai-core/src/commonTest/kotlin/notice/processors/AbstractNoticeProcessorTest.kt @@ -150,6 +150,7 @@ internal interface GroupExtensions { val impl = GroupImpl( bot.cast(), coroutineContext, id, GroupInfo( + @Suppress("DEPRECATION") Mirai.calculateGroupUinByGroupCode(id), owner, id, memo, name, allowMemberInvite, allowAnonymousChat, autoApprove, confessTalk, muteAll, botMuteTimestamp ),