From cf82401eed077b88760043c663995eb173ba0886 Mon Sep 17 00:00:00 2001 From: ryoii Date: Sat, 8 Feb 2020 18:40:09 +0800 Subject: [PATCH] http-api support kick --- .../api/http/route/GroupManageRouteModule.kt | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/mirai-api-http/src/main/kotlin/net/mamoe/mirai/api/http/route/GroupManageRouteModule.kt b/mirai-api-http/src/main/kotlin/net/mamoe/mirai/api/http/route/GroupManageRouteModule.kt index 96bd31f68..5e5f10720 100644 --- a/mirai-api-http/src/main/kotlin/net/mamoe/mirai/api/http/route/GroupManageRouteModule.kt +++ b/mirai-api-http/src/main/kotlin/net/mamoe/mirai/api/http/route/GroupManageRouteModule.kt @@ -28,14 +28,24 @@ fun Application.groupManageModule() { } miraiVerify("/mute") { - when(it.session.bot.getGroup(it.target)[it.memberId].mute(it.time)) { + when (it.session.bot.getGroup(it.target)[it.memberId].mute(it.time)) { true -> call.respondStateCode(StateCode.Success) else -> throw PermissionDeniedException } } miraiVerify("/unmute") { - when(it.session.bot.getGroup(it.target).members[it.memberId].unmute()) { + when (it.session.bot.getGroup(it.target).members[it.memberId].unmute()) { + true -> call.respondStateCode(StateCode.Success) + else -> throw PermissionDeniedException + } + } + + /** + * 移出群聊(需要相关权限) + */ + miraiVerify("/kick") { + when (it.session.bot.getGroup(it.target)[it.memberId].kick(it.msg)) { true -> call.respondStateCode(StateCode.Success) else -> throw PermissionDeniedException } @@ -55,7 +65,7 @@ fun Application.groupManageModule() { name?.let { group.name = it } announcement?.let { group.announcement = it } confessTalk?.let { group.confessTalk = it } - allowMemberInvite?.let{ group.allowMemberInvite = it } + allowMemberInvite?.let { group.allowMemberInvite = it } // TODO: 待core接口实现设置可改 // autoApprove?.let { group.autoApprove = it } // anonymousChat?.let { group.anonymousChat = it } @@ -92,6 +102,14 @@ private data class MuteDTO( val time: Int = 0 ) : VerifyDTO() +@Serializable +private data class KickDTO( + override val sessionKey: String, + val target: Long, + val memberId: Long, + val msg: String = "" +) : VerifyDTO() + @Serializable private data class GroupConfigDTO( override val sessionKey: String, @@ -128,4 +146,4 @@ private data class MemberDetailDTO( val specialTitle: String? = null ) : DTO { constructor(member: Member) : this(member.groupCard, member.specialTitle) -} \ No newline at end of file +}