diff options
author | Ashelyn Dawn <git@ashen.earth> | 2024-02-13 01:16:02 -0700 |
---|---|---|
committer | Ashelyn Rose <git@ashen.earth> | 2024-07-02 22:11:53 -0600 |
commit | 526d3c9eb93611567717df1ffc50fe47ec01ec42 (patch) | |
tree | f6790287137f7cf23f6bf128a3e27a8616b17dfe /src | |
parent | 0d96660fcbdb6ad7f2cef60f74b09018e0386036 (diff) |
basic serenity client
Diffstat (limited to 'src')
-rw-r--r-- | src/config.rs | 2 | ||||
-rw-r--r-- | src/main.rs | 35 |
2 files changed, 35 insertions, 2 deletions
diff --git a/src/config.rs b/src/config.rs index 998acc0..37a967f 100644 --- a/src/config.rs +++ b/src/config.rs @@ -90,6 +90,6 @@ impl Config { } }); - config + return config } } 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") + } + } } |