Gulpo adding textmods to branch
oh god pls let everythign works fine
This commit is contained in:
parent
b9227cc72b
commit
2315270388
1 changed files with 159 additions and 0 deletions
159
src/custom/text_mods.rs
Normal file
159
src/custom/text_mods.rs
Normal file
|
@ -0,0 +1,159 @@
|
|||
use std::collections::HashMap;
|
||||
use std::sync::Arc;
|
||||
use crate::core::{bot_actions::*, botlog};
|
||||
use crate::core::botmodules::{BotActionTrait, BotCommand, BotModule, Listener, ModulesManager};
|
||||
use crate::core::identity::UserRole::*;
|
||||
use rand::{thread_rng, Rng};
|
||||
use tokio::time::{sleep, Duration};
|
||||
|
||||
|
||||
|
||||
pub async fn init(mgr: &Arc<ModulesManager>) {
|
||||
|
||||
// Example Working BotCommand Add
|
||||
BotCommand {
|
||||
module: BotModule(String::from("TextMods")),
|
||||
command: String::from("Reply"),
|
||||
alias: vec![],
|
||||
exec_body: actions_util::asyncbox(fors),
|
||||
help: String::from("txt mods help"),
|
||||
required_roles: vec![BotAdmin],
|
||||
}
|
||||
.add_to_modmgr(Arc::clone(&mgr))
|
||||
.await;
|
||||
|
||||
Listener {
|
||||
module: BotModule(String::from("TextMods")),
|
||||
name: String::from("This Guy Listener"),
|
||||
exec_body: actions_util::asyncbox(mods),
|
||||
help: String::from(""),
|
||||
}
|
||||
.add_to_modmgr(Arc::clone(&mgr))
|
||||
.await;
|
||||
}
|
||||
async fn fors(params: ExecBodyParams)
|
||||
{
|
||||
println!("Test triggered!"); // NOTE : This test function intends to print (e.g., to stdout) at fn call
|
||||
botlog::debug(
|
||||
"test triggered!",
|
||||
Some("modules > tesst()".to_string()),
|
||||
Some(¶ms.msg),
|
||||
);
|
||||
}
|
||||
async fn mods(params: ExecBodyParams)
|
||||
{
|
||||
// //getting the user message
|
||||
let sender_message = ¶ms.msg.message_text;
|
||||
|
||||
//vector to store the words
|
||||
let words: Vec<&str> = sender_message.split_whitespace().collect();
|
||||
|
||||
//using Hashmap to store the words
|
||||
let mut index_words:HashMap<usize,String> = HashMap::new();
|
||||
|
||||
//adding to the hashmap each word
|
||||
for(index,word) in words.iter().enumerate()
|
||||
{
|
||||
index_words.insert(index, String::from(*word));
|
||||
}
|
||||
|
||||
//if command is rw/Rw
|
||||
if index_words.get(&0).unwrap().to_string() == "+reply"
|
||||
|| index_words.get(&0).unwrap().to_string() == "+Reply"
|
||||
{
|
||||
//do what i want with the message
|
||||
|
||||
//new message
|
||||
let mut message:String = String::new();
|
||||
|
||||
//adding all other words in index words to the reply phrase
|
||||
//for index starting at 1 til max indexed words
|
||||
for index in 1..index_words.len()
|
||||
{
|
||||
//if the word = the word on the indexed words
|
||||
if let Some(words) = index_words.get(&index)
|
||||
{
|
||||
//add message
|
||||
message.push_str(words);
|
||||
//add space
|
||||
message.push_str(" ");
|
||||
//do agane
|
||||
}
|
||||
}
|
||||
|
||||
//bot typing the rest of the message
|
||||
let bot = Arc::clone(¶ms.bot);
|
||||
let botlock = bot.read().await;
|
||||
|
||||
// uses chat.say_in_reply_to() for the bot controls for messages
|
||||
botlock
|
||||
.botmgrs
|
||||
.chat
|
||||
.say_in_reply_to(¶ms.msg,
|
||||
message,
|
||||
params.clone())
|
||||
.await;
|
||||
sleep(Duration::from_secs_f64(0.5)).await;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
TESTING AREA, WAITING FOR THREAD_RNG FIX :D
|
||||
|
||||
*/
|
||||
// if index_words.get(&0).unwrap().to_string() == "+shuffle"
|
||||
// || index_words.get(&0).unwrap().to_string() == "+Shuffle"{
|
||||
// //do what i want with the message
|
||||
|
||||
// //new message
|
||||
// let mut message:String = String::new();
|
||||
|
||||
// let mut rnd = thread_rng();
|
||||
// let random_number = rnd.gen_range(1..=100);
|
||||
// //adding all other words in index words to the reply phrase
|
||||
// //for index starting at 1 til max indexed words
|
||||
// for index in 1..index_words.len()
|
||||
// {
|
||||
// //if the word = the word on the indexed words
|
||||
// if let Some(words) = index_words.get(&index)
|
||||
// {
|
||||
// //add message
|
||||
// message.push_str(words);
|
||||
// //add space
|
||||
// message.push_str(" ");
|
||||
// //do agane
|
||||
// }
|
||||
// }
|
||||
|
||||
// //bot typing the rest of the message
|
||||
// let bot = Arc::clone(¶ms.bot);
|
||||
// let botlock = bot.read().await;
|
||||
|
||||
// // uses chat.say_in_reply_to() for the bot controls for messages
|
||||
// botlock
|
||||
// .botmgrs
|
||||
// .chat
|
||||
// .say_in_reply_to(¶ms.msg,
|
||||
// message,
|
||||
// params.clone())
|
||||
// .await;
|
||||
// sleep(Duration::from_secs_f64(0.5)).await;
|
||||
// }
|
||||
|
||||
|
||||
if words.get(0).unwrap().to_string() == "forsen"
|
||||
{
|
||||
//bot typing the rest of the message
|
||||
let bot = Arc::clone(¶ms.bot);
|
||||
let botlock = bot.read().await;
|
||||
|
||||
// uses chat.say_in_reply_to() for the bot controls for messages
|
||||
botlock
|
||||
.botmgrs
|
||||
.chat
|
||||
.say_in_reply_to(¶ms.msg, String::from("Forsen!"), params.clone())
|
||||
.await;
|
||||
sleep(Duration::from_secs_f64(0.5)).await;
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in a new issue