const commando = require('discord.js-commando'); const Discord = require('discord.js'); const urban = require('urban'); module.exports = class UrbanDictionary extends commando.Command { constructor(Client) { super(Client, { name: 'urban', aliases: [ 'urbandictionary', 'urbandefine', 'urbandefinition' ], group: 'search', memberName: 'urban', description: 'Searches Urban Dictionary. (;urban Cat)', examples: [';urban Cat'] }); } async run(message) { if (message.channel.type !== 'dm') { if (!message.channel.permissionsFor(this.client.user).hasPermission(['SEND_MESSAGES', 'READ_MESSAGES'])) return; } console.log(`[Command] ${message.content}`); let wordToDefine = message.content.split(" ").slice(1).join(" "); urban(wordToDefine).first(function(response) { if (!response) { return message.channel.send(":x: Error! Word not found!"); } else if (!response.definition) { return message.channel.send(":x: Error! Word has no definition!"); } else if (response.example) { const embed = new Discord.RichEmbed() .setColor(0x32a8f0) .setAuthor('Urban Dictionary', 'http://a1.mzstatic.com/eu/r30/Purple71/v4/66/54/68/6654683f-cacd-4a55-1784-f14257f77874/icon175x175.png') .setURL(response.permalink) .setTitle(response.word) .setDescription(`${response.definition.substr(0, 1900)} [Read the Rest Here!](${response.permalink})`) .addField('**Example:**', response.example.substr(0, 1900)); return message.channel.sendEmbed(embed).catch(console.error); } else { const embed = new Discord.RichEmbed() .setColor(0x32a8f0) .setAuthor('Urban Dictionary', 'http://a1.mzstatic.com/eu/r30/Purple71/v4/66/54/68/6654683f-cacd-4a55-1784-f14257f77874/icon175x175.png') .setURL(response.permalink) .setTitle(response.word) .setDescription(`${response.definition.substr(0, 1900)} [Read the Rest Here!](${response.permalink})`); return message.channel.sendEmbed(embed).catch(console.error); } }); } };