From f6cf1666764fe0887b4433d5b096b3048df98a43 Mon Sep 17 00:00:00 2001 From: Joey Pollack Date: Thu, 13 Jul 2023 14:50:16 -0400 Subject: [PATCH] Adds test command to add a test role to a user --- src/main.rs | 62 +++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 46 insertions(+), 16 deletions(-) diff --git a/src/main.rs b/src/main.rs index d8de39a..77ebaab 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,10 +4,13 @@ mod commands; mod data_loader; mod utils; +use std::f32::consts::E; + use serenity::async_trait; use serenity::model::channel::Message; use serenity::model::gateway::Ready; use serenity::prelude::*; +use serenity::model::prelude::*; struct Handler; @@ -21,26 +24,53 @@ impl EventHandler for Handler // events can be dispatched simultaneously. async fn message(&self, ctx: Context, msg: Message) { - if msg.content == ".ping" - { - // Sending a message can fail, due to a network error, an - // authentication error, or lack of permissions to post in the - // channel, so log to stdout when some error happens, with a - // description of it. - if let Err(why) = msg.channel_id.say(&ctx.http, "Pong!").await - { - println!("Error sending message: {:?}", why); - } - } - if msg.content == ".randomizer" + if let Some(server_id) = msg.guild_id { - let item = utils::get_random_item(); - if let Err(why) = msg.channel_id.say(&ctx.http, format!("You found {}!", item)).await + let sm_speedrun_server_id = 98929157894836224; + let guru_test_server_id = 483735475283165195; + + if server_id == sm_speedrun_server_id || server_id == guru_test_server_id { - println!("Error sending message: {:?}", why); + if msg.content == ".role_test" + { + let test_role = RoleId(1129106677619228702 as u64); + if let Err(why) = server_id.edit_member(&ctx, msg.author, |m| + { + if let Some(mut member) = msg.member + { + member.roles.push(test_role); + return m.roles(member.roles); + } + + m + }).await + { + println!("Error updating roles: {:?}", why); + } + else + { + let role = &server_id.roles(&ctx).await.unwrap()[&test_role]; + if let Err(why) = msg.channel_id.say(&ctx.http, format!("{} role added!", role)).await + { + println!("Error sending message: {:?}", why); + } + } + } + + + if msg.content == ".randomizer" + { + let item = utils::get_random_item(); + if let Err(why) = msg.channel_id.say(&ctx.http, format!("You found {}!", item)).await + { + println!("Error sending message: {:?}", why); + } + } } - } + } + + } // Set a handler to be called on the `ready` event. This is called when a