const { Command } = require('discord.js-commando'); const snekfetch = require('snekfetch'); const { MessageEmbed } = require('discord.js'); module.exports = class NeopetItemCommand extends Command { constructor(client) { super(client, { name: 'neopet-item', aliases: ['jellyneo', 'jellyneo-item', 'jellyneo-item-database'], group: 'search', memberName: 'neopet-item', description: 'Responds with information on a specific Neopets item.', clientPermissions: ['EMBED_LINKS'], args: [ { key: 'item', prompt: 'What item would you like to get information on?', type: 'string' } ] }); } async run(msg, { item }) { try { const search = await snekfetch .get('https://items.jellyneo.net/search/') .query({ name: item, name_type: 3 }); const id = search.text.match(/\/item\/([0-9]+)/); if (!id) return msg.say('Could not find any results.'); const { text } = await snekfetch.get(`https://items.jellyneo.net/item/${id[1]}/`); const embed = new MessageEmbed() .setColor(0xFFCE31) .setAuthor('Neopets', 'https://i.imgur.com/umW0YwZ.png') .setTitle(text.match(/

(.+)<\/h1>/)[1]) .setDescription(text.match(/(.+)<\/em>/)[1]) .setURL(`https://items.jellyneo.net/item/${id[1]}/`) .setThumbnail(`https://items.jellyneo.net/assets/imgs/items/${id[1]}.gif`) .addField('❯ Price', search.text.match(/[0-9]+ NP/)[0]); return msg.embed(embed); } catch (err) { return msg.reply(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); } } };