Commit f28e50e0 authored by Him188's avatar Him188

Add fail-fast check

parent ee89f22c
...@@ -196,9 +196,13 @@ internal class MemberImpl constructor( ...@@ -196,9 +196,13 @@ internal class MemberImpl constructor(
net.mamoe.mirai.event.events.MemberUnmuteEvent(this@MemberImpl, null).broadcast() net.mamoe.mirai.event.events.MemberUnmuteEvent(this@MemberImpl, null).broadcast()
} }
@OptIn(MiraiInternalAPI::class)
@JvmSynthetic @JvmSynthetic
override suspend fun kick(message: String) { override suspend fun kick(message: String) {
checkBotPermissionHigherThanThis() checkBotPermissionHigherThanThis()
check(group.members.getOrNull(this.id) != null) {
"Member ${this.id} had already been kicked from group ${group.id}"
}
bot.network.run { bot.network.run {
val response: TroopManagement.Kick.Response = TroopManagement.Kick( val response: TroopManagement.Kick.Response = TroopManagement.Kick(
client = bot.client, client = bot.client,
...@@ -208,6 +212,7 @@ internal class MemberImpl constructor( ...@@ -208,6 +212,7 @@ internal class MemberImpl constructor(
check(response.success) { "kick failed: ${response.ret}" } check(response.success) { "kick failed: ${response.ret}" }
group.members.delegate.removeIf { it.id == this@MemberImpl.id }
MemberLeaveEvent.Kick(this@MemberImpl, null).broadcast() MemberLeaveEvent.Kick(this@MemberImpl, null).broadcast()
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment