diff options
| -rw-r--r-- | src/plugins/factoids/mod.rs | 2 | ||||
| -rw-r--r-- | src/plugins/factoids/sandbox.lua | 12 |
2 files changed, 13 insertions, 1 deletions
diff --git a/src/plugins/factoids/mod.rs b/src/plugins/factoids/mod.rs index 2f3690f..d09313c 100644 --- a/src/plugins/factoids/mod.rs +++ b/src/plugins/factoids/mod.rs @@ -179,7 +179,7 @@ impl<T: Database> Factoids<T> { } else { match self.run_lua(&name, &content, &command) { Ok(v) => v, - Err(e) => format!("\"{}\"", e), + Err(e) => format!("{}", e), } } } else { diff --git a/src/plugins/factoids/sandbox.lua b/src/plugins/factoids/sandbox.lua index 3fc74cd..6fcabef 100644 --- a/src/plugins/factoids/sandbox.lua +++ b/src/plugins/factoids/sandbox.lua @@ -17,6 +17,7 @@ local sandbox_env = { print = send, println = sendln, eval = nil, + sleep = nil, args = args, input = input, user = user, @@ -60,7 +61,18 @@ function eval(code) end end +-- Only sleeps for 1 second at a time +-- This ensures that the timeout check can still run +function safesleep(dur) + while dur > 1000 do + dur = dur - 1000 + sleep(1000) + end + sleep(dur) +end + sandbox_env.eval = eval +sandbox_env.sleep = safesleep -- Check if the factoid timed out function checktime(event, line) |
