fix(command/moderation): adding the position 0 for kick

The serenity lib return None on .member_highest_role so adding an
unwrap_or(0)
This commit is contained in:
Raphael 2026-03-16 14:40:17 +01:00
parent 05a1ff5c7b
commit 38228d8cee
No known key found for this signature in database

View file

@ -82,10 +82,19 @@ impl SlashCommand for Kick {
command.create_response(&ctx.http, response).await?;
return Ok(());
}
let target_role: &Role = guild.member_highest_role(&target_member).unwrap();
let executor_role: &Role = guild.member_highest_role(&executor_member).unwrap();
let bot_role: &Role = guild.member_highest_role(&bot_member).unwrap();
if target_role > executor_role || target_role > bot_role || target_id == guild.owner_id {
let target_role_pos: u16 = guild
.member_highest_role(&target_member)
.map(|r| r.position)
.unwrap_or(0);
let executor_role_pos: u16 = guild
.member_highest_role(&executor_member)
.map(|r| r.position)
.unwrap_or(0);
let bot_role_pos: u16 = guild
.member_highest_role(&bot_member)
.map(|r| r.position)
.unwrap_or(0);
if target_role_pos > executor_role_pos || target_role_pos > bot_role_pos || target_id == guild.owner_id {
let message: CreateInteractionResponseMessage = CreateInteractionResponseMessage::new()
.content(format!("{} | You cannot kick this user because they are hierarchically above you", _emoji.answer.error))
.ephemeral(true);