public async Task <bool> JoinMatch(IMessageSender sender, string[] parameters, SocketMessage arg) { if (parameters.Length == 0 || parameters.Length != 1 || !int.TryParse(parameters[0], out var matchId)) { return(false); } var match = this.Matches.FirstOrDefault(m => m.Id == matchId); if (match == null) { return(false); } if (match.Players.Contains(arg.Author.Username)) { await sender.Reply(arg, $"Already in the match vs {match.Opponent}."); return(false); } match.Players.Add(arg.Author.Username); await sender.Reply(arg, $"Added {arg.Author.Username} from the match vs {match.Opponent}. Currently {match.Players.Count} / 5 signed up."); await SaveData(); return(true); }
public async Task <bool> SetDateForMatch(IMessageSender sender, string[] parameters, SocketMessage arg) { if (parameters.Length == 0 || parameters.Length != 3 || !int.TryParse(parameters[0], out var matchId) || !DateTime.TryParse(parameters[1], out var date) || !TimeSpan.TryParse(parameters[2], null, out var timeSpan)) { return(false); } var match = this.Matches.FirstOrDefault(m => m.Id == matchId); if (match == null) { return(false); } match.Date = date.AddMinutes(timeSpan.TotalMinutes); await sender.Reply(arg, $"Match vs {match.Opponent} set to {match.DateString}."); await SaveData(); return(true); }
public async Task <bool> AddResult(IMessageSender sender, string[] parameters, SocketMessage arg) { if (parameters.Length == 0 || parameters.Length != 3 || !int.TryParse(parameters[0], out var matchId) || !int.TryParse(parameters[1], out var ourRounds) || !int.TryParse(parameters[2], out var theirRounds)) { return(false); } var match = this.Matches.FirstOrDefault(m => m.Id == matchId); if (match == null) { return(false); } match.OurRounds = ourRounds; match.TheirRounds = theirRounds; await sender.Reply(arg, "Result set."); await SaveData(); return(true); }
public async Task <bool> Clear(IMessageSender sender, string[] parameters, SocketMessage arg) { this.Matches.Clear(); await sender.Reply(arg, "Cleared all data."); await SaveData(); return(true); }
public async Task <bool> PrintMatches(IMessageSender sender, string[] parameters, SocketMessage arg) { if (!this.Matches.Any()) { return(false); } foreach (var match in this.Matches) { var emb = new EmbedBuilder { Title = $"vs. {match.Opponent} - {match.DateString}" }; emb.AddField($"result: {match.Result}", $"players: {match.PlayersString}"); await sender.Reply(arg, emb.Build()); } return(true); }