Improve battle command

This commit is contained in:
Daniel Odendahl Jr
2018-10-09 20:59:49 +00:00
parent 51e8bac784
commit bae943bff7
7 changed files with 110 additions and 67 deletions
+31
View File
@@ -0,0 +1,31 @@
module.exports = class Pokemon {
constructor(data) {
this.id = data.id;
this.name = data.names.filter(entry => entry.language.name === 'en')[0].name;
this.entries = data.flavor_text_entries
.filter(entry => entry.language.name === 'en')
.map(entry => entry.flavor_text.replace(/\n|\f|\r/g, ' '));
this.names = data.names;
this.genus = `The ${data.genera.filter(entry => entry.language.name === 'en')[0].genus}`;
}
get displayID() {
return this.id.toString().padStart(3, '0');
}
get slug() {
return encodeURIComponent(this.name.toLowerCase().replace(/ /g, '-').replace(/[^a-zA-Z0-9-]/g, ''));
}
get spriteImageURL() {
return `https://www.serebii.net/sunmoon/pokemon/${this.displayID}.png`;
}
get boxImageURL() {
return `https://www.serebii.net/pokedex-sm/icon/${this.displayID}.png`;
}
get serebiiURL() {
return `https://www.serebii.net/pokedex-sm/${this.displayID}.shtml`;
}
};
+17
View File
@@ -0,0 +1,17 @@
const { Collection } = require('discord.js');
const request = require('node-superfetch');
const Pokemon = require('./Pokemon');
module.exports = class PokemonStore extends Collection {
async fetch(query) {
query = encodeURIComponent(query.toLowerCase().replace(/ /g, '-').replace(/[^a-zA-Z0-9-]/g, ''));
const num = Number.parseInt(query, 10);
if (this.has(num)) return this.get(num);
const found = this.find(pokemon => pokemon.slug === query);
if (found) return found;
const { body } = await request.get(`https://pokeapi.co/api/v2/pokemon-species/${query}/`);
const pokemon = new Pokemon(body);
this.set(pokemon.id, pokemon);
return pokemon;
}
};