diff --git a/commands/search/magic.js b/commands/search/magic.js index 9b8437b6..774a2449 100644 --- a/commands/search/magic.js +++ b/commands/search/magic.js @@ -52,6 +52,7 @@ module.exports = class MagicCommand extends Command { async run(msg, { query }) { const card = query ? await this.search(query) : await this.random(); + if (!card) return msg.say('Could not find any results.'); const isMDFC = Boolean(card.card_faces); const oracleText = isMDFC ? card.card_faces.map(c => c.oracle_text).join('\n\n//\n\n') : card.oracle_text; const manaCost = isMDFC ? card.card_faces.map(c => c.mana_cost).join(' // ') : card.mana_cost; @@ -75,7 +76,6 @@ module.exports = class MagicCommand extends Command { const { body } = await request .get('https://api.scryfall.com/cards/search') .query({ q: `${query}${isFunny ? ' is:funny' : ''}` }); - if (!body.data || !body.data.length || body.status === 404) return null; return body.data[0]; } catch (err) { if (err.status === 404) return null; diff --git a/commands/search/yu-gi-oh.js b/commands/search/yu-gi-oh.js index d2b13482..8995ece9 100644 --- a/commands/search/yu-gi-oh.js +++ b/commands/search/yu-gi-oh.js @@ -37,35 +37,40 @@ module.exports = class YuGiOhCommand extends Command { } async run(msg, { card }) { - const { body } = await request - .get('https://db.ygoprodeck.com/api/v7/cardinfo.php') - .query({ - fname: card, - la: 'english' - }); - const data = body.data[0]; - const embed = new MessageEmbed() - .setColor(0xBE5F1F) - .setTitle(data.name) - .setURL(`https://db.ygoprodeck.com/card/?search=${data.id}`) - .setDescription(data.type === 'Normal Monster' ? `_${shorten(data.desc)}_` : shorten(data.desc)) - .setAuthor('Yu-Gi-Oh!', logos.yugioh, 'http://www.yugioh-card.com/') - .setThumbnail(data.card_images[0].image_url) - .setFooter(data.id.toString()) - .addField('❯ Type', data.type, true) - .addField(data.type.includes('Monster') ? '❯ Race' : '❯ Spell Type', data.race, true); - if (data.type.includes('Monster')) { - embed - .addField('❯ Attribute', data.attribute, true) - .addField('❯ Level', data.level?.toString() || 'N/A', true) - .addField('❯ ATK', formatNumber(data.atk).toString(), true) - .addField( - data.type === 'Link Monster' ? '❯ Link Value' : '❯ DEF', - formatNumber(data.type === 'Link Monster' ? data.linkval : data.def).toString(), - true - ); + try { + const { body } = await request + .get('https://db.ygoprodeck.com/api/v7/cardinfo.php') + .query({ + fname: card, + la: 'english' + }); + const data = body.data[0]; + const embed = new MessageEmbed() + .setColor(0xBE5F1F) + .setTitle(data.name) + .setURL(`https://db.ygoprodeck.com/card/?search=${data.id}`) + .setDescription(data.type === 'Normal Monster' ? `_${shorten(data.desc)}_` : shorten(data.desc)) + .setAuthor('Yu-Gi-Oh!', logos.yugioh, 'http://www.yugioh-card.com/') + .setThumbnail(data.card_images[0].image_url) + .setFooter(data.id.toString()) + .addField('❯ Type', data.type, true) + .addField(data.type.includes('Monster') ? '❯ Race' : '❯ Spell Type', data.race, true); + if (data.type.includes('Monster')) { + embed + .addField('❯ Attribute', data.attribute, true) + .addField('❯ Level', data.level?.toString() || 'N/A', true) + .addField('❯ ATK', formatNumber(data.atk).toString(), true) + .addField( + data.type === 'Link Monster' ? '❯ Link Value' : '❯ DEF', + formatNumber(data.type === 'Link Monster' ? data.linkval : data.def).toString(), + true + ); + } + embed.addField('❯ TCGPlayer Price', `$${data.card_prices[0].tcgplayer_price}`); + return msg.embed(embed); + } catch (err) { + if (err.status === 400) return msg.say('Could not find any results.'); + throw err; } - embed.addField('❯ TCGPlayer Price', `$${data.card_prices[0].tcgplayer_price}`); - return msg.embed(embed); } };