diff --git a/build_musl b/build_musl new file mode 100755 index 0000000..9533ac1 --- /dev/null +++ b/build_musl @@ -0,0 +1,2 @@ +alias rust-musl-builder='sudo docker run --rm -it -v "$(pwd)":/home/rust/src ekidd/rust-musl-builder' +rust-musl-builder cargo build --release diff --git a/src/main.rs b/src/main.rs index ccfb570..c91bad3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,12 +1,13 @@ mod mindus; use crate::mindus::*; -use std::{env}; +// use std::{env}; use serenity::async_trait; use serenity::prelude::*; use serenity::model::channel::Message; use serenity::framework::standard::macros::{command, group}; use serenity::framework::standard::{StandardFramework, CommandResult}; -use dotenv::dotenv; + + #[group] #[commands(ping, pong, console)] @@ -23,15 +24,14 @@ async fn main() { let sock = TcpSock::new(conf.ip, conf.port).unwrap(); - dotenv().ok(); - let framework = StandardFramework::new() - .configure(|c| c.prefix(conf.trigger)) + .configure(|c| c + .prefix(conf.trigger) + .case_insensitivity(true)) .group(&GENERAL_GROUP); - let token = env::var("DISCORD_TOKEN").expect("token"); let intents = GatewayIntents::non_privileged() | GatewayIntents::MESSAGE_CONTENT; - let mut client = Client::builder(&token, intents) + let mut client = Client::builder(&conf.discord_token, intents) .event_handler(Handler) .framework(framework) .await @@ -49,8 +49,8 @@ async fn main() { #[command] async fn ping(ctx: &Context, msg: &Message) -> CommandResult { + msg.reply(ctx, "Pong!").await?; - Ok(()) } @@ -76,7 +76,7 @@ async fn console(ctx: &Context, msg: &Message) -> CommandResult { let sock = data.get::().unwrap(); - msg.reply(ctx, format!("```ansi\n{}\n```", cons_rw(sock, &input.unwrap()))).await?; + msg.reply(ctx, format!("```\n{}\n```", cons_rw(sock, &input.unwrap()))).await?; Ok(()) } diff --git a/src/mindus.rs b/src/mindus.rs index 1a99966..7f380db 100644 --- a/src/mindus.rs +++ b/src/mindus.rs @@ -45,10 +45,18 @@ pub fn cons_rw(sock: &TcpSock, input: &str) -> String { #[derive(serde::Deserialize, serde::Serialize)] pub struct Config { + pub discord_token: String, pub ip: String, pub port: String, pub trigger: char, - pub roles: String + pub roles: Roles +} + + +#[derive(serde::Deserialize, serde::Serialize)] +pub struct Roles { + pub auth: String, + pub cons: String } pub fn init_conf() -> Config { @@ -68,12 +76,6 @@ pub fn init_conf() -> Config { let config: Config = toml::from_str(&toml_str).expect("unable to fill Config struct"); - // let mut conf_vec: Vec = vec![]; - // toml_file.read_to_end(&mut conf_vec).expect("unable to read toml to string"); - // let toml_str = str::from_utf8(&conf_vec).expect("unable to convert to string"); - // println!("{}", toml_str); - // let config: Config = toml::from_str(toml_str).expect("unable to fill Config struct"); - config } @@ -87,10 +89,14 @@ let mut toml_file = OpenOptions::new() .unwrap(); let fill_conf = Config { + discord_token: String::from(""), ip: String::from("localhost"), port: String::from("6859"), trigger: ';', - roles: String::new() + roles: Roles { + auth: String::from(""), + cons: String::from("") + } }; toml_file.write(toml::to_string(&fill_conf).unwrap().as_bytes()).expect("Unable to write to new file");