コード例 #1
0
        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());
        }
コード例 #2
0
        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");
            }
        }
コード例 #3
0
        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());
        }