mirror of
https://github.com/mamoe/mirai.git
synced 2025-03-28 16:50:09 +08:00
Reduce code redundancy
This commit is contained in:
parent
ed46780983
commit
a9972dc030
@ -198,7 +198,7 @@ internal class MessageSvc {
|
|||||||
if (group.members.contains(msg.msgHead.authUin)) {
|
if (group.members.contains(msg.msgHead.authUin)) {
|
||||||
return@mapNotNull null
|
return@mapNotNull null
|
||||||
}
|
}
|
||||||
return@mapNotNull MemberJoinEvent(group.Member(object : MemberInfo {
|
return@mapNotNull MemberJoinEvent(group.newMember(object : MemberInfo {
|
||||||
override val nameCard: String get() = ""
|
override val nameCard: String get() = ""
|
||||||
override val permission: MemberPermission get() = MemberPermission.MEMBER
|
override val permission: MemberPermission get() = MemberPermission.MEMBER
|
||||||
override val specialTitle: String get() = ""
|
override val specialTitle: String get() = ""
|
||||||
|
@ -32,7 +32,6 @@ import net.mamoe.mirai.utils.WeakRefProperty
|
|||||||
*
|
*
|
||||||
* @author Him188moe
|
* @author Him188moe
|
||||||
*/
|
*/
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
|
||||||
@OptIn(MiraiInternalAPI::class, JavaHappyAPI::class)
|
@OptIn(MiraiInternalAPI::class, JavaHappyAPI::class)
|
||||||
actual abstract class Contact : CoroutineScope, ContactJavaHappyAPI() {
|
actual abstract class Contact : CoroutineScope, ContactJavaHappyAPI() {
|
||||||
/**
|
/**
|
||||||
|
@ -25,7 +25,6 @@ import net.mamoe.mirai.utils.OverFileSizeMaxException
|
|||||||
/**
|
/**
|
||||||
* 群. 在 QQ Android 中叫做 "Troop"
|
* 群. 在 QQ Android 中叫做 "Troop"
|
||||||
*/
|
*/
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
|
||||||
actual abstract class Group : Contact(), CoroutineScope {
|
actual abstract class Group : Contact(), CoroutineScope {
|
||||||
/**
|
/**
|
||||||
* 群名称.
|
* 群名称.
|
||||||
@ -101,7 +100,7 @@ actual abstract class Group : Contact(), CoroutineScope {
|
|||||||
actual abstract val owner: Member
|
actual abstract val owner: Member
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* [Bot] 在群内的 [Member] 实例
|
* [Bot] 在群内的 [newMember] 实例
|
||||||
*/
|
*/
|
||||||
@MiraiExperimentalAPI
|
@MiraiExperimentalAPI
|
||||||
actual abstract val botAsMember: Member
|
actual abstract val botAsMember: Member
|
||||||
@ -158,13 +157,12 @@ actual abstract class Group : Contact(), CoroutineScope {
|
|||||||
actual abstract suspend fun quit(): Boolean
|
actual abstract suspend fun quit(): Boolean
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造一个 [Member].
|
* 构造一个 [newMember].
|
||||||
* 非特殊情况请不要使用这个函数. 优先使用 [get].
|
* 非特殊情况请不要使用这个函数. 优先使用 [get].
|
||||||
*/
|
*/
|
||||||
@JvmName("newMember")
|
@Suppress("FunctionName")
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME", "FunctionName")
|
|
||||||
@MiraiExperimentalAPI("dangerous")
|
@MiraiExperimentalAPI("dangerous")
|
||||||
actual abstract fun Member(memberInfo: MemberInfo): Member
|
actual abstract fun newMember(memberInfo: MemberInfo): Member
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 向这个对象发送消息.
|
* 向这个对象发送消息.
|
||||||
@ -193,40 +191,11 @@ actual abstract class Group : Contact(), CoroutineScope {
|
|||||||
actual abstract override suspend fun uploadImage(image: ExternalImage): OfflineGroupImage
|
actual abstract override suspend fun uploadImage(image: ExternalImage): OfflineGroupImage
|
||||||
|
|
||||||
actual companion object {
|
actual companion object {
|
||||||
/**
|
actual fun calculateGroupUinByGroupCode(groupCode: Long): Long =
|
||||||
* by @kar98k
|
CommonGroupCalculations.calculateGroupUinByGroupCode(groupCode)
|
||||||
*/
|
|
||||||
actual fun calculateGroupUinByGroupCode(groupCode: Long): Long {
|
|
||||||
var left: Long = groupCode / 1000000L
|
|
||||||
|
|
||||||
when (left) {
|
actual fun calculateGroupCodeByGroupUin(groupUin: Long): Long =
|
||||||
in 0..10 -> left += 202
|
CommonGroupCalculations.calculateGroupCodeByGroupUin(groupUin)
|
||||||
in 11..19 -> left += 480 - 11
|
|
||||||
in 20..66 -> left += 2100 - 20
|
|
||||||
in 67..156 -> left += 2010 - 67
|
|
||||||
in 157..209 -> left += 2147 - 157
|
|
||||||
in 210..309 -> left += 4100 - 210
|
|
||||||
in 310..499 -> left += 3800 - 310
|
|
||||||
}
|
|
||||||
|
|
||||||
return left * 1000000L + groupCode % 1000000L
|
|
||||||
}
|
|
||||||
|
|
||||||
actual fun calculateGroupCodeByGroupUin(groupUin: Long): Long {
|
|
||||||
var left: Long = groupUin / 1000000L
|
|
||||||
|
|
||||||
when (left) {
|
|
||||||
in 0 + 202..10 + 202 -> left -= 202
|
|
||||||
in 11 + 480 - 11..19 + 480 - 11 -> left -= 480 - 11
|
|
||||||
in 20 + 2100 - 20..66 + 2100 - 20 -> left -= 2100 - 20
|
|
||||||
in 67 + 2010 - 67..156 + 2010 - 67 -> left -= 2010 - 67
|
|
||||||
in 157 + 2147 - 157..209 + 2147 - 157 -> left -= 2147 - 157
|
|
||||||
in 210 + 4100 - 210..309 + 4100 - 210 -> left -= 4100 - 210
|
|
||||||
in 310 + 3800 - 310..499 + 3800 - 310 -> left -= 3800 - 310
|
|
||||||
}
|
|
||||||
|
|
||||||
return left * 1000000L + groupUin % 1000000L
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@MiraiExperimentalAPI
|
@MiraiExperimentalAPI
|
||||||
|
@ -36,7 +36,6 @@ import kotlin.jvm.JvmSynthetic
|
|||||||
* @author Him188moe
|
* @author Him188moe
|
||||||
*/ // 不要删除多平台结构 !!! kotlin bug
|
*/ // 不要删除多平台结构 !!! kotlin bug
|
||||||
@OptIn(MiraiInternalAPI::class, JavaHappyAPI::class)
|
@OptIn(MiraiInternalAPI::class, JavaHappyAPI::class)
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
|
||||||
expect abstract class Contact() : CoroutineScope, ContactJavaHappyAPI {
|
expect abstract class Contact() : CoroutineScope, ContactJavaHappyAPI {
|
||||||
/**
|
/**
|
||||||
* 这个联系人所属 [Bot].
|
* 这个联系人所属 [Bot].
|
||||||
|
@ -99,7 +99,7 @@ expect abstract class Group() : Contact, CoroutineScope {
|
|||||||
abstract val owner: Member
|
abstract val owner: Member
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* [Bot] 在群内的 [Member] 实例
|
* [Bot] 在群内的 [newMember] 实例
|
||||||
*/
|
*/
|
||||||
@MiraiExperimentalAPI
|
@MiraiExperimentalAPI
|
||||||
abstract val botAsMember: Member
|
abstract val botAsMember: Member
|
||||||
@ -158,13 +158,13 @@ expect abstract class Group() : Contact, CoroutineScope {
|
|||||||
abstract suspend fun quit(): Boolean
|
abstract suspend fun quit(): Boolean
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造一个 [Member].
|
* 构造一个 [newMember].
|
||||||
* 非特殊情况请不要使用这个函数. 优先使用 [get].
|
* 非特殊情况请不要使用这个函数. 优先使用 [get].
|
||||||
*/
|
*/
|
||||||
@MiraiExperimentalAPI("dangerous")
|
@MiraiExperimentalAPI("dangerous")
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME", "FunctionName")
|
@Suppress("INAPPLICABLE_JVM_NAME", "FunctionName")
|
||||||
@JvmName("newMember")
|
@JvmName("newMember")
|
||||||
abstract fun Member(memberInfo: MemberInfo): Member
|
abstract fun newMember(memberInfo: MemberInfo): Member
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 向这个对象发送消息.
|
* 向这个对象发送消息.
|
||||||
@ -203,9 +203,46 @@ expect abstract class Group() : Contact, CoroutineScope {
|
|||||||
fun toFullString(): String
|
fun toFullString(): String
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal object CommonGroupCalculations {
|
||||||
|
/**
|
||||||
|
* by @kar98k
|
||||||
|
*/
|
||||||
|
fun calculateGroupUinByGroupCode(groupCode: Long): Long {
|
||||||
|
var left: Long = groupCode / 1000000L
|
||||||
|
|
||||||
|
when (left) {
|
||||||
|
in 0..10 -> left += 202
|
||||||
|
in 11..19 -> left += 480 - 11
|
||||||
|
in 20..66 -> left += 2100 - 20
|
||||||
|
in 67..156 -> left += 2010 - 67
|
||||||
|
in 157..209 -> left += 2147 - 157
|
||||||
|
in 210..309 -> left += 4100 - 210
|
||||||
|
in 310..499 -> left += 3800 - 310
|
||||||
|
}
|
||||||
|
|
||||||
|
return left * 1000000L + groupCode % 1000000L
|
||||||
|
}
|
||||||
|
|
||||||
|
fun calculateGroupCodeByGroupUin(groupUin: Long): Long {
|
||||||
|
var left: Long = groupUin / 1000000L
|
||||||
|
|
||||||
|
when (left) {
|
||||||
|
in 0 + 202..10 + 202 -> left -= 202
|
||||||
|
in 11 + 480 - 11..19 + 480 - 11 -> left -= 480 - 11
|
||||||
|
in 20 + 2100 - 20..66 + 2100 - 20 -> left -= 2100 - 20
|
||||||
|
in 67 + 2010 - 67..156 + 2010 - 67 -> left -= 2010 - 67
|
||||||
|
in 157 + 2147 - 157..209 + 2147 - 157 -> left -= 2147 - 157
|
||||||
|
in 210 + 4100 - 210..309 + 4100 - 210 -> left -= 4100 - 210
|
||||||
|
in 310 + 3800 - 310..499 + 3800 - 310 -> left -= 3800 - 310
|
||||||
|
}
|
||||||
|
|
||||||
|
return left * 1000000L + groupUin % 1000000L
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 返回机器人是否正在被禁言
|
* 返回机器人是否正在被禁言
|
||||||
*
|
*
|
||||||
* @see Group.botMuteRemaining 剩余禁言时间
|
* @see Group.botMuteRemaining 剩余禁言时间
|
||||||
*/
|
*/
|
||||||
val Group.isBotMuted: Boolean get() = this.botMuteRemaining != 0
|
inline val Group.isBotMuted: Boolean get() = this.botMuteRemaining != 0
|
||||||
|
@ -31,7 +31,6 @@ import net.mamoe.mirai.utils.WeakRefProperty
|
|||||||
*
|
*
|
||||||
* @author Him188moe
|
* @author Him188moe
|
||||||
*/
|
*/
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME")
|
|
||||||
@OptIn(MiraiInternalAPI::class, JavaHappyAPI::class)
|
@OptIn(MiraiInternalAPI::class, JavaHappyAPI::class)
|
||||||
actual abstract class Contact : CoroutineScope, ContactJavaHappyAPI() {
|
actual abstract class Contact : CoroutineScope, ContactJavaHappyAPI() {
|
||||||
/**
|
/**
|
||||||
|
@ -101,7 +101,7 @@ actual abstract class Group : Contact(), CoroutineScope {
|
|||||||
actual abstract val owner: Member
|
actual abstract val owner: Member
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* [Bot] 在群内的 [Member] 实例
|
* [Bot] 在群内的 [newMember] 实例
|
||||||
*/
|
*/
|
||||||
@MiraiExperimentalAPI
|
@MiraiExperimentalAPI
|
||||||
actual abstract val botAsMember: Member
|
actual abstract val botAsMember: Member
|
||||||
@ -159,13 +159,13 @@ actual abstract class Group : Contact(), CoroutineScope {
|
|||||||
actual abstract suspend fun quit(): Boolean
|
actual abstract suspend fun quit(): Boolean
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造一个 [Member].
|
* 构造一个 [newMember].
|
||||||
* 非特殊情况请不要使用这个函数. 优先使用 [get].
|
* 非特殊情况请不要使用这个函数. 优先使用 [get].
|
||||||
*/
|
*/
|
||||||
@JvmName("newMember")
|
@JvmName("newMember")
|
||||||
@Suppress("INAPPLICABLE_JVM_NAME", "FunctionName")
|
@Suppress("INAPPLICABLE_JVM_NAME", "FunctionName")
|
||||||
@MiraiExperimentalAPI("dangerous")
|
@MiraiExperimentalAPI("dangerous")
|
||||||
actual abstract fun Member(memberInfo: MemberInfo): Member
|
actual abstract fun newMember(memberInfo: MemberInfo): Member
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 向这个对象发送消息.
|
* 向这个对象发送消息.
|
||||||
@ -194,40 +194,11 @@ actual abstract class Group : Contact(), CoroutineScope {
|
|||||||
actual abstract override suspend fun uploadImage(image: ExternalImage): OfflineGroupImage
|
actual abstract override suspend fun uploadImage(image: ExternalImage): OfflineGroupImage
|
||||||
|
|
||||||
actual companion object {
|
actual companion object {
|
||||||
/**
|
actual fun calculateGroupUinByGroupCode(groupCode: Long): Long =
|
||||||
* by @kar98k
|
CommonGroupCalculations.calculateGroupUinByGroupCode(groupCode)
|
||||||
*/
|
|
||||||
actual fun calculateGroupUinByGroupCode(groupCode: Long): Long {
|
|
||||||
var left: Long = groupCode / 1000000L
|
|
||||||
|
|
||||||
when (left) {
|
actual fun calculateGroupCodeByGroupUin(groupUin: Long): Long =
|
||||||
in 0..10 -> left += 202
|
CommonGroupCalculations.calculateGroupCodeByGroupUin(groupUin)
|
||||||
in 11..19 -> left += 480 - 11
|
|
||||||
in 20..66 -> left += 2100 - 20
|
|
||||||
in 67..156 -> left += 2010 - 67
|
|
||||||
in 157..209 -> left += 2147 - 157
|
|
||||||
in 210..309 -> left += 4100 - 210
|
|
||||||
in 310..499 -> left += 3800 - 310
|
|
||||||
}
|
|
||||||
|
|
||||||
return left * 1000000L + groupCode % 1000000L
|
|
||||||
}
|
|
||||||
|
|
||||||
actual fun calculateGroupCodeByGroupUin(groupUin: Long): Long {
|
|
||||||
var left: Long = groupUin / 1000000L
|
|
||||||
|
|
||||||
when (left) {
|
|
||||||
in 0 + 202..10 + 202 -> left -= 202
|
|
||||||
in 11 + 480 - 11..19 + 480 - 11 -> left -= 480 - 11
|
|
||||||
in 20 + 2100 - 20..66 + 2100 - 20 -> left -= 2100 - 20
|
|
||||||
in 67 + 2010 - 67..156 + 2010 - 67 -> left -= 2010 - 67
|
|
||||||
in 157 + 2147 - 157..209 + 2147 - 157 -> left -= 2147 - 157
|
|
||||||
in 210 + 4100 - 210..309 + 4100 - 210 -> left -= 4100 - 210
|
|
||||||
in 310 + 3800 - 310..499 + 3800 - 310 -> left -= 3800 - 310
|
|
||||||
}
|
|
||||||
|
|
||||||
return left * 1000000L + groupUin % 1000000L
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@MiraiExperimentalAPI
|
@MiraiExperimentalAPI
|
||||||
|
Loading…
Reference in New Issue
Block a user