summaryrefslogtreecommitdiff
path: root/src/gameserver.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/gameserver.rs')
-rw-r--r--src/gameserver.rs7
1 files changed, 6 insertions, 1 deletions
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