pub mod core; pub mod modules; use std::process::Output; use crate::core::botinstance::ArcBox; use crate::core::botinstance::{self,BotInstance}; use casual_logger::Extension; use tokio::sync::RwLock; use std::sync::Arc; pub type BotAR = Arc>; use casual_logger::{Level,Log}; #[tokio::main] pub async fn main() { Log::set_file_ext(Extension::Log); Log::set_level(Level::Trace); // Log::set_level(Level::Notice); let bot = BotInstance::init().await; // Log::debug("Checking bot actions"); botinstance::botlog::debug("Checking bot actions", Some("main()".to_string()), None); let a = Arc::clone(&bot.botmodules.botactions); let a = a.read().await; // let a = *a; for (_,acts) in &*a { for act in acts { match act { crate::core::botmodules::BotAction::C(b) => { // println!("bot actiions: {}",b.command) // Log::info(&format!("bot actions: {}",b.command)); botinstance::botlog::info(&format!("bot actions: {}",b.command), Some("main()".to_string()), None); }, crate::core::botmodules::BotAction::L(l) => { // println!("bot actiions: {}",l.name) // Log::info(&format!("bot actions: {}",l.name)); botinstance::botlog::info(&format!("bot actions: {}",l.name), Some("main()".to_string()), None); }, _ => { // println!("Not a valid match??") // Log::info("Not a valid match??"); botinstance::botlog::info("Not a valid match??", Some("main()".to_string()), None); }, } } }; // println!("Starting runner.."); // Log::notice("Starting Bot Runner"); botinstance::botlog::notice("Starting Bot Runner", Some("main()".to_string()), None); println!("Starting Bot Runner"); Log::flush(); bot.runner().await; // println!("ERROR : EXIT Game loop"); // let msg = Log::fatal("ERROR : EXIT Game loop"); // panic!("{}",Log::fatal("ERROR : EXIT Game loop")); let a = botinstance::botlog::fatal("ERROR : EXIT Game loop", Some("main()".to_string()), None); panic!("{}",a); }