From 4bfa58f1316a18466d40488e46a6d3c8023f9643 Mon Sep 17 00:00:00 2001 From: troido Date: Mon, 3 Feb 2020 20:38:51 +0100 Subject: don't crash on invalid actions --- src/gameserver.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/gameserver.rs') diff --git a/src/gameserver.rs b/src/gameserver.rs index ce4a1e5..c7c5062 100644 --- a/src/gameserver.rs +++ b/src/gameserver.rs @@ -134,7 +134,12 @@ impl GameServer { Message::Input(inp) => { if let Some(nameref) = self.players.get(&id) { let name = nameref.clone(); - Some(Action::Input(name, Control::from_json(inp).unwrap())) + if let Some(control) = Control::from_json(&inp) { + Some(Action::Input(name, control)) + } else { + let _ = self.send_error(id, "invalidaction", &format!("unknown action: {}", inp)); + None + } } else { let _ = self.send_error(id, "invalidaction", &format!("Set a name before you send other messages")); None -- cgit