diff options
| author | Fuwn <[email protected]> | 2020-10-26 19:03:53 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2020-10-26 19:03:53 -0700 |
| commit | 9742614a1dc4699c1f2c69d923d402237672335d (patch) | |
| tree | a49f7d834372f37cef06b30a28ff1b40bdfaa079 /src/modules/commands/admins/tests.rs | |
| parent | Create README.md (diff) | |
| download | dep-core-next-9742614a1dc4699c1f2c69d923d402237672335d.tar.xz dep-core-next-9742614a1dc4699c1f2c69d923d402237672335d.zip | |
repo: push main from local to remote
Diffstat (limited to 'src/modules/commands/admins/tests.rs')
| -rw-r--r-- | src/modules/commands/admins/tests.rs | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/src/modules/commands/admins/tests.rs b/src/modules/commands/admins/tests.rs new file mode 100644 index 0000000..d4c8692 --- /dev/null +++ b/src/modules/commands/admins/tests.rs @@ -0,0 +1,77 @@ +use crate::core::consts::*; +use crate::core::consts::DB as db; +use crate::core::utils::*; +use serenity::framework::standard::{ + Args, + Command, + CommandError, + CommandOptions +}; +use serenity::model::channel::Message; +use serenity::model::id::ChannelId; +use serenity::model::Permissions; +use serenity::prelude::Context; +use std::sync::Arc; + +pub struct TestWelcome; +impl Command for TestWelcome { + fn options(&self) -> Arc<CommandOptions> { + let default = CommandOptions::default(); + let options = CommandOptions { + desc: Some("Feeling superstitious ? I'll check if your welcome configuration is correct.".to_string()), + max_args: Some(0), + required_permissions: Permissions::MANAGE_GUILD, + ..default + }; + Arc::new(options) + } + + fn execute(&self, _: &mut Context, message: &Message, _: Args) -> Result<(), CommandError> { + if let Some(guild_id) = message.guild_id { + if let Some(member) = message.member() { + let guild_data = db.get_guild(guild_id.0 as i64)?; + if guild_data.welcome { + let channel = ChannelId(guild_data.welcome_channel as u64); + if guild_data.welcome_type.as_str() == "embed" { + send_welcome_embed(guild_data.welcome_message, &member, channel)?; + } else { + channel.say(parse_welcome_items(guild_data.welcome_message, &member))?; + } + } + } else { failed!(MEMBER_FAIL); } + } else { failed!(GUILDID_FAIL); } + Ok(()) + } +} + +pub struct TestIntro; +impl Command for TestIntro { + fn options(&self) -> Arc<CommandOptions> { + let default = CommandOptions::default(); + let options = CommandOptions { + desc: Some("Generates an introduction message to test your current setup.".to_string()), + aliases: vec!["introduction"].iter().map(|e| e.to_string()).collect(), + max_args: Some(0), + required_permissions: Permissions::MANAGE_GUILD, + ..default + }; + Arc::new(options) + } + + fn execute(&self, _: &mut Context, message: &Message, _: Args) -> Result<(), CommandError> { + if let Some(guild_id) = message.guild_id { + if let Some(member) = message.member() { + let guild_data = db.get_guild(guild_id.0 as i64)?; + if guild_data.welcome { + let channel = ChannelId(guild_data.introduction_channel as u64); + if guild_data.introduction_type.as_str() == "embed" { + send_welcome_embed(guild_data.introduction_message, &member, channel)?; + } else { + channel.say(parse_welcome_items(guild_data.introduction_message, &member))?; + } + } + } else { failed!(MEMBER_FAIL); } + } else { failed!(GUILDID_FAIL); } + Ok(()) + } +} |