diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/src/main.rs b/src/main.rs index a9f2686..5e34924 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,9 +1,42 @@ mod config; use config::Config; +use serenity::{all::{GatewayIntents, Message}, client::{Context, EventHandler}, Client}; -fn main() { +#[tokio::main(flavor = "current_thread")] +async fn main() { println!("Hello, world!"); let config_str = include_str!("../config.toml"); let config = Config::load(config_str.to_string()); + + let token = config.systems.get("ashe-test").unwrap().members + .iter().find(|member| member.name == "test").unwrap() + .discord_token.clone(); + + println!("Token: {}", token); + + let mut client = Client::builder(token, GatewayIntents::all()) + .event_handler(MessageHandler).await.unwrap(); + + client.start().await.unwrap() +} + + +struct MessageHandler; + +#[serenity::async_trait] +impl EventHandler for MessageHandler { + async fn message(&self, context: Context, msg: Message) { + if msg.member.unwrap().user.unwrap().bot { // TODO crashes + return + } + + println!("Got message"); + println!("{}", msg.content); + if let Ok(_test) = msg.channel_id.say(&context, "message acknowledged").await { + println!("Reply sent") + } else { + println!("Error encountered") + } + } } |