forcebot_rs/src/main.rs

67 lines
1.6 KiB
Rust

use std::sync::Arc;
use tokio::sync::RwLock;
use casual_logger::{Extension, Level, Log};
use bot_lib::core::botinstance::BotInstance;
use bot_lib::core::botlog;
use bot_lib::core::botmodules;
pub type BotAR = Arc<RwLock<BotInstance>>;
// God I love anime girls
// fr fr
#[tokio::main]
pub async fn main() {
Log::set_file_ext(Extension::Log);
Log::set_level(Level::Trace);
Log::set_retention_days(2);
// Log::set_level(Level::Notice);
let bot = BotInstance::init().await;
{
botlog::trace("Reading bot actions", Some("main()".to_string()), None);
let actsdb = Arc::clone(&bot.botmodules.botactions);
let actsdb_lock = actsdb.read().await;
for acts in (*actsdb_lock).values() {
for act in acts {
let act_prelock = act;
let act = act_prelock.read().await;
let outstr = match &(*act) {
botmodules::BotAction::C(b) => {
format!("bot actions > Command : {}", b.command)
}
botmodules::BotAction::L(l) => {
format!("bot actions > Listener : {}", l.name)
}
_ => "Not a valid match??".to_string(),
};
botlog::info(outstr.as_str(), Some("main()".to_string()), None);
}
}
}
botlog::notice("Starting Bot Runner", Some("main()".to_string()), None);
println!("Starting Bot Runner");
Log::flush();
bot.runner().await;
let pstr = botlog::fatal("ERROR : EXIT Game loop", Some("main()".to_string()), None);
panic!("{}", pstr);
}