From 027c03ab1ee7cb7b13c4c22f59d1254a1854db23 Mon Sep 17 00:00:00 2001 From: haruyuumei Date: Sun, 14 Apr 2024 17:09:43 -0300 Subject: [PATCH] magic 8ball implementation --- src/custom/text_mods.rs | 70 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/src/custom/text_mods.rs b/src/custom/text_mods.rs index 5124084..015c4e9 100644 --- a/src/custom/text_mods.rs +++ b/src/custom/text_mods.rs @@ -76,7 +76,77 @@ pub async fn init(mgr: Arc) { }; shuffler.add_to_modmgr(Arc::clone(&mgr)).await; + + let the8ball: BotCommand = BotCommand { + module:BotModule(String::from("8ball")), + command:String::from("8ball"), + alias: vec![String::from("8b")], + exec_body: actions_util::asyncbox(the8ball), + help:String::from("8ball Help"), + required_roles:vec![ + BotAdmin, + Broadcaster, + Mod(OF_CMD_CHANNEL), + VIP(OF_CMD_CHANNEL), + Chatter + ] + }; + the8ball.add_to_modmgr(Arc::clone(&mgr)).await; + + } + + +///The 8 ball function +/// it returns a answear to the user message based on random +/// +async fn the8ball(params : ExecBodyParams) +{ + + let mut vecanswears = Vec::new(); + vecanswears.push(String::from("It is certain")); + vecanswears.push(String::from("It is decidedly so")); + vecanswears.push(String::from("Without a doubt")); + vecanswears.push(String::from("Yes definitely")); + vecanswears.push(String::from("You may rely on it")); + + vecanswears.push(String::from("As I see it, yes")); + vecanswears.push(String::from("Most likely")); + vecanswears.push(String::from("Outlook good")); + vecanswears.push(String::from("Yes")); + vecanswears.push(String::from("Signs point to yes")); + + vecanswears.push(String::from("Reply hazy, try again")); + vecanswears.push(String::from("Ask again later")); + vecanswears.push(String::from("Better not tell you now")); + vecanswears.push(String::from("Cannot predict now")); + vecanswears.push(String::from("Concentrate and ask again")); + + vecanswears.push(String::from("Don't count on it")); + vecanswears.push(String::from("My reply is no")); + vecanswears.push(String::from("My sources say no")); + vecanswears.push(String::from("Outlook not so good")); + vecanswears.push(String::from("Very doubtful")); + + + let randchoice = thread_rng().gen_range(0..vecanswears.len()); + let ballmessage = &vecanswears[randchoice]; + + + + let bot = Arc::clone(¶ms.bot); + let botlock = bot.read().await; + botlock + .botmgrs + .chat + .say_in_reply( + Channel(params.clone().msg.channel_login().to_string()), + ballmessage.clone(), + params.clone() + ).await; +} + + /// Shuffle Function /// /// Grabs The user message and checks how many words it has