From d0d71818c70586d7e2fb806ced57f039bd1d12f6 Mon Sep 17 00:00:00 2001 From: troido Date: Wed, 8 Apr 2020 15:43:57 +0200 Subject: reject player if the savefile player id does not match actual player id --- src/main.rs | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index b4e8d82..3f2cc90 100644 --- a/src/main.rs +++ b/src/main.rs @@ -124,13 +124,22 @@ fn main(){ for action in actions { match action { Action::Input(player, control) => { - let _ = world.control_player(player, control); + if let Err(err) = world.control_player(player.clone(), control){ + println!("error controlling player {:?}: {:?}", player, err); + } } Action::Join(player) => { - world.add_player(&player).expect("can not add player"); + if let Err(err) = world.add_player(&player) { + println!("Error: can not add player {:?}: {:?}", player, err); + if let Err(senderr) = gameserver.send_player_error(&player, "worlderror", "invalid room or savefile") { + println!("Error: can not send error message to {:?}: {:?}", player, senderr); + } + } } Action::Leave(player) => { - world.remove_player(&player).expect("can not remove player"); + if let Err(err) = world.remove_player(&player) { + println!("Error: can not remove player {:?}: {:?}", player, err); + } message_cache.remove(&player); } } @@ -147,7 +156,9 @@ fn main(){ continue; } // println!("m {}", message.to_json()); - let _ = gameserver.send(&player, message.to_json()); + if let Err(err) = gameserver.send(&player, message.to_json()) { + println!("Error: failed to send to {:?}: {:?}", player, err); + } } count += 1; -- cgit