From d35e0830d36ac5a75cf35a4cfb1c4380cab6348e Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Sun, 22 Jun 2025 09:05:54 -0400 Subject: [PATCH] Don't panic when the event file doesn't exist --- src/bin/kawari-world.rs | 2 +- src/world/event.rs | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/bin/kawari-world.rs b/src/bin/kawari-world.rs index b2c61f0..e586324 100644 --- a/src/bin/kawari-world.rs +++ b/src/bin/kawari-world.rs @@ -576,7 +576,7 @@ async fn client_loop( let mut call_func = || { lua.scope(|scope| { let connection_data = scope - .create_userdata_ref_mut(&mut lua_player)?;; + .create_userdata_ref_mut(&mut lua_player)?; let func: Function = lua.globals().get("onUnknownCommandError")?; func.call::<()>((command_name, connection_data))?; diff --git a/src/world/event.rs b/src/world/event.rs index 0bfc142..b3c77e0 100644 --- a/src/world/event.rs +++ b/src/world/event.rs @@ -17,11 +17,14 @@ impl Event { let config = get_config(); let file_name = format!("{}/{}", &config.world.scripts_location, path); - if let Err(err) = lua - .load(std::fs::read(&file_name).expect("Failed to locate scripts directory!")) - .set_name("@".to_string() + &file_name) - .exec() - { + let result = std::fs::read(&file_name); + if let Err(err) = std::fs::read(&file_name) { + tracing::warn!("Failed to load {}: {:?}", file_name, err); + return Self { file_name, lua, id }; + } + let file = result.unwrap(); + + if let Err(err) = lua.load(file).set_name("@".to_string() + &file_name).exec() { tracing::warn!("Syntax error in {}: {:?}", file_name, err); return Self { file_name, lua, id }; }