mod commands; mod events; pub mod utils; use poise::FrameworkBuilder; use utils::serenity; use commands::logging; use utils::{BotData, Context, Error}; pub async fn make_bot() -> color_eyre::Result> { let framework = poise::Framework::builder() .options(poise::FrameworkOptions { commands: vec![logging()], ..Default::default() }) .token(std::env::var("DISCORD_TOKEN").expect("missing DISCORD_TOKEN")) .intents(serenity::GatewayIntents::non_privileged()) .setup(|ctx, _ready, framework| { Box::pin(async move { poise::builtins::register_globally( ctx, &framework.options().commands, ) .await?; Ok(BotData::new().await?) }) }); Ok(framework) }