moved some stuff into random util
This commit is contained in:
		@@ -4,7 +4,6 @@ use serenity::model::application::ResolvedOption;
 | 
				
			|||||||
pub async fn run(options: &[ResolvedOption<'_>]) -> String {
 | 
					pub async fn run(options: &[ResolvedOption<'_>]) -> String {
 | 
				
			||||||
    r#"
 | 
					    r#"
 | 
				
			||||||
    A Discord bot that rolls limitless dice, randomly!
 | 
					    A Discord bot that rolls limitless dice, randomly!
 | 
				
			||||||
    Designed, developed, and maintained by Arnkell Warner of Maduin
 | 
					 | 
				
			||||||
    Copyright 2025, all rights reserved
 | 
					    Copyright 2025, all rights reserved
 | 
				
			||||||
    "#
 | 
					    "#
 | 
				
			||||||
    .to_string()
 | 
					    .to_string()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,5 @@
 | 
				
			|||||||
use crate::util::{junk, random::RandomGen, validate};
 | 
					use crate::util::{junk, random::RandomGen, validate};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use rand::Rng;
 | 
					 | 
				
			||||||
use serenity::builder::{CreateCommand, CreateCommandOption};
 | 
					use serenity::builder::{CreateCommand, CreateCommandOption};
 | 
				
			||||||
use serenity::model::application::{CommandOptionType, ResolvedOption, ResolvedValue};
 | 
					use serenity::model::application::{CommandOptionType, ResolvedOption, ResolvedValue};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -8,7 +7,7 @@ pub async fn run(options: &[ResolvedOption<'_>]) -> String {
 | 
				
			|||||||
    // check if options array is empty first
 | 
					    // check if options array is empty first
 | 
				
			||||||
    if options.is_empty() {
 | 
					    if options.is_empty() {
 | 
				
			||||||
        let mut rng = RandomGen::new();
 | 
					        let mut rng = RandomGen::new();
 | 
				
			||||||
        return rng.rng.gen_range(1..999).to_string();
 | 
					        return rng.range_random_from_one(999).to_string();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // options exist, process first option
 | 
					    // options exist, process first option
 | 
				
			||||||
@@ -17,10 +16,9 @@ pub async fn run(options: &[ResolvedOption<'_>]) -> String {
 | 
				
			|||||||
        ..
 | 
					        ..
 | 
				
			||||||
    }) = options.first()
 | 
					    }) = options.first()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        println!("input: {}", input);
 | 
					 | 
				
			||||||
        let mut rng = RandomGen::new();
 | 
					        let mut rng = RandomGen::new();
 | 
				
			||||||
        return match validate::parse_str_into_num::<i32>(input.trim()) {
 | 
					        return match validate::parse_str_into_num::<i32>(input.trim()) {
 | 
				
			||||||
            Some(n) => rng.rng.gen_range(1..n).to_string(),
 | 
					            Some(n) => rng.range_random_from_one(n).to_string(),
 | 
				
			||||||
            None => return junk::get_random_insult(),
 | 
					            None => return junk::get_random_insult(),
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,7 +3,6 @@ use crate::{
 | 
				
			|||||||
    util::{junk, random, validate},
 | 
					    util::{junk, random, validate},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use rand::Rng;
 | 
					 | 
				
			||||||
use serenity::builder::{CreateCommand, CreateCommandOption};
 | 
					use serenity::builder::{CreateCommand, CreateCommandOption};
 | 
				
			||||||
use serenity::model::application::{CommandOptionType, ResolvedOption, ResolvedValue};
 | 
					use serenity::model::application::{CommandOptionType, ResolvedOption, ResolvedValue};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -13,7 +12,6 @@ pub async fn run(options: &[ResolvedOption<'_>]) -> String {
 | 
				
			|||||||
        ..
 | 
					        ..
 | 
				
			||||||
    }) = options.first()
 | 
					    }) = options.first()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        println!("got to the roll command! input: {}", input);
 | 
					 | 
				
			||||||
        let split = input.split("d").nth(1).unwrap();
 | 
					        let split = input.split("d").nth(1).unwrap();
 | 
				
			||||||
        let die_num = match validate::parse_str_into_num::<i32>(split.trim()) {
 | 
					        let die_num = match validate::parse_str_into_num::<i32>(split.trim()) {
 | 
				
			||||||
            Some(d) => d,
 | 
					            Some(d) => d,
 | 
				
			||||||
@@ -25,7 +23,7 @@ pub async fn run(options: &[ResolvedOption<'_>]) -> String {
 | 
				
			|||||||
            None => return junk::get_random_insult(),
 | 
					            None => return junk::get_random_insult(),
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
        let mut rng = random::RandomGen::new();
 | 
					        let mut rng = random::RandomGen::new();
 | 
				
			||||||
        let result = rng.rng.gen_range(1..die_num).to_string();
 | 
					        let result = rng.range_random_from_one(die_num).to_string();
 | 
				
			||||||
        return format!("{result}");
 | 
					        return format!("{result}");
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
        junk::get_random_insult()
 | 
					        junk::get_random_insult()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,5 @@
 | 
				
			|||||||
use rand::rngs::ThreadRng;
 | 
					use rand::rngs::ThreadRng;
 | 
				
			||||||
 | 
					use rand::Rng;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pub struct RandomGen {
 | 
					pub struct RandomGen {
 | 
				
			||||||
    pub rng: ThreadRng,
 | 
					    pub rng: ThreadRng,
 | 
				
			||||||
@@ -10,4 +11,8 @@ impl RandomGen {
 | 
				
			|||||||
            rng: rand::thread_rng(),
 | 
					            rng: rand::thread_rng(),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    pub fn range_random_from_one(&mut self, limit: i32) -> i32 {
 | 
				
			||||||
 | 
					        self.rng.gen_range(1..limit)
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user