Don't display pikachu's 1000 forms

This commit is contained in:
Dragon Fire
2020-03-24 22:12:35 -04:00
parent 411222cb15
commit 6ebaef0104
2 changed files with 16 additions and 2 deletions
+1 -1
View File
@@ -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);
+15 -1
View File
@@ -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;