UNPKG

naar-music-bot

Version:

Simple JavaScript Music Discord Bot Powerd By: NAAR Studio.

91 lines 4.51 kB
const ytsr = require("youtube-sr") const { MessageEmbed } = require("discord.js"); module.exports = { name: "search", aliases: ["find"], cooldown: 20, description: `Gives you the search results!.`, run: async(client, message, args) => { if (client.search_command == true) { if (!message.guild) return; const { channel } = message.member.voice; const serverQueue = message.client.queue.get(message.guild.id); message.react("✅").catch(err => { throw new TypeError(err) }); if (!args.length) return message.channel.send( new MessageEmbed() .setTitle(`Please Type The Music Name`) .setColor("RED")).catch(err => { throw new TypeError(err) }); if (message.channel.activeCollector) return; if (!message.member.voice.channel) return message.channel.send( new MessageEmbed() .setTitle("sYou Have To Join a \`Voice Channel\` First!") .setColor("RED")).catch(err => { throw new TypeError(err) }); if (serverQueue && channel !== message.guild.me.voice.channel) return message.channel.send( new MessageEmbed() .setTitle(`Iam Only Work In \`${channel.name}\``) .setColor("RED")).catch(err => { throw new TypeError(err) }); const search = args.join(" "); let temEmbed = new MessageEmbed() .setAuthor("🔄 Searching...") .setColor("#f300e5") let resultsEmbed = new MessageEmbed() .setTitle("✅ Results for: ") .setDescription(`\`${search}\``) .setColor("#f300e5") .setFooter("Response with your favorite number", client.user.displayAvatarURL()) try { const results = await ytsr.search(search, { limit: 5 }); results.map((video, index) => resultsEmbed.addField(video.url, `${index + 1}. ${video.title}`)); const resultsMessage = await message.channel.send(temEmbed) await resultsMessage.react("1️⃣"); await resultsMessage.react("2️⃣"); await resultsMessage.react("3️⃣"); await resultsMessage.react("4️⃣"); await resultsMessage.react("5️⃣"); await resultsMessage.edit(resultsEmbed) message.channel.activeCollector = true; let response; await resultsMessage.awaitReactions((reaction, user) => user.id == message.author.id, { max: 1, time: 60000, errors: ['time'], }).then(collected => { if (collected.first().emoji.name == "1️⃣") { return response = 1; } if (collected.first().emoji.name == "2️⃣") { return response = 2; } if (collected.first().emoji.name == "3️⃣") { return response = 3; } if (collected.first().emoji.name == "4️⃣") { return response = 4; } if (collected.first().emoji.name == "5️⃣") { return response = 5; } else { response = "error"; } }); if (response === "error") { return resultsMessage.delete().catch(err => { throw new TypeError(err) }); } const choice = resultsEmbed.fields[parseInt(response) - 1].name; message.channel.activeCollector = false; message.client.commands.get("play").execute(message, [choice]); resultsMessage.delete().catch(err => { throw new TypeError(err) }); } catch (error) { message.channel.activeCollector = false; throw new TypeError(err) } } else if (client.help_command == false) { message.channel.send( new MessageEmbed() .setTitle(`\`${module.exports.name}\` Has Been Disabled From The Music System`) ) } else throw new TypeError(`❌ | "${module.exports.name}_command" value must be true or false`) } };