public async Task JoinTeam(int id) { IGuildUser user = (Context.User as IGuildUser); 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 == id); if (team is null) { await Context.Channel.SendMessageAsync("", false, Embeds.UserNotOnTeam(plr)).ConfigureAwait(false); return; } IRole guildRole = Context.Guild.GetRole(team.RoleId); await user.AddRoleAsync(guildRole).ConfigureAwait(false); plr.TeamId = id; await Context.Channel.SendMessageAsync("", false, Embeds.PlayerJoinedTeam(user, team, Context.Guild)); }
public async Task RegisterTribe([Remainder] string tribeName) { 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 (_storage.Teams.Any(team => team.TribeName == tribeName)) { await Context.Channel.SendMessageAsync("", false, Embeds.TribeNameAlreadyExists(tribeName)).ConfigureAwait(false); return; } team.TribeName = tribeName; await Context.Channel.SendMessageAsync("", false, Embeds.NewTribe(user, team)); }
public async Task NewTeam(string teamName, [Remainder] string tribeName) { IUser user = Context.User; if (_storage.Teams.Any(x => x.Name == teamName)) { await Context.Channel.SendMessageAsync("", false, Embeds.TeamAlreadyExists(teamName)).ConfigureAwait(false); return; } Team newTeam = new Team(); newTeam.Id = _storage.Teams.Count + 1; newTeam.Name = teamName; newTeam.TribeName = tribeName; var role = await Context.Guild.CreateRoleAsync(teamName, null, null, false, true, null).ConfigureAwait(false); newTeam.RoleId = role.Id; _storage.Teams.Add(newTeam); await Context.Channel.SendMessageAsync("", false, Embeds.NewTeam(user, newTeam, Context.Guild)); }
public async Task SendEmptyMessage() { if (_config["misc:deathCounterMessageId"] != "") { return; } await Context.Channel.SendMessageAsync("", false, Embeds.ServerStatus(new List <StatusClass>())).ConfigureAwait(false); }
public async Task RegisterPlayer(string steamId, [Remainder] string characterName) { IUser user = Context.User; if (_storage.Players.Any(plr => plr.DiscordId == user.Id)) { await Context.Channel.SendMessageAsync("", false, Embeds.UserAlreadyExists(user)).ConfigureAwait(false); return; } _storage.Players.Add(new Player() { DiscordId = user.Id, CharacterName = characterName, SteamID = steamId }); await Context.Channel.SendMessageAsync("", false, Embeds.NewCharacterRegistered(user, characterName)); }
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)); }
private async Task CheckExternalHours() { _storage.Teams.ForEach(async x => { if (!string.IsNullOrEmpty(x.OpenMap)) { x.MinutesRemaining--; if (x.MinutesRemaining == 30.0d || x.MinutesRemaining == 15.0d || x.MinutesRemaining == 0.0d) { await _commands.SendMinutesRemaining(x).ConfigureAwait(false); } } }); _storage.Save(); await _commands.UpdateHoursRemaining(Embeds.TeamCurrency(_storage.Teams)).ConfigureAwait(false); }
private async Task CheckServersAvailable() { Globals.Servers.ForEach(x => { _log.Info($"{x.MapName} connected: {x.Connected}"); if (!x.Connected) { x.Reconnect(); } }); //Globals.Servers.Where(x => !x.Connected).ToList().ForEach(x => //{ // _log.Info($"{x.MapName} connected: {x.Connected}"); //}); await _commands.UpdateServerStatus(Embeds.ServerStatus(Globals.Servers)).ConfigureAwait(false); }
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)); }
public async Task StopServer(string serverName) { Embed e = null; IUser user = Context.User; if (ValidateWorldExists(serverName)) { await _rconManager.ShutdownServerAsync(serverName); e = Embeds.ServerStopRequested(serverName, user); } else { e = Embeds.ServerNameDoesntExist(serverName, user); } await Context.Channel.SendMessageAsync("", false, e).ConfigureAwait(false); await Context.Message.DeleteAsync().ConfigureAwait(false); }
public async Task StartupServer(string serverName) { Embed e = null; IUser user = Context.User; if (ValidateWorldExists(serverName)) { string startupCommand = _config[$"servers:{serverName}:startupCommand"]; Process.Start(startupCommand); e = Embeds.ServerStartupRequested(serverName, user); } else { e = Embeds.ServerNameDoesntExist(serverName, user); } await Context.Channel.SendMessageAsync("", false, e).ConfigureAwait(false); await Context.Message.DeleteAsync().ConfigureAwait(false); }
private async Task UpdateDeathCounters() { await _commands.UpdateDeathCount(Embeds.DeathCounter(_storage.Players)).ConfigureAwait(false); }
internal async Task SendKillFeed(string fullString, bool wasDino) { Embed e = Embeds.UserKill(fullString, wasDino); await _commands.WriteKillToChannel(e).ConfigureAwait(false); }
internal async Task SendKillFeed(Player plr, Player klr) { Embed e = Embeds.UserKill(plr, klr); await _commands.WriteKillToChannel(e).ConfigureAwait(false); }
internal async Task SendMinutesRemaining(Team team) { await _logChannel.SendMessageAsync("", false, Embeds.MinutesRemaining(team, _guild)).ConfigureAwait(false); }