43 lines
1.1 KiB
Rust
43 lines
1.1 KiB
Rust
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<dyn std::error::Error>> {
|
|
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>(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(())
|
|
}
|