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)); }
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); }