diff --git a/commands/search/pokedex.js b/commands/search/pokedex.js index 8b6fde6e..a56d7034 100644 --- a/commands/search/pokedex.js +++ b/commands/search/pokedex.js @@ -51,7 +51,7 @@ module.exports = class PokedexCommand extends Command { ${data.entries[Math.floor(Math.random() * data.entries.length)]} `) .setThumbnail(data.spriteImageURL) - .addField('❯ Types', data.varieties.map( + .addField('❯ Types', data.varieties.filter(variety => variety.display).map( variety => `${variety.types.join('/')}${variety.name ? ` (${variety.name})` : ''}` ).join('\n')); return msg.embed(embed); diff --git a/structures/pokemon/Pokemon.js b/structures/pokemon/Pokemon.js index 81471034..cc98a5ac 100644 --- a/structures/pokemon/Pokemon.js +++ b/structures/pokemon/Pokemon.js @@ -13,7 +13,13 @@ module.exports = class Pokemon { this.genus = `The ${data.genera.filter(entry => entry.language.name === 'en')[0].genus}`; this.varieties = data.varieties.map(variety => { const name = firstUpperCase(variety.pokemon.name.replace(new RegExp(`${this.slug}-?`, 'i'), '')); - return { id: variety.pokemon.name, name: name || null, default: variety.is_default, types: [] }; + return { + id: variety.pokemon.name, + name: name || null, + default: variety.is_default, + display: null, + types: [] + }; }); this.typesCached = false; this.missingno = data.missingno || false; @@ -47,9 +53,17 @@ module.exports = class Pokemon { if (this.missingno) { this.varieties[0].types.push(...missingno.types); } else { + const defaultVariety = this.varieties.find(variety => variety.default); + const { body: defaultBody } = await request.get(`https://pokeapi.co/api/v2/pokemon/${defaultVariety.id}`); + defaultVariety.types.push(...defaultBody.types.map(type => firstUpperCase(type.type.name))); + defaultVariety.display = true; for (const variety of this.varieties) { + if (variety.id === defaultVariety.id) continue; const { body } = await request.get(`https://pokeapi.co/api/v2/pokemon/${variety.id}`); variety.types.push(...body.types.map(type => firstUpperCase(type.type.name))); + if (variety.types[0] === defaultVariety.types[0] && variety.types[1] === defaultVariety.types[1]) { + variety.display = false; + } } } this.typesCached = true;