reminder-bot/src/commands/moderation_cmds.rs

40 lines
924 B
Rust
Raw Normal View History

2020-08-18 19:09:21 +00:00
use regex_command_attr::command;
use serenity::{
client::Context,
model::{
channel::{
Message,
},
},
framework::standard::CommandResult,
};
2020-08-22 00:24:12 +00:00
use crate::{
models::ChannelData,
SQLPool,
};
2020-08-18 19:09:21 +00:00
#[command]
#[supports_dm(false)]
#[permission_level(Restricted)]
2020-08-25 16:19:08 +00:00
#[can_blacklist(false)]
2020-08-18 19:09:21 +00:00
async fn blacklist(ctx: &Context, msg: &Message, args: String) -> CommandResult {
let pool = ctx.data.read().await
.get::<SQLPool>().cloned().expect("Could not get SQLPool from data");
2020-08-25 16:19:08 +00:00
let mut channel = ChannelData::from_channel(msg.channel(&ctx).await.unwrap(), pool.clone()).await.unwrap();
2020-08-22 00:24:12 +00:00
channel.blacklisted = !channel.blacklisted;
channel.commit_changes(pool).await;
if channel.blacklisted {
2020-08-25 16:19:08 +00:00
let _ = msg.channel_id.say(&ctx, "Blacklisted").await;
2020-08-22 00:24:12 +00:00
}
else {
2020-08-25 16:19:08 +00:00
let _ = msg.channel_id.say(&ctx, "Unblacklisted").await;
2020-08-22 00:24:12 +00:00
}
2020-08-18 19:09:21 +00:00
Ok(())
}