Skip to content

Commit

Permalink
Parse member from id even if they're not in guild
Browse files Browse the repository at this point in the history
  • Loading branch information
SLASHLogin committed Sep 17, 2023
1 parent ce7bf85 commit a0fee10
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 6 deletions.
23 changes: 18 additions & 5 deletions src/database/models/member.rs
Original file line number Diff line number Diff line change
Expand Up @@ -357,18 +357,31 @@ impl SlashArgument for Member {
interaction: poise::ApplicationCommandOrAutocompleteInteraction<'_>,
value: &serenity::json::Value,
) -> Result<Self, poise::SlashArgError> {
let member =
poise::extract_slash_argument!(serenity::model::guild::Member, ctx, interaction, value)
.await?;
let member_id = match poise::extract_slash_argument!(
serenity::model::guild::Member,
ctx,
interaction,
value
)
.await
{
Ok(member) => member.user.id.to_string(),
Err(why) => {
String::from(value.as_str().ok_or_else(|| poise::SlashArgError::Parse {
error: why.into(),
input: value.to_string(),
})?)
}
};

let member = match Member::find_by_discord_id(member.user.id.to_string()) {
let member = match Member::find_by_discord_id(&member_id) {
Ok(member) => member,
Err(why) => {
let error_msg = format!("Could not find member in database: {}", why);
error!("{}", error_msg);
return Err(poise::SlashArgError::Parse {
error: why.into(),
input: member.user.id.to_string(),
input: member_id,
});
}
};
Expand Down
2 changes: 1 addition & 1 deletion src/discord/commands/member.rs
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@ pub async fn remove_member(
match member.role().remove_role(&ctx, user_id).await {
Ok(_) => {}
Err(why) => {
let error_msg = format!("Failed to remove member role: {}", why);
let error_msg = format!("Failed to remove member's role: {}", why);
error!("{}", error_msg);
output.push_str(&error_msg);
output.push('\n');
Expand Down

0 comments on commit a0fee10

Please sign in to comment.