public async Task <IActionResult> SendCommandMulti(int server, string command, string[] players, string value = "") { var singleServer = await _pavlovServerService.FindOne(server); var servers = await GiveServerWhichTheUserHasRightsTo(); LiteDbUser user; user = await _userservice.getUserFromCp(HttpContext.User); if (!servers.Select(x => x.Id).Contains(singleServer.Id)) { return(Forbid()); } var isMod = await RightsHandler.IsModOnTheServer(_serverSelectedModsService, singleServer, user.Id); var commands = await RightsHandler.GetAllowCommands(new RconViewModel(), HttpContext.User, _userservice, isMod, singleServer, user); var contains = false; foreach (var singleCommand in commands) { if (command.Contains(singleCommand)) { contains = true; } } if (contains != true) { return(Forbid()); } if (command.StartsWith("GodMode")) { command = "Slap"; value = "-2147000000"; } if (command.StartsWith("CustomPlayer") || command.StartsWith("Custom")) { if (command.StartsWith("CustomPlayer")) { var count = value.Count(x => x == ' '); if (count == 1) { var pieces = value.Split(new[] { ' ' }, 2); command = pieces[0]; value = pieces[1]; } } else { command = command.Substring(7); } } var responses = Array.Empty <string>(); try { var commandsList = new List <string>(); foreach (var player in players) { if (value == null) { commandsList.Add(command + " " + player); } else { commandsList.Add(command + " " + player + " " + value); } } responses = await RconStatic.SShTunnelMultipleCommands(singleServer, commandsList.ToArray(), _toastifyService); } catch (CommandException e) { return(BadRequest(e.Message)); } if (string.IsNullOrEmpty(string.Join(";", responses))) { return(BadRequest("The response was empty!")); } var commandsResulsts = new List <string>(); try { foreach (var response in responses) { var tmp = JsonConvert.DeserializeObject <MinimumRconResultObject>(response, new JsonSerializerSettings { CheckAdditionalContent = false }); var o = (Newtonsoft.Json.Linq.JObject)JsonConvert.DeserializeObject(response); var value3 = o.Property("")?.Value; var value2 = o.Property(tmp.Command)?.Value; if (tmp != null && (value3 is { HasValues: false } || value2 is { HasValues: false }))