fix(moderation): don't fail when taken_roles is empty

This commit is contained in:
Ax333l 2023-01-04 14:54:52 +01:00
parent 503e095bd0
commit bf0c34e167

View File

@ -93,18 +93,21 @@ pub fn queue_unmute_member(
.await? .await?
.ok_or("User was not muted.")?; .ok_or("User was not muted.")?;
let taken_roles = db_result
.taken_roles
.unwrap()
.into_iter()
.map(|r| RoleId::from(r.parse::<u64>().unwrap()))
.collect::<Vec<_>>();
let http = &ctx.http;
// Update roles if they didn't leave the guild. // Update roles if they didn't leave the guild.
if let Some(mut member) = ctx.cache.member(guild_id, user_id) { if let Some(mut member) = ctx.cache.member(guild_id, user_id) {
member.add_roles(http, &taken_roles).await?; let http = &ctx.http;
if let Some(taken_roles) = db_result.taken_roles {
member
.add_roles(
http,
&taken_roles
.into_iter()
.map(|r| RoleId::from(r.parse::<u64>().unwrap()))
.collect::<Vec<_>>(),
)
.await?;
}
member.remove_role(http, mute_role_id).await?; member.remove_role(http, mute_role_id).await?;
} }
Ok(()) Ok(())