From adfb965964fcbd431e1a50f3bf6d28010af948a0 Mon Sep 17 00:00:00 2001 From: Dragon Fire Date: Wed, 9 Dec 2020 17:29:02 -0500 Subject: [PATCH] Moveset Version --- commands/search/pokedex-moveset.js | 8 ++++++-- structures/pokemon/Pokemon.js | 6 ++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/commands/search/pokedex-moveset.js b/commands/search/pokedex-moveset.js index a93eb53e..679bfdfa 100644 --- a/commands/search/pokedex-moveset.js +++ b/commands/search/pokedex-moveset.js @@ -1,6 +1,9 @@ const Command = require('../../structures/Command'); const { MessageEmbed } = require('discord.js'); -const { stripIndents } = require('common-tags'); +const versions = { + 'red-blue': 'Red and Blue', + 'ultra-sun-ultra-moon': 'Ultra Sun and Ultra Moon' +}; module.exports = class PokedexMovesetCommand extends Command { constructor(client) { @@ -57,7 +60,8 @@ module.exports = class PokedexMovesetCommand extends Command { .setColor(0xED1C24) .setAuthor(`#${data.displayID} - ${data.name}`, data.boxImageURL, data.serebiiURL) .setDescription(data.moveSet.map(move => `**Level ${move.level}:** ${move.name}`).join('\n')) - .setThumbnail(data.spriteImageURL); + .setThumbnail(data.spriteImageURL) + .setFooter(`Moveset data taken from ${versions[pokemon.moveSetVersion]}.`); return msg.embed(embed); } catch (err) { return msg.reply(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); diff --git a/structures/pokemon/Pokemon.js b/structures/pokemon/Pokemon.js index 1f5ed46f..175a20b4 100644 --- a/structures/pokemon/Pokemon.js +++ b/structures/pokemon/Pokemon.js @@ -48,6 +48,7 @@ module.exports = class Pokemon { this.height = data.missingno ? data.height : null; this.weight = data.missingno ? data.weight : null; this.moveSet = data.missingno ? data.moveSet : []; + this.moveSetVersion = data.missingno ? 'red-blue' : 'ultra-sun-ultra-moon'; this.gameDataCached = data.missingno || false; this.missingno = data.missingno || false; this.cry = data.id > store.pokemonCountWithCry @@ -111,11 +112,12 @@ module.exports = class Pokemon { spd: defaultBody.stats.find(stat => stat.stat.name === 'speed').base_stat }; for (const move of defaultBody.moves) { - if (!move.version_group_details[move.version_group_details.length - 1].level_learned_at) continue; + const versionGroup = move.version_group_details.find(version => version.name === this.moveSetVersion); + if (!versionGroup.level_learned_at) continue; const { body: moveBody } = await request.get(move.move.url); this.moveSet.push({ name: moveBody.names.find(name => name.language.name === 'en').name, - level: move.version_group_details[move.version_group_details.length - 1].level_learned_at + level: versionGroup.level_learned_at }); } this.moveSet = this.moveSet.sort((a, b) => a.level - b.level);