mirror of
https://github.com/arthur-pbty/xiao.git
synced 2026-06-23 10:02:05 +02:00
Fix
This commit is contained in:
@@ -54,7 +54,11 @@ module.exports = class PokedexCommand extends Command {
|
|||||||
const data = await this.client.pokemon.fetch(pokemon);
|
const data = await this.client.pokemon.fetch(pokemon);
|
||||||
if (!data) return msg.say('Could not find any results.');
|
if (!data) return msg.say('Could not find any results.');
|
||||||
if (!data.gameDataCached) await data.fetchGameData();
|
if (!data.gameDataCached) await data.fetchGameData();
|
||||||
const variety = data.varieties.find(vrity => form ? vrity.name.toLowerCase() === form : vrity.default);
|
const variety = data.varieties.find(vrity => {
|
||||||
|
if (!form) return vrity.default;
|
||||||
|
if (!vrity.name && form === 'normal') return true;
|
||||||
|
return vrity.name.toLowerCase() === form;
|
||||||
|
});
|
||||||
if (!variety) {
|
if (!variety) {
|
||||||
const varieties = data.varieties.map(vrity => vrity.name || 'Normal');
|
const varieties = data.varieties.map(vrity => vrity.name || 'Normal');
|
||||||
return msg.say(`Invalid form. The forms available for this Pokémon are: ${list(varieties, 'and')}`);
|
return msg.say(`Invalid form. The forms available for this Pokémon are: ${list(varieties, 'and')}`);
|
||||||
@@ -69,6 +73,7 @@ module.exports = class PokedexCommand extends Command {
|
|||||||
spd: Math.round((variety.stats.spd / 255) * 10) * 2,
|
spd: Math.round((variety.stats.spd / 255) * 10) * 2,
|
||||||
total: Math.round((statTotal / 720) * 10) * 2
|
total: Math.round((statTotal / 720) * 10) * 2
|
||||||
};
|
};
|
||||||
|
const displayForms = data.varieties.filter(vrity => vrity.statsDiffer);
|
||||||
const embed = new MessageEmbed()
|
const embed = new MessageEmbed()
|
||||||
.setColor(0xED1C24)
|
.setColor(0xED1C24)
|
||||||
.setAuthor(`#${data.displayID} - ${data.name}`, data.boxImageURL, data.serebiiURL)
|
.setAuthor(`#${data.displayID} - ${data.name}`, data.boxImageURL, data.serebiiURL)
|
||||||
@@ -85,8 +90,9 @@ module.exports = class PokedexCommand extends Command {
|
|||||||
`)
|
`)
|
||||||
.addField('❯ Abilities', variety.abilities.join('/'))
|
.addField('❯ Abilities', variety.abilities.join('/'))
|
||||||
.addField('❯ Other Forms', stripIndents`
|
.addField('❯ Other Forms', stripIndents`
|
||||||
Use ${this.usage(`${data.id} <form>`)} to get stats for another form.
|
_Use ${this.usage(`${data.id} <form>`)} to get stats for another form._
|
||||||
Forms Available: ${data.varieties.map(vrity => vrity.name || 'Normal').join(', ')}
|
|
||||||
|
**Forms Available:** ${displayForms.map(vrity => `\`${vrity.name || 'Normal'}\``).join(', ')}
|
||||||
`);
|
`);
|
||||||
return msg.embed(embed);
|
return msg.embed(embed);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
|||||||
@@ -126,7 +126,6 @@ module.exports = class PokedexCommand extends Command {
|
|||||||
}
|
}
|
||||||
return msg.embed(embed);
|
return msg.embed(embed);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
throw err;
|
|
||||||
return msg.reply(`Oh no, an error occurred: \`${err.message}\`. Try again later!`);
|
return msg.reply(`Oh no, an error occurred: \`${err.message}\`. Try again later!`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ module.exports = class Pokemon {
|
|||||||
name: name || null,
|
name: name || null,
|
||||||
mega: data.missingno ? false : null,
|
mega: data.missingno ? false : null,
|
||||||
stats: data.missingno ? variety.stats : {},
|
stats: data.missingno ? variety.stats : {},
|
||||||
|
statsDiffer: data.missingno ? true : null,
|
||||||
default: variety.is_default,
|
default: variety.is_default,
|
||||||
types: data.missingno ? variety.types : [],
|
types: data.missingno ? variety.types : [],
|
||||||
abilities: data.missingno ? variety.abilities : []
|
abilities: data.missingno ? variety.abilities : []
|
||||||
@@ -139,6 +140,7 @@ module.exports = class Pokemon {
|
|||||||
sDef: defaultBody.stats.find(stat => stat.stat.name === 'special-defense').base_stat,
|
sDef: defaultBody.stats.find(stat => stat.stat.name === 'special-defense').base_stat,
|
||||||
spd: defaultBody.stats.find(stat => stat.stat.name === 'speed').base_stat
|
spd: defaultBody.stats.find(stat => stat.stat.name === 'speed').base_stat
|
||||||
};
|
};
|
||||||
|
defaultVariety.statsDiffer = true;
|
||||||
const inSwordShield = defaultBody.moves
|
const inSwordShield = defaultBody.moves
|
||||||
.some(move => move.version_group_details.some(mve => mve.version_group.name === 'sword-shield'));
|
.some(move => move.version_group_details.some(mve => mve.version_group.name === 'sword-shield'));
|
||||||
this.moveSetVersion = inSwordShield ? 'sword-shield' : 'ultra-sun-ultra-moon';
|
this.moveSetVersion = inSwordShield ? 'sword-shield' : 'ultra-sun-ultra-moon';
|
||||||
@@ -165,7 +167,14 @@ module.exports = class Pokemon {
|
|||||||
sAtk: body.stats.find(stat => stat.stat.name === 'special-attack').base_stat,
|
sAtk: body.stats.find(stat => stat.stat.name === 'special-attack').base_stat,
|
||||||
sDef: body.stats.find(stat => stat.stat.name === 'special-defense').base_stat,
|
sDef: body.stats.find(stat => stat.stat.name === 'special-defense').base_stat,
|
||||||
spd: body.stats.find(stat => stat.stat.name === 'speed').base_stat
|
spd: body.stats.find(stat => stat.stat.name === 'speed').base_stat
|
||||||
}
|
};
|
||||||
|
const baseStats = defaultVariety.stats;
|
||||||
|
variety.statsDiffer = baseStats.hp !== variety.stats.hp
|
||||||
|
|| baseStats.atk !== variety.stats.atk
|
||||||
|
|| baseStats.def !== variety.stats.def
|
||||||
|
|| baseStats.sAtk !== variety.stats.sAtk
|
||||||
|
|| baseStats.sDef !== variety.stats.sDef
|
||||||
|
|| baseStats.spd !== variety.stats.spd;
|
||||||
for (const ability of body.abilities) {
|
for (const ability of body.abilities) {
|
||||||
const { body: abilityBody } = await request.get(ability.ability.url);
|
const { body: abilityBody } = await request.get(ability.ability.url);
|
||||||
variety.abilities.push(abilityBody.names.find(name => name.language.name === 'en').name);
|
variety.abilities.push(abilityBody.names.find(name => name.language.name === 'en').name);
|
||||||
|
|||||||
Reference in New Issue
Block a user