From 14ad6e923ca71674f7a37b04b3a36bc1030e9d93 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sat, 31 Mar 2018 21:50:28 -0400 Subject: more stuff --- plugins/music.js | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 plugins/music.js (limited to 'plugins/music.js') diff --git a/plugins/music.js b/plugins/music.js new file mode 100644 index 0000000..2dbabda --- /dev/null +++ b/plugins/music.js @@ -0,0 +1,59 @@ +/** ************************************** + * + * Music: Plugin for PokeBot that interacts with the Lavalink API. + * Copyright (C) 2018 TheEdge, jtsshieh, Alee + * + * Licensed under the Open Software License version 3.0 + * + * *************************************/ + +exports.resolveTrack = async (term, sc) => { + const fetch = require('snekfetch'); + let track = await fetch.get('http://localhost:2344/loadtracks?identifier=' + term, { headers: { Authorization: 'iamaverysecurepassword' } }); + if (!track.body[0]) { + const search = 'http://localhost:2344/loadtracks?identifier=' + (sc ? 'scsearch:' : 'ytsearch:') + term; + track = await fetch.get(search, { headers: { Authorization: 'iamaverysecurepassword' } }); + } + return track.body[0]; +}; + +exports.play = async (bot, msg, track) => { + const player = await bot.player.join({ + d: { + guild_id: msg.guild.id, + channel_id: msg.member.voiceChannelID, + }, + host: 'localhost', + }); + if (!bot.queue.has(msg.guild.id)) { + bot.queue.set(msg.guild.id, []); + bot.queue.get(msg.guild.id).push(track); + player.play(bot.queue.get(msg.guild.id).shift()); + player.on('end', () => { + if (bot.queue.get(msg.guild.id)[0]) { + player.play(bot.queue.get(msg.guild.id).shift()); + } + else { + bot.player.leave(msg.guild.id); + } + }); + } + else { + bot.queue.get(msg.guild.id).push(track); + } +}; + +exports.skip = async (bot, msg) => { + const player = await bot.player.join({ + guild: msg.guild.id, + channel: msg.member.voiceChannelID, + host: 'localhost', + }); + if (bot.queue.has(msg.guild.id)) { + player.stop(); + player.emit('end'); + } + else { + return msg.channel.send('There is nothing playing.'); + } +}; -- cgit v1.2.3