From 767d6a788f10041042561eb60b28e1545a6eb1e4 Mon Sep 17 00:00:00 2001 From: kageru Date: Tue, 29 Oct 2019 19:04:06 +0100 Subject: [PATCH] basic ping/pong bot --- src/main.rs | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index e7a11a9..d05c895 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,30 @@ -fn main() { - println!("Hello, world!"); +use serenity::model::channel::Message; +use serenity::prelude::*; +use std::fs::File; +use std::io::{self, prelude::*, BufReader}; + +struct Handler; + +impl EventHandler for Handler { + fn message(&self, ctx: Context, msg: Message) { + if msg.content == "!ping" { + if let Err(cause) = msg.channel_id.say(&ctx.http, "pong") { + println!("error sending message {:?}", cause); + } + } + } +} + +pub fn main() { + let mut client = Client::new( + read_token().expect("Could not read token from file `secret` in current directory"), + Handler, + ) + .expect("Error creating client"); + client.start().expect("Could not connect to discord"); +} + +fn read_token() -> io::Result { + let reader = BufReader::new(File::open("secret")?); + reader.lines().next().unwrap() }