From 2afa5d06b169c5aa76d17b8f89938f7c24a7833f Mon Sep 17 00:00:00 2001 From: CapsizeGlimmer <> Date: Sat, 25 Apr 2020 13:18:29 -0400 Subject: [PATCH] Fixed mutability in /sudo --- server/src/cmd.rs | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/server/src/cmd.rs b/server/src/cmd.rs index 7b747a8f62..f8df738d0a 100644 --- a/server/src/cmd.rs +++ b/server/src/cmd.rs @@ -1365,22 +1365,21 @@ fn handle_sudo( args: String, action: &ChatCommand, ) { - if let (Some(player_alias), Some(mut cmd), cmd_args) = + if let (Some(player_alias), Some(cmd), cmd_args) = scan_fmt_some!(&args, action.arg_fmt, String, String, String) { let cmd_args = cmd_args.unwrap_or(String::from("")); - if cmd.chars().next() == Some('/') { - cmd.remove(0); - } + let cmd = if cmd.chars().next() == Some('/') { + cmd.chars().skip(1).collect() + } else { + cmd + }; if let Some(action) = CHAT_COMMANDS.iter().find(|c| c.keyword == cmd) { - let mut entity_opt = None; let ecs = server.state.ecs(); - for (ent, player) in (&ecs.entities(), &ecs.read_storage::()).join() { - if player.alias == player_alias { - entity_opt = Some(ent); - break; - } - } + let entity_opt = (&ecs.entities(), &ecs.read_storage::()) + .join() + .find(|(_, player)| player.alias == player_alias) + .map(|(entity, _)| entity); if let Some(entity) = entity_opt { (action.handler)(server, client, entity, cmd_args, action); } else {