internal async Task ShutdownServerAsync(string serverName) { StatusClass server = null; server = Globals.Servers.Find(x => x.Connected && x.Name == serverName); if (server is null) { return; } await server.SendSaveAndShutdownCommand().ConfigureAwait(false); }
private void LoadServerData() { foreach (var server in _config.GetSection("servers").GetChildren()) { string name = server.Key; string ip = server["ip"]; string port = server["port"]; string rconpassword = server["password"]; string mapname = server["mapname"]; StatusClass sc = new StatusClass(name, ip, port, rconpassword, mapname, this); Globals.Servers.Add(sc); } _log.Info($"LoadServerData returned {Globals.Servers.Count} entries."); }
public async Task CloseWorld() { IUser user = Context.User; Player plr = _storage.Players.Find(x => x.DiscordId == user.Id); if (plr is null) { await Context.Channel.SendMessageAsync("", false, Embeds.DiscordUserNoPlayer(user)).ConfigureAwait(false); return; } Team team = _storage.Teams.Find(x => x.Id == plr.TeamId); if (team is null) { await Context.Channel.SendMessageAsync("", false, Embeds.UserNotOnTeam(plr)).ConfigureAwait(false); return; } if (string.IsNullOrEmpty(team.OpenMap)) { await Context.Channel.SendMessageAsync("", false, Embeds.NoMapOpen(team)).ConfigureAwait(false); return; } await Context.Channel.SendMessageAsync("", false, Embeds.TeamClosedWorld(team)); StatusClass server = Globals.Servers.Find(x => x.MapName == team.OpenMap); server.RemoveTeamFromWhiteList(team); try { server.KickAllTeamPlayers(team).Wait(); } catch (Exception ex) { _log.Info(ex); } team.OpenMap = ""; await _commands.UpdateHoursRemaining(Embeds.TeamCurrency(_storage.Teams)); }
public async Task OpenWorld(string serverName) { IUser user = Context.User; Player plr = _storage.Players.Find(x => x.DiscordId == user.Id); if (plr is null) { await Context.Channel.SendMessageAsync("", false, Embeds.DiscordUserNoPlayer(user)).ConfigureAwait(false); return; } Team team = _storage.Teams.Find(x => x.Id == plr.TeamId); if (team is null) { await Context.Channel.SendMessageAsync("", false, Embeds.UserNotOnTeam(plr)).ConfigureAwait(false); return; } if (team.MinutesRemaining <= 0) { await Context.Channel.SendMessageAsync("", false, Embeds.TeamNoTimeLeft(team)).ConfigureAwait(false); return; } if (!string.IsNullOrEmpty(team.OpenMap)) { await Context.Channel.SendMessageAsync("", false, Embeds.MapAlreadyOpen(team)).ConfigureAwait(false); return; } if (ValidateWorldExists(serverName)) { StatusClass server = Globals.Servers.Find(x => x.Name == serverName); server.WhiteListTeam(team); team.OpenMap = server.MapName; } await Context.Channel.SendMessageAsync("", false, Embeds.TeamOpenedWorld(team)).ConfigureAwait(false); await _commands.UpdateHoursRemaining(Embeds.TeamCurrency(_storage.Teams)); }