Shamrock: try fix #214

This commit is contained in:
whitechi73 2024-01-30 00:25:32 +08:00
parent c97f79335a
commit 328e656859
3 changed files with 12 additions and 5 deletions

View File

@ -335,7 +335,7 @@ internal object GroupSvc: BaseSvc() {
sendOidb("OidbSvc.0x570_8", 1392, 8, array)
}
fun kickMember(groupId: Long, rejectAddRequest: Boolean, vararg memberUin: Long) {
fun kickMember(groupId: Long, rejectAddRequest: Boolean, kickMsg: String, vararg memberUin: Long) {
val reqBody = oidb_0x8a0.ReqBody()
reqBody.opt_uint64_group_code.set(groupId)
@ -346,6 +346,7 @@ internal object GroupSvc: BaseSvc() {
memberInfo.opt_uint32_flag.set(if (rejectAddRequest) 1 else 0)
reqBody.rpt_msg_kick_list.add(memberInfo)
}
reqBody.bytes_kick_msg.set(ByteStringMicro.copyFrom(kickMsg.toByteArray()))
sendOidb("OidbSvc.0x8a0_0", 2208, 0, reqBody.toByteArray())
}

View File

@ -12,13 +12,14 @@ internal object KickTroopMember: IActionHandler() {
override suspend fun internalHandle(session: ActionSession): String {
val groupId = session.getLong("group_id")
val userId = session.getLong("user_id")
val kickMsg = session.getStringOrNull("kick_msg") ?: ""
val rejectAddRequest = session.getBooleanOrDefault("reject_add_request", false)
return invoke(groupId, userId, rejectAddRequest, session.echo)
return invoke(groupId, userId, rejectAddRequest, kickMsg, session.echo)
}
operator fun invoke(groupId: Long, userId: Long, rejectAddRequest: Boolean = false, echo: JsonElement = EmptyJsonString): String {
GroupSvc.kickMember(groupId, rejectAddRequest, userId)
operator fun invoke(groupId: Long, userId: Long, rejectAddRequest: Boolean = false, kickMsg: String, echo: JsonElement = EmptyJsonString): String {
GroupSvc.kickMember(groupId, rejectAddRequest, kickMsg, userId)
return ok("成功", echo)
}

View File

@ -120,7 +120,12 @@ fun Routing.troopAction() {
getOrPost("/set_group_kick") {
val userId = fetchOrThrow("user_id").toLong()
val groupId = fetchOrThrow("group_id").toLong()
call.respondText(KickTroopMember(groupId, userId), ContentType.Application.Json)
val kickMsg = fetchOrNull("kick_msg") ?: ""
val rejectAddRequest = when(fetchGetOrNull("reject_add_request")) {
"1", "true" -> true
else -> false
}
call.respondText(KickTroopMember(groupId, userId, rejectAddRequest, kickMsg), ContentType.Application.Json)
}
getOrPost("/set_essence_msg") {