use crate::commands::GENERAL_GROUP; use crate::passive::Handler; use serenity::client::Client; use serenity::framework::standard::StandardFramework; use std::env; use util::db::DbConnPool; mod commands; mod passive; mod util; pub(crate) const COMMAND_PREFIX: &str = "~"; #[tokio::main] async fn main() -> Result<(), Box> { dotenv::dotenv().ok(); let framework = StandardFramework::new() .configure(|c| c.prefix(COMMAND_PREFIX)) .group(&GENERAL_GROUP); let mut client = Client::new_with_extras(&env::var("DISCORD_TOKEN").expect("token"), |extras| { extras .event_handler(Handler::default()) .framework(framework) }) .await .expect("Error creating client"); { let mut data = client.data.write().await; data.insert::(DbConnPool::new().await); } // start listening for events by starting a single shard if let Err(why) = client.start().await { println!("An error occurred while running the client: {:?}", why); } Ok(()) }