public async Task Save() { MessageHandler messageHandler = new MessageHandler(); EmbedBuilder message; if (CheckStarted(Context.User.Id.ToString())) { string savedMessage = "Alright! I've taken a note of your team! You can now simulate matches against other users using it!"; var user = GetUserByIdFromList(Context.User.Id.ToString()); if (user.CheckTeamReady()) { if (user.Saved) { savedMessage = "Team is already saved."; } else { user.SaveTeam(); } } else { savedMessage = "Hmm, looks like your loadout isn't quite ready yet. You gotta have five people in your team!"; } message = messageHandler.BuildEmbed("Save team", savedMessage, Palette.Pink, GetNamesForSummonersInUserTeam(GetUserByIdFromList(Context.User.Id.ToString())), GetNamesForChampionsInUserTeam(GetUserByIdFromList(Context.User.Id.ToString()))); } else { message = messageHandler.BuildEmbed(haventStartedMessage[0], haventStartedMessage[1], Palette.Pink); } await ReplyAsync("", false, message.Build()); }
public async Task End() { MessageHandler messageHandler = new MessageHandler(); EmbedBuilder message = messageHandler.BuildEmbed("Team creation and management", $"Finished team creation and editing.", Palette.Pink); if (!CheckStarted(Context.User.Id.ToString())) { message = messageHandler.BuildEmbed("Team creation and management", $"You haven't started.", Palette.Pink); } else { userList.RemoveAll(x => x.UserId == Context.User.Id.ToString()); } await ReplyAsync("", false, message.Build()); }
public async Task Start() { MessageHandler messageHandler = new MessageHandler(); EmbedBuilder message = messageHandler.BuildEmbed("Team creation and management", $"Started creating and editing team. Write `team end` when done.", Palette.Pink); if (CheckStarted(Context.User.Id.ToString())) { message = messageHandler.BuildEmbed("Team creation and management", $"You've already started.", Palette.Pink); } else { User user = new User(Context.User.Id.ToString(), Context.User.Username); userList.Add(user); } await ReplyAsync("", false, message.Build()); }
public async Task TeamHelpCommandGuild() { MessageHandler messageHandler = new MessageHandler(); string imageUrl = ImageHandler.GetImageUrl(helpImageName); string description = "PM me the the same command to view help on it."; EmbedBuilder message = messageHandler.BuildEmbed("This command is used in private messages ", $"{description}", Palette.Pink, imageUrl); await ReplyAsync("", false, message.Build()); }
public async Task HelpCommand() { var champions = StaticRiotApi.GetInstance(Settings.RiotAPIKey).GetChampions(RiotSharp.Misc.Region.euw).Champions; var champ = champions.First(c => c.Key == "Aatrox").Value; MessageHandler messageHandler = new MessageHandler(); EmbedBuilder message = messageHandler.BuildEmbed("Team creation and management command", $"Use `help team` to see how to use it.", Palette.Pink); await ReplyAsync("", false, message.Build()); }
public async Task TestCommand() { //use this to test whatever string requestString = @"http://api.champion.gg/champion/ahri/summaaoners/mostWins?api_key=9d30e87ffd52401b8387aa20cf2c701e"; IRestResponse data = HTTPHandler.GET(requestString); MessageHandler messageHandler = new MessageHandler(); await ReplyAsync("", false, messageHandler.BuildEmbed("testing", $"{data.Content}; {data.StatusCode}; {data.StatusDescription}; {data.ResponseStatus}; {data.IsSuccessful}", Palette.Pink).Build()); }
public async Task SetColorCommand(string color) { SocketGuildUser user = Context.Guild.Users.Where(c => c.Id == Context.User.Id).First(); MessageHandler handler = new MessageHandler(); if (!CheckPermissions.CheckUserInChannel(user, Context.Channel as SocketTextChannel, "changing-room")) { await ReplyAsync("", false, handler.BuildEmbed("uwu Oopsie whoopsie", $"I'm sowwy :3 but it wooks wike you haw to call thish command fwom <#422886537068412929> owo").Build()); return; } if (color == "none") { await user.RemoveRolesAsync(Context.Guild.Roles.Where(c => ColorRoles.Contains(c.Name))); await ReplyAsync("", false, handler.BuildEmbed("Removed color", $"Not so shiny.").Build()); Debugging.Log("SetColorCommand", $"Removed colors for {user.Username}"); return; } color = $"[{color}]"; if (ColorRoles.Contains(color)) { await user.RemoveRolesAsync(Context.Guild.Roles.Where(c => ColorRoles.Contains(c.Name))); await user.AddRoleAsync(Context.Guild.Roles.Where(c => c.Name == color).First()); await ReplyAsync("", false, handler.BuildEmbed("New color set!", $"Shiny.").Build()); Debugging.Log("SetColorCommand", $"Set new color for {user.Username}"); return; } else { await ReplyAsync("", false, handler.BuildEmbed("Color doesn't exist", $"Try one of these: `red`, `orange`, `yellow`, `green`, `blue`, `purple` or `none` to reset").Build()); return; } }
public async Task TeamHelpCommand() { MessageHandler messageHandler = new MessageHandler(); List <string> commandTitles = new List <string> { "team view", "team save", "team addplayer 'Summoner name/id' 'champ name/id' `role` `region`", "team removeplayer `ask tene about this`" }; List <string> commandDescriptions = new List <string> { "Displays your current team.", "Saves your team settings.", "Adds a summoner with a champion to your team.", "Removes a summoner and his champ from your team." }; string imageUrl = ImageHandler.GetImageUrl(helpImageName); string description = "a description"; EmbedBuilder message = messageHandler.BuildEmbed("Team creation and management help ", $"{description}", Palette.Pink, commandTitles, commandDescriptions, imageUrl); await ReplyAsync("", false, message.Build()); }
public async Task HelpCommand() { MessageHandler messageHandler = new MessageHandler(); List <string> commandTitles = new List <string> { "team", "!battle" }; List <string> commandDescriptions = new List <string> { "Team creation and management command.", "Battling, idk tene write this" }; string imageUrl = ImageHandler.GetImageUrl(helpImageName); string description = "I can create teams of league summoners with selected champions and put two teams against each other.\n" + "There are commands called from a server I'm in and commands sent directly to my PMs. Team creations are done from PMs, while simulating matches can be done in a server channel.\n" + "Below are my main commands, call `help command` to get more info on how to use it and see its subcommands."; EmbedBuilder message = messageHandler.BuildEmbed("How to use me properly: ", $"{description}", Palette.Pink, commandTitles, commandDescriptions, imageUrl); await ReplyAsync("", false, message.Build()); }
private async Task HandleCommandAsync(SocketMessage arg) { MessageHandler handler = new MessageHandler(); var message = arg as SocketUserMessage; if (message == null || message.Author.IsBot) { return; } int argPos = 0; if ((message.HasStringPrefix("!", ref argPos) || message.HasMentionPrefix(Settings._client.CurrentUser, ref argPos)) && !CheckPrivate(message)) { var context = new SocketCommandContext(Settings._client, message); Debugging.Log("Command Handler", $"{context.User.Username} called {message}"); var result = await Settings._commands.ExecuteAsync(context, argPos, Settings._services); if (!result.IsSuccess && result.Error != CommandError.ObjectNotFound || result.Error != CommandError.Exception || result.ErrorReason != "The server responded with error 400: BadRequest") { Debugging.Log("Command Handler", $"Error with command {message}: {result.ErrorReason.Replace(".", "")}", LogSeverity.Warning); if (result.ErrorReason == "Invalid context for command; accepted contexts: DM") { await arg.Channel.SendMessageAsync("", false, handler.BuildEmbed(":no_entry_sign: Whoops! Something went wrong!", "Try messaging that command to me instead!").Build()); } else { await arg.Channel.SendMessageAsync("", false, handler.BuildEmbed(":no_entry_sign: Whoops! Something went wrong!", result.ErrorReason).Build()); } } } else if (CheckPrivate(message)) //direct message { bool AddingToDB = false; var context = new SocketCommandContext(Settings._client, message); Debugging.Log("Command Handler, DM", $"{context.User.Username} sent {message}"); if (!CheckUserInDatabase.Check(context.User.Id.ToString())) // checks if user is in database, if not, add { AddingToDB = true; await arg.Channel.SendMessageAsync("", false, handler.BuildEmbed("Hi there!", "Looks like we've never met before. Nice to meet you! I'm going to quickly add you to my database...", ImageHandler.GetImageUrl("ahriwave")).Build()); User newUser = new User(context.User.Id.ToString(), context.User.Username); if (newUser.AddToDatabase()) { await arg.Channel.SendMessageAsync("", false, handler.BuildEmbed("All done!", "You're ready to go! Use `help` to see what I can do!")); } else { await arg.Channel.SendMessageAsync("", false, handler.BuildEmbed("Hmm... Something went wrong!", "I couldn't add you to my database. Go ahead and try again!")); } } var result = await Settings._commands.ExecuteAsync(context, argPos, Settings._services); if (!result.IsSuccess && result.Error != CommandError.ObjectNotFound || result.Error != CommandError.Exception) { if (AddingToDB) { AddingToDB = false; } else { Debugging.Log("Command Handler, DM", $"Error with command {message}: {result.ErrorReason.Replace(".", "")}", LogSeverity.Warning); await arg.Channel.SendMessageAsync("", false, handler.BuildEmbed(":no_entry_sign: Whoops! Something went wrong!", result.ErrorReason).Build()); } } } }
public async Task View() { MessageHandler messageHandler = new MessageHandler(); EmbedBuilder message; EmbedBuilder embed = new EmbedBuilder() .WithAuthor(a => a.WithIconUrl(Context.User.GetAvatarUrl()).WithName(Context.User.Username + "'s team")) .WithTitle("Here's your lineup!") .WithColor(Palette.Pink); if (CheckStarted(Context.User.Id.ToString())) { string savedMessage = ""; var user = GetUserByIdFromList(Context.User.Id.ToString()); if (user.Saved) { savedMessage = "Your team is currently saved! Don't worry!"; } else { savedMessage = "Team isn't currently saved! Use `team save` when you're done!"; } var summonersInUserTeam = GetNamesForSummonersInUserTeam(GetUserByIdFromList(Context.User.Id.ToString())); var namesForChampionsInUserTeam = GetNamesForChampionsInUserTeam(GetUserByIdFromList(Context.User.Id.ToString())); if (summonersInUserTeam.Count > 1) { message = messageHandler.BuildEmbed("Your current team setup: ", savedMessage, Palette.Pink, summonersInUserTeam, namesForChampionsInUserTeam); } else { message = messageHandler.BuildEmbed("Your current team setup: ", savedMessage, Palette.Pink, new List <string> { "It's empty!" }, new List <string> { "See `help` to see how to add" }); } } else { try { string userid = Context.User.Id.ToString(); User user = new User(userid, Context.User.Username); Team team = new Team(userid); team.GetExistingTeamFromUser(); user.SetTeam(team); int counter = 0; foreach (var summoner in team.Summoners) { counter++; string role; string incrementor; switch (summoner.Lane) { case (Lane.Bot): role = "ADC"; break; case (Lane.Jungle): role = "Jungler"; break; case (Lane.Mid): role = "Midlaner"; break; case (Lane.Top): role = "Top"; break; case (Lane.Support): role = "Support"; break; default: return; } switch (counter) { case 1: incrementor = "Alright! First up we've got: "; break; case 2: incrementor = "Secondly, it's: "; break; case 3: incrementor = "Next up!: "; break; case 4: incrementor = "Let's not forget about "; break; case 5: incrementor = "And last, but not least! It's "; break; default: return; } long id = int.Parse(summoner.SummonerId); embed.AddField(incrementor + RiotApi.GetDevelopmentInstance(Settings.RiotAPIKey).GetSummonerBySummonerId(summoner.Region, id).Name + " as SK" + Context.User.Username.ToUpperInvariant() + "'s " + role + "!", "Looks like they'll be playing... " + GetChampionNameById(summoner.ChampionId).Name + "!"); } } catch (Exception e) { message = messageHandler.BuildEmbed("Whoops! There's been an error getting your team. Make sure you have one!", $"A message for my creators: {e.Message}", Palette.Pink); Debugging.Log("View command CHECKSTARTED ELSE", $"Error trying to get existing team from user: {e.Message}", LogSeverity.Error); } } await ReplyAsync("", false, embed.Build()); }
public async Task RemovePlayer() { MessageHandler messageHandler = new MessageHandler(); await ReplyAsync("", false, messageHandler.BuildEmbed("Looks like this isn't quite ready yet. Give me a bit more time, no need to rush ;)", "Not yet implemented").Build()); }
public async Task AddPlayer(string summoner, string champion, string roleInput, string region) { MessageHandler handler = new MessageHandler(); if (CheckStarted(Context.User.Id.ToString())) { if (GetUserByIdFromList(Context.User.Id.ToString()).Team.Summoners.Count == 5) { await ReplyAsync("", false, handler.BuildEmbed("Looks like your team is full!", "You can't have more than 5 summoners in your team. To remove one do `removesummoner idk need to talk to tene`")); return; } bool correctLaneRole = true; Lane lane = new Lane(); Role role = new Role(); switch (roleInput.ToUpper()) { case ("ADC"): lane = Lane.Bot; role = Role.DuoCarry; break; case ("JUNGLE"): lane = Lane.Jungle; role = Role.None; break; case ("MID"): lane = Lane.Mid; role = Role.Solo; break; case ("TOP"): lane = Lane.Top; role = Role.Solo; break; case ("SUPPORT"): lane = Lane.Bot; role = Role.DuoSupport; break; default: correctLaneRole = false; await ReplyAsync("", false, handler.BuildEmbed("Hmm... Doesn't look like that's a proper role!", "Try one of these instead!: `ADC` `SUPPORT` `MID` `TOP` `JUNGLE`")); break; } if (correctLaneRole) { champion = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(champion); RiotSharp.Misc.Region parsedRegion; Enum.TryParse(region, out parsedRegion); Summoner newSummoner = new Summoner(RiotAPIClass.api.GetSummonerByName(parsedRegion, summoner).Id.ToString(), GetChampionByName(champion).Id.ToString(), role, lane, parsedRegion); var obj = GetUserByIdFromList(Context.User.Id.ToString()); if (obj != null) { obj.AddSummonerToTeam(newSummoner); } await ReplyAsync("", false, handler.BuildEmbed("Added player to your team", "", Palette.Pink).Build()); } } else { await ReplyAsync("", false, handler.BuildEmbed(haventStartedMessage[0], haventStartedMessage[1], Palette.Pink).Build()); } }
private async Task HandleCommandAsync(SocketMessage arg) { MessageHandler handler = new MessageHandler(); RestUserMessage message1; var message = arg as SocketUserMessage; if (message == null || message.Author.IsBot) { return; } int argPos = 0; if (!message.HasStringPrefix("//", ref argPos) && message.Channel.Name == "ticket-station") { await message.DeleteAsync(); } if ((message.HasStringPrefix("//", ref argPos) || message.HasMentionPrefix(Settings._client.CurrentUser, ref argPos)) && !CheckPrivate(message)) { var context = new SocketCommandContext(Settings._client, message); Debugging.Log("Command Handler", $"{context.User.Username} called {message}"); var result = await Settings._commands.ExecuteAsync(context, argPos, Settings._services); if (!result.IsSuccess && result.Error != CommandError.ObjectNotFound || result.Error != CommandError.Exception || result.ErrorReason != "The server responded with error 400: BadRequest") { Debugging.Log("Command Handler", $"Error with command {message}: {result.ErrorReason.Replace(".", "")}", LogSeverity.Warning); if (result.ErrorReason == "Invalid context for command; accepted contexts: DM") { await arg.Channel.SendMessageAsync("", false, handler.BuildEmbed(":no_entry_sign: ERROR!", "Try PMing that command instead.").Build()); } else { message1 = await arg.Channel.SendMessageAsync("", false, handler.BuildEmbed(":no_entry_sign: Error!", result.ErrorReason).Build()); await Task.Delay(5000); await message1.DeleteAsync(); await message.DeleteAsync(); } } } else if (CheckPrivate(message)) //direct message { bool AddingToDB = false; var context = new SocketCommandContext(Settings._client, message); Debugging.Log("Command Handler, DM", $"{context.User.Username} sent {message}"); var result = await Settings._commands.ExecuteAsync(context, argPos, Settings._services); if (!result.IsSuccess && result.Error != CommandError.ObjectNotFound || result.Error != CommandError.Exception) { if (AddingToDB) { AddingToDB = false; } else { Debugging.Log("Command Handler, DM", $"Error with command {message}: {result.ErrorReason.Replace(".", "")}", LogSeverity.Warning); await arg.Channel.SendMessageAsync("", false, handler.BuildEmbed(":no_entry_sign: Error!", result.ErrorReason).Build()); } } } }