summary refs log tree commit diff
path: root/src/main.rs
diff options
context:
space:
mode:
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")
+        }
+    }
 }