summary refs log tree commit diff
path: root/src/main.rs
diff options
context:
space:
mode:
authorAshelyn Dawn <git@ashen.earth>2024-02-13 01:16:02 -0700
committerAshelyn Rose <git@ashen.earth>2024-07-02 22:11:53 -0600
commit526d3c9eb93611567717df1ffc50fe47ec01ec42 (patch)
treef6790287137f7cf23f6bf128a3e27a8616b17dfe /src/main.rs
parent0d96660fcbdb6ad7f2cef60f74b09018e0386036 (diff)
basic serenity client
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs35
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")
+        }
+    }
 }