magic 8ball implementation
All checks were successful
ci/woodpecker/pr/cargo-checks Pipeline was successful

This commit is contained in:
haruyuumei 2024-04-14 17:09:43 -03:00
parent 313b6ecfa9
commit 027c03ab1e

View file

@ -76,7 +76,77 @@ pub async fn init(mgr: Arc<ModulesManager>) {
}; };
shuffler.add_to_modmgr(Arc::clone(&mgr)).await; 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(&params.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 /// Shuffle Function
/// ///
/// Grabs The user message and checks how many words it has /// Grabs The user message and checks how many words it has