added matrix support, added matrix-sdk dependency
build / docker (push) Has been cancelled

This commit is contained in:
2026-02-22 17:59:57 -05:00
parent afea8a09fe
commit 598870689d
11 changed files with 2189 additions and 107 deletions
+6 -6
View File
@@ -1,12 +1,12 @@
use serenity::builder::CreateCommand;
use serenity::model::application::ResolvedOption;
pub async fn run(options: &[ResolvedOption<'_>]) -> String {
r#"
A Discord bot that rolls limitless dice, randomly!
Copyright 2025, all rights reserved
"#
.to_string()
pub fn run_core() -> String {
"A bot that rolls limitless dice, randomly!\nCopyright 2025, all rights reserved".to_string()
}
pub async fn run(_options: &[ResolvedOption<'_>]) -> String {
run_core()
}
pub fn register() -> CreateCommand {
+14 -11
View File
@@ -3,24 +3,27 @@ use crate::util::{junk, random::RandomGen, validate};
use serenity::builder::{CreateCommand, CreateCommandOption};
use serenity::model::application::{CommandOptionType, ResolvedOption, ResolvedValue};
pub async fn run(options: &[ResolvedOption<'_>]) -> String {
// check if options array is empty first
if options.is_empty() {
let mut rng = RandomGen::new();
return rng.range_random_from_one(999).to_string();
pub fn run_core(input: Option<&str>) -> String {
let mut rng = RandomGen::new();
match input {
None => rng.range_random_from_one(999).to_string(),
Some(s) => match validate::parse_str_into_num::<i32>(s.trim()) {
Some(n) => rng.range_random_from_one(n).to_string(),
None => junk::get_random_insult(),
},
}
}
// options exist, process first option
pub async fn run(options: &[ResolvedOption<'_>]) -> String {
if options.is_empty() {
return run_core(None);
}
if let Some(ResolvedOption {
value: ResolvedValue::String(input),
..
}) = options.first()
{
let mut rng = RandomGen::new();
return match validate::parse_str_into_num::<i32>(input.trim()) {
Some(n) => rng.range_random_from_one(n).to_string(),
None => return junk::get_random_insult(),
};
run_core(Some(input))
} else {
junk::get_random_insult()
}
+21 -13
View File
@@ -6,25 +6,33 @@ use crate::{
use serenity::builder::{CreateCommand, CreateCommandOption};
use serenity::model::application::{CommandOptionType, ResolvedOption, ResolvedValue};
pub fn run_core(input: Option<&str>) -> String {
let Some(input) = input else {
return junk::get_random_insult();
};
let split = match input.split('d').nth(1) {
Some(s) => s,
None => return junk::get_random_insult(),
};
let die_num = match validate::parse_str_into_num::<i32>(split.trim()) {
Some(d) => d,
None => return junk::get_random_insult(),
};
match dietype::DieType::from_sides(die_num) {
Some(_) => {}
None => return junk::get_random_insult(),
};
let mut rng = random::RandomGen::new();
rng.range_random_from_one(die_num).to_string()
}
pub async fn run(options: &[ResolvedOption<'_>]) -> String {
if let Some(ResolvedOption {
value: ResolvedValue::String(input),
..
}) = options.first()
{
let split = input.split("d").nth(1).unwrap();
let die_num = match validate::parse_str_into_num::<i32>(split.trim()) {
Some(d) => d,
None => return junk::get_random_insult(),
};
let _die_type = match dietype::DieType::from_sides(die_num) {
Some(d) => d.to_sides(),
None => return junk::get_random_insult(),
};
let mut rng = random::RandomGen::new();
let result = rng.range_random_from_one(die_num).to_string();
return format!("{result}");
run_core(Some(input))
} else {
junk::get_random_insult()
}