From 32fe86cdd6686a240bd074526bb09b1b192eadb7 Mon Sep 17 00:00:00 2001 From: Sean Stoves Date: Wed, 5 Aug 2020 20:36:50 -0400 Subject: [PATCH] Removing Legacy File --- .../ModulesOld/LodestoneCommands.cs.txt | 291 ------------------ 1 file changed, 291 deletions(-) delete mode 100644 ChaosBot/Discord/ModulesOld/LodestoneCommands.cs.txt diff --git a/ChaosBot/Discord/ModulesOld/LodestoneCommands.cs.txt b/ChaosBot/Discord/ModulesOld/LodestoneCommands.cs.txt deleted file mode 100644 index be29b85..0000000 --- a/ChaosBot/Discord/ModulesOld/LodestoneCommands.cs.txt +++ /dev/null @@ -1,291 +0,0 @@ -using System; -using Discord; -using System.Text; -using Discord.Commands; -using System.Threading.Tasks; -using System.Collections.Generic; -using System.Linq; -using ChaosBot.Lodestone; -using ChaosBot.Services; -using Discord.Net; -using NLog; - - -namespace ChaosBot.Discord.Modules -{ - public class LodestoneCommands : ModuleBase - { - private static readonly ILogger _logger = Program.Logger; - - - [Command("lodestone character")] - [Alias("lodestone c")] - public async Task GetCharacterById(long id) - { - try - { - await Context.Channel.TriggerTypingAsync(); - CharacterDetailed character = LodestoneManager.GetCharacter(id); - - var embed = BuildEmbedFromCharacter(character); - - /* - * Reply with the Embed created above - */ - await ReplyAsync(null, false, embed.Build()); - } - catch (Exception ex) - { - _logger.Error($"InfoCommands.InfoCommand: Exception [{ex}] thrown, <[{ex.Message}]>."); - } - } - - [Command("lodestone character")] - [Alias("lodestone c")] - public async Task GetCharacter(string server, params string[] name) - { - try - { - await Context.Channel.TriggerTypingAsync(); - CharacterDetailed character = LodestoneManager.GetCharacter(server, string.Join(" ", name)); - - var embed = BuildEmbedFromCharacter(character); - - /* - * Reply with the Embed created above - */ - await ReplyAsync(null, false, embed.Build()); - } - catch (Exception ex) - { - _logger.Error($"InfoCommands.InfoCommand: Exception [{ex}] thrown, <[{ex.Message}]>."); - } - } - - [Command("lodestone freecompany")] - [Alias("lodestone fc")] - public async Task GetFreeCompanyById(string id) - { - try - { - await Context.Channel.TriggerTypingAsync(); - FreeCompanyDetailed freeCompany = LodestoneManager.GetFreeCompanyById(id.ToString()); - - var embed = BuildEmbedFromFreeCompany(freeCompany); - - /* - * Reply with the Embed created above - */ - await ReplyAsync(null, false, embed.Build()); - } - catch (Exception ex) - { - _logger.Error($"InfoCommands.InfoCommand: Exception [{ex}] thrown, <[{ex.Message}]>."); - } - } - - [Command("lodestone freecompany")] - [Alias("lodestone fc")] - public async Task GetFreeCompany(string server, params string[] name) - { - try - { - await Context.Channel.TriggerTypingAsync(); - FreeCompanyDetailed freeCompany = LodestoneManager.GetFreeCompany(server, string.Join(" ", name)); - - var embed = BuildEmbedFromFreeCompany(freeCompany); - - /* - * Reply with the Embed created above - */ - await ReplyAsync(null, false, embed.Build()); - } - catch (Exception ex) - { - _logger.Error($"InfoCommands.InfoCommand: Exception [{ex}] thrown, <[{ex.Message}]>."); - } - } - - [Command("nick set")] - [Alias("lodestone nick set")] - [RequireBotPermission(GuildPermission.ManageNicknames)] - public async Task SetNickname(string server, params string[] name) - { - await Context.Channel.TriggerTypingAsync(); - CharacterDetailed character = LodestoneManager.GetCharacter(server, string.Join(" ", name)); - await NickNameBuilder(character); - } - - [Command("nick set")] - [Alias("lodestone nick set")] - [RequireBotPermission(GuildPermission.ManageNicknames)] - public async Task SetNickname(long id) - { - await Context.Channel.TriggerTypingAsync(); - CharacterDetailed character = LodestoneManager.GetCharacter(id); - await NickNameBuilder(character); - } - - private async Task NickNameBuilder(CharacterDetailed character) - { - try - { - IUserMessage message = - await ReplyAsync( - $"Found character {character.Character.Name} on server {character.Character.Server}. Is this correct?"); - List<(Emoji emoji, bool state)> reactions = new List<(Emoji emoji, bool state)> - { - (emoji: new Emoji("✅"), state: true), - (emoji: new Emoji("❎"), state: false) - }; - - foreach ((Emoji emoji, bool state) reaction in reactions) - await message.AddReactionAsync(reaction.emoji); - - int timerWaitId = -1, - timerCancelWaitId = -1; - - async void WaitForReaction() - { - foreach ((Emoji emoji, bool state) reaction in reactions) - { - IReadOnlyCollection users = (await message.GetReactionUsersAsync(reaction.emoji, 50, null).ToArrayAsync()).First(); - if (users.Any(u => u.Id == Context.User.Id)) - { - bool state = reaction.state; - - Timer.CancelTimer(timerWaitId); - Timer.CancelTimer(timerCancelWaitId); - await message.DeleteAsync(); - - if (state) - { - await ReplyAsync("Confirmed your username!"); - IGuildUser user = await Context.Guild.GetUserAsync(Context.User.Id); - try - { - await user.ModifyAsync(x => { x.Nickname = character.Character.Name; }); - } - catch (HttpException ex) - { - await ReplyAsync("Cannot update your role. Is your role above mine?"); - _logger.Warn($"LodestoneCommands.NickNameBuilder.WaitForReaction: Exception [{ex}] thrown, <[{ex.Message}]>."); - } - - return; - } - } - } - } - - async void StopWaitingForReaction() - { - await message.DeleteAsync(); - await ReplyAsync("Timed out. Please try again."); - - Timer.CancelTimer(timerWaitId); - } - - timerWaitId = Timer.RunTimer(WaitForReaction, new TimeSpan(TimeSpan.TicksPerSecond)); - timerCancelWaitId = Timer.RunIn(StopWaitingForReaction, new TimeSpan(TimeSpan.TicksPerSecond)*20.5); - } - catch (Exception ex) - { - _logger.Error($"LodestoneCommands.NickNameBuilder: Exception [{ex}] thrown, <[{ex.Message}]>."); - } - } - - private static EmbedBuilder BuildEmbedFromFreeCompany(FreeCompanyDetailed freeCompany) - { - var sb = new StringBuilder(); - var embed = new EmbedBuilder(); - - embed.WithColor(new Color(255, 255, 0)); - embed.Title = $"Free Company Information"; - embed.Url = $"https://na.finalfantasyxiv.com/lodestone/freecompany/{freeCompany.FreeCompany.ID}/"; - embed.ImageUrl = freeCompany.FreeCompany.Crest.First(); - embed.Footer = new EmbedFooterBuilder().WithText($"Lodestone ID {freeCompany.FreeCompany.ID}"); - - sb.AppendLine( - $"{freeCompany.FreeCompany.Name} ({freeCompany.FreeCompany.Server}, rank {freeCompany.FreeCompany.Rank})"); - sb.AppendLine($"{freeCompany.FreeCompany.Slogan}"); - sb.AppendLine(); - sb.AppendLine($"{freeCompany.FreeCompany.ActiveMemberCount} active members."); - sb.AppendLine($"Company estate {freeCompany.FreeCompany.Estate.Plot}"); - sb.AppendLine($"Pledged to Grand Company {freeCompany.FreeCompany.GrandCompany}"); - sb.AppendLine(); - - var rankCounts = freeCompany.FreeCompanyMembers.GroupBy(m => m.Rank) - .Select(g => new {Rank = g.Key, Count = g.Count()}) - .OrderBy(x => x.Rank); - - foreach (string rank in new List {"Council", "Mentor", "Member", "Initiate"}) - { - var rankCount = rankCounts.First(e => e.Rank == rank); - sb.AppendLine($"{rankCount.Count} members are of rank {rankCount.Rank} "); - } - - /* - * Add the string to the Embed - */ - embed.Description = sb.ToString(); - return embed; - } - - private static EmbedBuilder BuildEmbedFromCharacter(CharacterDetailed character) - { - var sb = new StringBuilder(); - var embed = new EmbedBuilder(); - - embed.WithColor(new Color(255, 255, 0)); - embed.Title = $"Character Information"; - embed.Url = $"https://na.finalfantasyxiv.com/lodestone/character/{character.Character.ID}/"; - embed.ImageUrl = character.Character.Avatar; - embed.Footer = new EmbedFooterBuilder().WithText($"Lodestone ID {character.Character.ID}"); - - char genderIcon = character.Character.Gender == 1 ? '♂' : '♀'; - sb.AppendLine($"{character.Character.Name} {genderIcon} ({character.Character.Server})"); - sb.AppendLine($"Bio: {character.Character.Bio}"); - sb.AppendLine(); - sb.AppendLine( - $"Current Job: {LodestoneManager.Classes.GetValueOrDefault(character.Character.ActiveClassJob.UnlockedState.Name)?.Item1.ToString()} {character.Character.ActiveClassJob.Level}"); - sb.AppendLine(); - sb.AppendLine("All Jobs:"); - - sb.Append("```"); - List> classInfoList = new List>(); - foreach (CharacterClassJob characterClassJob in character.Character.ClassJobs.ToArray()) - { - if (characterClassJob.Level == 0) continue; - Tuple classInfo = - LodestoneManager.Classes.GetValueOrDefault(characterClassJob.UnlockedState.Name); - classInfoList.Add(new Tuple(classInfo.Item1, classInfo.Item2, characterClassJob.Level)); - } - - foreach (var classTypeList in classInfoList.GroupBy(ci => ci.Item2) - .Select(group => new {ClassType = @group.Key, classList = @group.ToArray()}).OrderBy(g => g.ClassType)) - { - sb.Append($"{classTypeList.ClassType.ToString()}:"); - - for (int i = 0; i < classTypeList.classList.Length; i++) - { - if ((i % 4) == 0) - sb.AppendLine(); - - Tuple classItem = classTypeList.classList[i]; - sb.Append(String.Format(" {0,3}: {1,2}", classItem.Item1, classItem.Item3)); - } - - sb.AppendLine("\n"); - } - - sb.Append("```"); - - /* - * Add the string to the Embed - */ - embed.Description = sb.ToString(); - return embed; - } - } -} \ No newline at end of file