initial code
This commit is contained in:
77
src/main.rs
Normal file
77
src/main.rs
Normal file
@ -0,0 +1,77 @@
|
||||
mod framework;
|
||||
|
||||
use serenity::{
|
||||
client::{
|
||||
bridge::gateway::GatewayIntents,
|
||||
Client, Context,
|
||||
},
|
||||
model::{
|
||||
channel::{
|
||||
Message,
|
||||
},
|
||||
},
|
||||
framework::standard::{
|
||||
Args, CommandResult,
|
||||
macros::{
|
||||
command,
|
||||
}
|
||||
},
|
||||
prelude::TypeMapKey,
|
||||
};
|
||||
|
||||
use sqlx::{
|
||||
Pool,
|
||||
mysql::{
|
||||
MySqlConnection,
|
||||
}
|
||||
};
|
||||
|
||||
use dotenv::dotenv;
|
||||
|
||||
use std::{
|
||||
sync::Arc,
|
||||
env,
|
||||
};
|
||||
|
||||
use crate::framework::{RegexFramework, Command, PermissionLevel};
|
||||
|
||||
struct SQLPool;
|
||||
|
||||
impl TypeMapKey for SQLPool {
|
||||
type Value = Pool<MySqlConnection>;
|
||||
}
|
||||
|
||||
struct ReqwestClient;
|
||||
|
||||
impl TypeMapKey for ReqwestClient {
|
||||
type Value = Arc<reqwest::Client>;
|
||||
}
|
||||
|
||||
static THEME_COLOR: u32 = 0x00e0f3;
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
|
||||
dotenv()?;
|
||||
|
||||
let framework = RegexFramework::new()
|
||||
.ignore_bots(true)
|
||||
.default_prefix("$")
|
||||
.add_command(Command::from("help", PermissionLevel::Unrestricted, help_command))
|
||||
.build();
|
||||
|
||||
let mut client = Client::new(&env::var("DISCORD_TOKEN").expect("Missing DISCORD_TOKEN from environment"))
|
||||
.intents(GatewayIntents::GUILD_MESSAGES | GatewayIntents::GUILDS | GatewayIntents::DIRECT_MESSAGES)
|
||||
.framework(framework)
|
||||
.await.expect("Error occured creating client");
|
||||
|
||||
client.start_autosharded().await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[command]
|
||||
async fn help_command(_ctx: &Context, _msg: &Message, _args: Args) -> CommandResult {
|
||||
println!("Help command called");
|
||||
|
||||
Ok(())
|
||||
}
|
Reference in New Issue
Block a user