#[macro_use]
extern crate diesel;

mod config;
mod framebuffer;
mod handlers;
mod joker;
mod models;
mod program;
mod schema;

use crate::handlers::Dispatcher;

use serenity::prelude::GatewayIntents;
use serenity::Client;

#[tokio::main]
async fn main() {
	let config = config::get_conf();
	let token = config.token;

	let mut client = Client::builder(
		&token,
		GatewayIntents::GUILD_MESSAGES
			.union(GatewayIntents::GUILD_MESSAGE_REACTIONS)
			.union(GatewayIntents::MESSAGE_CONTENT),
	)
	.event_handler(Dispatcher::default())
	.await
	.expect("Error creating client");
	if let Err(e) = client.start().await {
		eprintln!("Client error: {}", e);
	}
}