private async Task EmbedCharacterAsync(CharacterResponseModel xivApiResponse) { if (xivApiResponse.Error.HasValue) { await ErrorAsync(xivApiResponse.Message); return; } CharacterModel character = xivApiResponse.Character; Discord.EmbedBuilder embed = new Discord.EmbedBuilder(); embed.Title = character.Name; embed.ImageUrl = character.Portrait; embed.ThumbnailUrl = character.Avatar; await ReplyAsync(null, false, embed.Build()); }
public async Task WhoIsAsync(string server, string firstName, string lastName) { if (string.IsNullOrWhiteSpace(server)) { await ErrorAsync("`server` cannot be blank"); return; } if (string.IsNullOrWhiteSpace(firstName)) { await ErrorAsync("`First Name` cannot be blank"); return; } if (string.IsNullOrWhiteSpace(lastName)) { await ErrorAsync("`Last Name` cannot be blank"); return; } CharacterResponseModel response = await _xivApi.CharacterByName(server, firstName, lastName); if (response.Results != null && response.Results.Count > 0) { await WhoIsAsync(response.Results[0].ID.ToString()); return; } else { await ErrorAsync("Unable to locate that character by server and name given"); } }
public async Task WhoIsAsync(string lodestoneID) { if (string.IsNullOrWhiteSpace(lodestoneID)) { await ErrorAsync("Invalid parameters"); return; } CharacterResponseModel response = await _xivApi.CharacterByLodestoneID(lodestoneID); if (response.Error.HasValue) { await ErrorAsync(response.Message); return; } CharacterModel character = response.Character; XIVTitleModel title = await _db.XIVTitles.FirstOrDefaultAsync(t => t.ID == character.Title); using (var stream = await CreateCharacterCard(response.Character, response.FreeCompany)) { //await Context.Channel.SendFileAsync(@"C:\Users\Dart\Desktop\saved_card.png", $"{character.Name}_Character_Card.png"); stream.Position = 0; await Context.Channel.SendFileAsync(stream, $"{character.Name}_Character_Card.png"); } //EmbedBuilder embed = new Discord.EmbedBuilder(); //embed.Title = $"{character.Name}, {title.Name}"; //embed.Description = $@"[View on lodestone](https://na.finalfnatasyxiv.com/lodestone/character/{character.ID})"; //embed.ThumbnailUrl = character.Avatar; //embed.ImageUrl = character.Portrait; //embed.AddField("Character Info", $"**Job**: {character.ActiveClassJob.UnlockedState.Name} [lvl {character.ActiveClassJob.Level}]"); //await ReplyAsync(null, false, embed.Build()); }