Block/allow DM reminders

Only affects slash commands but this is sort of a non-issue post September
This commit is contained in:
jude
2022-07-29 19:22:15 +01:00
parent 2781f2923e
commit 7b6e967a5d
10 changed files with 102 additions and 111 deletions

View File

@ -233,6 +233,10 @@ impl<'a> MultiReminderBuilder<'a> {
if let Some(guild_id) = self.guild_id {
if guild_id.member(&self.ctx.discord(), user).await.is_err() {
Err(ReminderError::InvalidTag)
} else if self.set_by.map_or(true, |i| i != user_data.id)
&& !user_data.allowed_dm
{
Err(ReminderError::UserBlockedDm)
} else {
Ok(user_data.dm_channel)
}

View File

@ -7,6 +7,7 @@ pub enum ReminderError {
PastTime,
ShortInterval,
InvalidTag,
UserBlockedDm,
DiscordError(String),
}
@ -30,6 +31,9 @@ impl ToString for ReminderError {
ReminderError::InvalidTag => {
"Couldn't find a location by your tag. Your tag must be either a channel or a user (not a role)".to_string()
}
ReminderError::UserBlockedDm => {
"User has DM reminders disabled".to_string()
}
ReminderError::DiscordError(s) => format!("A Discord error occurred: **{}**", s),
}
}