aboutsummaryrefslogtreecommitdiff
path: root/src/modules/commands/admins/tests.rs
diff options
context:
space:
mode:
authorFuwn <[email protected]>2020-10-26 19:03:53 -0700
committerFuwn <[email protected]>2020-10-26 19:03:53 -0700
commit9742614a1dc4699c1f2c69d923d402237672335d (patch)
treea49f7d834372f37cef06b30a28ff1b40bdfaa079 /src/modules/commands/admins/tests.rs
parentCreate README.md (diff)
downloaddep-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.rs77
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(())
+ }
+}