diff --git a/src/events.rs b/src/events.rs index ec31090..f37da2b 100644 --- a/src/events.rs +++ b/src/events.rs @@ -22,10 +22,13 @@ pub async fn handle_event(client: Client, event: Event, state: State) -> anyhow: let formatted_message = message.message(); info!("{}", formatted_message.to_ansi()); - let owners = state.lua.globals().get::>("Owners")?; if message.is_whisper() && let (Some(sender), content) = message.split_sender_and_content() - && owners.contains(&sender) + && state + .lua + .globals() + .get::>("Owners")? + .contains(&sender) { if let Err(error) = state.commands.execute( content, @@ -55,7 +58,7 @@ pub async fn handle_event(client: Client, event: Event, state: State) -> anyhow: } Event::Disconnect(message) => { call_listeners(&state, "disconnect", message.map(|m| m.to_string())).await; - exit(1) + exit(0) } Event::Login => call_listeners(&state, "login", ()).await, Event::RemovePlayer(player_info) => { @@ -84,8 +87,7 @@ pub async fn handle_event(client: Client, event: Event, state: State) -> anyhow: Event::Init => { debug!("received initialize event"); - let globals = state.lua.globals(); - globals.set( + state.lua.globals().set( "client", lua::client::Client { inner: Some(client), diff --git a/src/main.rs b/src/main.rs index 4f13201..9103cf5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -46,12 +46,11 @@ async fn main() -> anyhow::Result<()> { console_subscriber::init(); let args = arguments::Arguments::parse(); - let script_path = args.script.unwrap_or(PathBuf::from(DEFAULT_SCRIPT_PATH)); let event_listeners = Arc::new(RwLock::new(HashMap::new())); - let lua = Lua::new(); let globals = lua.globals(); + globals.set("script_path", &*script_path)?; lua::register_functions(&lua, &globals, event_listeners.clone())?; lua.load(