From 2b83e842fea1c9cab7abbe45154a1f140e26f990 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 25 Feb 2018 21:58:31 -0500 Subject: Basic music commands --- Plugins/Music.js | 45 +++++++++++++++++++++++++ bot.js | 17 ++++++++-- commands/Fun/8ball.js | 2 +- commands/Fun/cureboredom.js | 2 +- commands/Fun/findmyphone.js | 53 ++++++++++++++--------------- commands/Fun/og151.js | 2 +- commands/Fun/ship.js | 2 +- commands/Fun/story.js | 2 +- commands/Information/contribute.js | 2 +- commands/Information/help.js | 2 +- commands/Information/ping.js | 2 +- commands/Moderation/ban.js | 2 +- commands/Moderation/kick.js | 2 +- commands/Moderation/purge.js | 2 +- commands/Moderation/softban.js | 2 +- commands/Moderation/warn.js | 2 +- commands/Music/play.js | 41 ++++++++++++++++++++++ commands/Music/skip.js | 34 +++++++++++++++++++ commands/Owners Only/eval.js | 2 +- commands/Owners Only/poweroff.js | 2 +- commands/Owners Only/say.js | 2 +- commands/Pokemon/claim.js | 2 +- commands/Pokemon/drop.js | 2 +- commands/Pokemon/join.js | 2 +- commands/Pokemon/leave.js | 2 +- commands/Pokemon/tradegym.js | 69 +++++++++++++++++++------------------- commands/Utility/nick.js | 55 +++++++++++++++--------------- commands/Utility/suggest.js | 2 +- commands/Utility/uptime.js | 2 +- commands/Utility/userinfo.js | 2 +- events/message.js | 2 +- package-lock.json | 19 +++++++++-- package.json | 4 ++- 33 files changed, 265 insertions(+), 120 deletions(-) create mode 100644 Plugins/Music.js create mode 100644 commands/Music/play.js create mode 100644 commands/Music/skip.js diff --git a/Plugins/Music.js b/Plugins/Music.js new file mode 100644 index 0000000..5088fdc --- /dev/null +++ b/Plugins/Music.js @@ -0,0 +1,45 @@ +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({ + guild: msg.guild.id, + channel: 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.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.'); + } +}; diff --git a/bot.js b/bot.js index 70a56e5..414eb76 100644 --- a/bot.js +++ b/bot.js @@ -6,7 +6,8 @@ const fs = require('fs'); bot.commands = new Discord.Collection(); bot.aliases = new Discord.Collection(); bot.categories = new Discord.Collection(); - +bot.queue = new Discord.Collection(); +bot.plugins = { music : require('./Plugins/Music.js') }; cmdLoader(); async function cmdLoader() { @@ -71,4 +72,16 @@ fs.readdir('./events', (err, files) => { console.log('\n'); }); -bot.login(config.token); + +const { PlayerManager } = require('discord.js-lavalink'); +const nodes = [ + { 'host': 'localhost', 'port': 6547, 'region': 'us', 'shard': 1, 'password': 'iamaverysecurepassword' }, +]; + +process.on('unhandledRejection', (err) => { + console.error(err.stack); +}); + +bot.login(config.token).then(() => { + bot.player = new PlayerManager(bot, nodes, { user: bot.user.id, shards: 1, password: 'iamaverysecurepassword' }); +}); diff --git a/commands/Fun/8ball.js b/commands/Fun/8ball.js index 28bf0e1..16d5d24 100644 --- a/commands/Fun/8ball.js +++ b/commands/Fun/8ball.js @@ -1,4 +1,4 @@ -/**************************************** +/** ************************************** * * 8ball: Plugin for PokeBot that allows users to use an 8ball. * Copyright (C) 2018 TheEdge, jtsshieh, Alee diff --git a/commands/Fun/cureboredom.js b/commands/Fun/cureboredom.js index 3b7cde5..1b7913c 100644 --- a/commands/Fun/cureboredom.js +++ b/commands/Fun/cureboredom.js @@ -1,4 +1,4 @@ -/**************************************** +/** ************************************** * * CureBoredom: Plugin for PokeBot that "cures" your boredom. * Copyright (C) 2018 TheEdge, jtsshieh, Alee diff --git a/commands/Fun/findmyphone.js b/commands/Fun/findmyphone.js index 482ceb3..1575917 100644 --- a/commands/Fun/findmyphone.js +++ b/commands/Fun/findmyphone.js @@ -1,4 +1,4 @@ -/**************************************** +/** ************************************** * * FindMyPhone: Plugin for PokeBot that "helps you find your phone". * Copyright (C) 2018 TheEdge, jtsshieh, Alee @@ -19,30 +19,29 @@ * *************************************/ exports.run = (bot, msg) => { - const cities = [ - 'Aurora', - 'Montgomery', - 'Chandler', - 'Boise', - 'Fresno', - 'Lubbock', - 'Miami', - 'Stockton', - 'Colorado Springs', - 'Portland', - 'Cincinnati', - ]; + const cities = [ + 'Aurora', + 'Montgomery', + 'Chandler', + 'Boise', + 'Fresno', + 'Lubbock', + 'Miami', + 'Stockton', + 'Colorado Springs', + 'Portland', + 'Cincinnati', + ]; - msg.channel.send(cities[Math.floor(Math.random() * cities.length)]); - }; - - exports.conf = { - aliases: ['findphone', 'findmyiphone', 'findmyandroid', 'findmyandroidphone'], - guildOnly: true, - }; - - exports.help = { - name: 'findmyphone', - description: 'Find your phone. Not just a random list of cities being randomly picked.', - }; - \ No newline at end of file + msg.channel.send(cities[Math.floor(Math.random() * cities.length)]); +}; + +exports.conf = { + aliases: ['findphone', 'findmyiphone', 'findmyandroid', 'findmyandroidphone'], + guildOnly: true, +}; + +exports.help = { + name: 'findmyphone', + description: 'Find your phone. Not just a random list of cities being randomly picked.', +}; diff --git a/commands/Fun/og151.js b/commands/Fun/og151.js index 2c789c7..aa9a288 100644 --- a/commands/Fun/og151.js +++ b/commands/Fun/og151.js @@ -1,4 +1,4 @@ -/**************************************** +/** ************************************** * * og151: Plugin for PokeBot that randomly picks 1 out of the original 151 Pokemon. * Copyright (C) 2018 TheEdge, jtsshieh, Alee diff --git a/commands/Fun/ship.js b/commands/Fun/ship.js index ee218f8..fdf9e3e 100644 --- a/commands/Fun/ship.js +++ b/commands/Fun/ship.js @@ -1,4 +1,4 @@ -/**************************************** +/** ************************************** * * Ship: Plugin for PokeBot that ships the user with someone else. * Copyright (C) 2018 TheEdge, jtsshieh, Alee diff --git a/commands/Fun/story.js b/commands/Fun/story.js index 2faf510..de5a6ff 100644 --- a/commands/Fun/story.js +++ b/commands/Fun/story.js @@ -1,4 +1,4 @@ -/**************************************** +/** ************************************** * * Story: Plugin for PokeBot that tells the user a story. * Copyright (C) 2018 TheEdge, jtsshieh, Alee diff --git a/commands/Information/contribute.js b/commands/Information/contribute.js index 7a0b4e4..0e1ae82 100644 --- a/commands/Information/contribute.js +++ b/commands/Information/contribute.js @@ -1,4 +1,4 @@ -/**************************************** +/** ************************************** * * Contribute: Plugin for PokeBot that redirects users to the proper place to contribute. * Copyright (C) 2018 TheEdge, jtsshieh, Alee diff --git a/commands/Information/help.js b/commands/Information/help.js index 9245963..c44424c 100644 --- a/commands/Information/help.js +++ b/commands/Information/help.js @@ -1,4 +1,4 @@ -/**************************************** +/** ************************************** * * Help: Plugin for PokeBot that guides the user on how to use the bot. * Copyright (C) 2018 TheEdge, jtsshieh, Alee diff --git a/commands/Information/ping.js b/commands/Information/ping.js index ddc93b4..3de0479 100644 --- a/commands/Information/ping.js +++ b/commands/Information/ping.js @@ -1,4 +1,4 @@ -/**************************************** +/** ************************************** * * Ping: Plugin for PokeBot that provides diagnostic information. * Copyright (C) 2018 TheEdge, jtsshieh, Alee diff --git a/commands/Moderation/ban.js b/commands/Moderation/ban.js index cbd8875..29cd566 100644 --- a/commands/Moderation/ban.js +++ b/commands/Moderation/ban.js @@ -1,4 +1,4 @@ -/**************************************** +/** ************************************** * * Ban: Plugin for PokeBot that performs moderation actions. * Copyright (C) 2018 TheEdge, jtsshieh, Alee diff --git a/commands/Moderation/kick.js b/commands/Moderation/kick.js index 4f01fd3..ee7bf99 100644 --- a/commands/Moderation/kick.js +++ b/commands/Moderation/kick.js @@ -1,4 +1,4 @@ -/**************************************** +/** ************************************** * * Kick: Plugin for PokeBot that performs moderation actions. * Copyright (C) 2018 TheEdge, jtsshieh, Alee diff --git a/commands/Moderation/purge.js b/commands/Moderation/purge.js index aab8d59..fbb381d 100644 --- a/commands/Moderation/purge.js +++ b/commands/Moderation/purge.js @@ -1,4 +1,4 @@ -/**************************************** +/** ************************************** * * Purge: Plugin for PokeBot that performs moderation actions. * Copyright (C) 2018 TheEdge, jtsshieh, Alee diff --git a/commands/Moderation/softban.js b/commands/Moderation/softban.js index b91cadf..69a7fd3 100644 --- a/commands/Moderation/softban.js +++ b/commands/Moderation/softban.js @@ -1,4 +1,4 @@ -/**************************************** +/** ************************************** * * SoftBan: Plugin for PokeBot that performs moderation actions. * Copyright (C) 2018 TheEdge, jtsshieh, Alee diff --git a/commands/Moderation/warn.js b/commands/Moderation/warn.js index 19f61b5..b47fa3f 100644 --- a/commands/Moderation/warn.js +++ b/commands/Moderation/warn.js @@ -1,4 +1,4 @@ -/**************************************** +/** ************************************** * * Warn: Plugin for PokeBot that performs moderation actions. * Copyright (C) 2018 TheEdge, jtsshieh, Alee diff --git a/commands/Music/play.js b/commands/Music/play.js new file mode 100644 index 0000000..8c93c59 --- /dev/null +++ b/commands/Music/play.js @@ -0,0 +1,41 @@ +/** ************************************** + * + * Play: Plugin for PokeBot that performs moderation actions. + * Copyright (C) 2018 TheEdge, jtsshieh, Alee + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * *************************************/ + +exports.run = async (bot, msg, args) => { + const music = bot.plugins.music; + if (args[0] == 'sc') { + args.shift(); + const track = await music.resolveTrack(args.join(' '), true); + return music.play(bot, msg, track.track); + } + const track = await music.resolveTrack(args.join(' ')); + return music.play(bot, msg, track.track); +}; + +exports.conf = { + aliases: [], + guildOnly: true, +}; + +exports.help = { + name: 'play', + description: 'Plays a song for you. If sc is not chosen, it\'ll be yt', + usage : ' ', +}; diff --git a/commands/Music/skip.js b/commands/Music/skip.js new file mode 100644 index 0000000..435aacb --- /dev/null +++ b/commands/Music/skip.js @@ -0,0 +1,34 @@ +/** ************************************** + * + * Skip: Plugin for PokeBot that performs moderation actions. + * Copyright (C) 2018 TheEdge, jtsshieh, Alee + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * *************************************/ + +exports.run = async (bot, msg) => { + const music = bot.plugins.music; + music.skip(bot, msg); +}; + +exports.conf = { + aliases: [], + guildOnly: true, +}; + +exports.help = { + name: 'skip', + description: 'Skip a song in the queue.', +}; diff --git a/commands/Owners Only/eval.js b/commands/Owners Only/eval.js index 07f6a71..a6a6916 100644 --- a/commands/Owners Only/eval.js +++ b/commands/Owners Only/eval.js @@ -1,4 +1,4 @@ -/**************************************** +/** ************************************** * * Eval / Exec: Plugin for PokeBot that provides diagnostic information. * Copyright (C) 2018 TheEdge, jtsshieh, Alee diff --git a/commands/Owners Only/poweroff.js b/commands/Owners Only/poweroff.js index f047c59..0facc66 100644 --- a/commands/Owners Only/poweroff.js +++ b/commands/Owners Only/poweroff.js @@ -1,4 +1,4 @@ -/**************************************** +/** ************************************** * * Poweroff: Plugin for PokeBot that remotely exits the process. * Copyright (C) 2018 TheEdge, jtsshieh, Alee diff --git a/commands/Owners Only/say.js b/commands/Owners Only/say.js index 18cc5a6..51de21d 100644 --- a/commands/Owners Only/say.js +++ b/commands/Owners Only/say.js @@ -1,4 +1,4 @@ -/**************************************** +/** ************************************** * * Say: Plugin for PokeBot that sends a message with the provided content. * Copyright (C) 2018 TheEdge, jtsshieh, Alee diff --git a/commands/Pokemon/claim.js b/commands/Pokemon/claim.js index 228e1c9..f9e71ee 100644 --- a/commands/Pokemon/claim.js +++ b/commands/Pokemon/claim.js @@ -1,4 +1,4 @@ -/**************************************** +/** ************************************** * * Claim: Plugin for PokeBot that powers the PokeWorld gym system. * Copyright (C) 2018 TheEdge, jtsshieh, Alee diff --git a/commands/Pokemon/drop.js b/commands/Pokemon/drop.js index 6adf3d4..6b10ace 100644 --- a/commands/Pokemon/drop.js +++ b/commands/Pokemon/drop.js @@ -1,4 +1,4 @@ -/**************************************** +/** ************************************** * * Drop: Plugin for PokeBot that powers the PokeWorld gym system. * Copyright (C) 2018 TheEdge, jtsshieh, Alee diff --git a/commands/Pokemon/join.js b/commands/Pokemon/join.js index c87e52d..01af694 100644 --- a/commands/Pokemon/join.js +++ b/commands/Pokemon/join.js @@ -1,4 +1,4 @@ -/**************************************** +/** ************************************** * * Join: Plugin for PokeBot that powers the PokeWorld team system. * Copyright (C) 2018 TheEdge, jtsshieh, Alee diff --git a/commands/Pokemon/leave.js b/commands/Pokemon/leave.js index bd78a43..d2ca96c 100644 --- a/commands/Pokemon/leave.js +++ b/commands/Pokemon/leave.js @@ -1,4 +1,4 @@ -/**************************************** +/** ************************************** * * Leave: Plugin for PokeBot that powers the PokeWorld team system. * Copyright (C) 2018 TheEdge, jtsshieh, Alee diff --git a/commands/Pokemon/tradegym.js b/commands/Pokemon/tradegym.js index 17ca6f4..f10e3fa 100644 --- a/commands/Pokemon/tradegym.js +++ b/commands/Pokemon/tradegym.js @@ -1,4 +1,4 @@ -/**************************************** +/** ************************************** * * TradeGym: Plugin for PokeBot that powers the PokeWorld gym system. * Copyright (C) 2018 TheEdge, jtsshieh, Alee @@ -18,37 +18,36 @@ * * *************************************/ -exports.run = async (bot, msg, args) => { - - if (!msg.channel.name.startsWith('gym-')) return msg.reply('Go into one of the gym channels and try again.'); - let team; - if (msg.member.roles.find('name', 'Aqua')) team = 'Aqua'; - if (msg.member.roles.find('name', 'Rocket')) team = 'Rocket'; - if (msg.member.roles.find('name', 'Magma')) team = 'Magma'; - if (msg.channel.topic == 'Current Owner: ' + msg.author.id + '/' + msg.author.tag + '/' + team) { - if (!msg.mentions.members.first()) return msg.reply('Sorry, you have to ping the recipient of the gym!'); - const recipient = msg.mentions.members.first(); - - msg.reply('Trading gym to ' + recipient); - let recipientTeam; - if (recipient.roles.find('name', 'Aqua')) recipientTeam = 'Aqua'; - if (recipient.roles.find('name', 'Rocket')) recipientTeam = 'Rocket'; - if (recipient.roles.find('name', 'Magma')) recipientTeam = 'Magma'; - msg.channel.setTopic('Current Owner: ' + recipient.id + '/' + recipient.user.tag + '/' + recipientTeam); - } - else { - msg.reply('You have to own the gym to be able to trade it!'); - }; - }; - - exports.conf = { - aliases: [], - guildOnly: true, - }; - - exports.help = { - name: 'tradegym', - description: 'Trade a gym to the pinged member.', - usage: '@user', - }; - \ No newline at end of file +exports.run = async (bot, msg) => { + + if (!msg.channel.name.startsWith('gym-')) return msg.reply('Go into one of the gym channels and try again.'); + let team; + if (msg.member.roles.find('name', 'Aqua')) team = 'Aqua'; + if (msg.member.roles.find('name', 'Rocket')) team = 'Rocket'; + if (msg.member.roles.find('name', 'Magma')) team = 'Magma'; + if (msg.channel.topic == 'Current Owner: ' + msg.author.id + '/' + msg.author.tag + '/' + team) { + if (!msg.mentions.members.first()) return msg.reply('Sorry, you have to ping the recipient of the gym!'); + const recipient = msg.mentions.members.first(); + + msg.reply('Trading gym to ' + recipient); + let recipientTeam; + if (recipient.roles.find('name', 'Aqua')) recipientTeam = 'Aqua'; + if (recipient.roles.find('name', 'Rocket')) recipientTeam = 'Rocket'; + if (recipient.roles.find('name', 'Magma')) recipientTeam = 'Magma'; + msg.channel.setTopic('Current Owner: ' + recipient.id + '/' + recipient.user.tag + '/' + recipientTeam); + } + else { + msg.reply('You have to own the gym to be able to trade it!'); + } +}; + +exports.conf = { + aliases: [], + guildOnly: true, +}; + +exports.help = { + name: 'tradegym', + description: 'Trade a gym to the pinged member.', + usage: '@user', +}; diff --git a/commands/Utility/nick.js b/commands/Utility/nick.js index 896af27..e652087 100644 --- a/commands/Utility/nick.js +++ b/commands/Utility/nick.js @@ -1,4 +1,4 @@ -/**************************************** +/** ************************************** * * Nick: Plugin for PokeBot that changes the user's display name. * Copyright (C) 2018 TheEdge, jtsshieh, Alee @@ -19,31 +19,30 @@ * *************************************/ exports.run = async (bot, msg, args) => { - const { RichEmbed } = require('discord.js'); - - msg.member.setNickname(args.join(' '), 'Requested by bot'); - msg.channel.send('Changed nickname to: ' + args.join(' ')); - setTimeout(null, 3000); - bot.channels.find('name', 'logs').send( - new RichEmbed() - .setColor(0x00ae86) - .setTitle(`Nickname: ${msg.author.tag}`) - .setDescription(`*${msg.author.tag}* changed their nickname`) - .addField('New Nickname', msg.member.displayName, true) - .setTimestamp() - .setFooter('PokeBot Beta') - ); + const { RichEmbed } = require('discord.js'); - }; - - exports.conf = { - aliases: ['nickname'], - guildOnly: true, - }; - - exports.help = { - name: 'nick', - description: 'Change your nickname.', - usage: '<...new nick>', - }; - \ No newline at end of file + msg.member.setNickname(args.join(' '), 'Requested by bot'); + msg.channel.send('Changed nickname to: ' + args.join(' ')); + setTimeout(null, 3000); + bot.channels.find('name', 'logs').send( + new RichEmbed() + .setColor(0x00ae86) + .setTitle(`Nickname: ${msg.author.tag}`) + .setDescription(`*${msg.author.tag}* changed their nickname`) + .addField('New Nickname', msg.member.displayName, true) + .setTimestamp() + .setFooter('PokeBot Beta') + ); + +}; + +exports.conf = { + aliases: ['nickname'], + guildOnly: true, +}; + +exports.help = { + name: 'nick', + description: 'Change your nickname.', + usage: '<...new nick>', +}; diff --git a/commands/Utility/suggest.js b/commands/Utility/suggest.js index 0e09fea..80017d7 100644 --- a/commands/Utility/suggest.js +++ b/commands/Utility/suggest.js @@ -1,4 +1,4 @@ -/**************************************** +/** ************************************** * * Suggest: Plugin for PokeBot that allows users to suggest things. * Copyright (C) 2018 TheEdge, jtsshieh, Alee diff --git a/commands/Utility/uptime.js b/commands/Utility/uptime.js index 6312014..86ae84d 100644 --- a/commands/Utility/uptime.js +++ b/commands/Utility/uptime.js @@ -1,4 +1,4 @@ -/**************************************** +/** ************************************** * * Uptime: Plugin for PokeBot that provides diagnostic information. * Copyright (C) 2018 TheEdge, jtsshieh, Alee diff --git a/commands/Utility/userinfo.js b/commands/Utility/userinfo.js index 288ba72..59ef68f 100644 --- a/commands/Utility/userinfo.js +++ b/commands/Utility/userinfo.js @@ -1,4 +1,4 @@ -/**************************************** +/** ************************************** * * UserInfo: Plugin for PokeBot that gives the user information about themselves or another user. * Copyright (C) 2018 TheEdge, jtsshieh, Alee diff --git a/events/message.js b/events/message.js index afd9d20..354d02c 100644 --- a/events/message.js +++ b/events/message.js @@ -19,7 +19,7 @@ module.exports = (bot, msg) => { function parseCommand(bot, msg) { let category; - const prefix = 'p:'; + const prefix = 'p,'; if (msg.author.bot) return; if (!msg.content.startsWith(prefix)) return; diff --git a/package-lock.json b/package-lock.json index 1acdedb..e66f31a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,6 +19,19 @@ "snekfetch": "3.6.4", "tweetnacl": "1.0.0", "ws": "4.1.0" + }, + "dependencies": { + "snekfetch": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/snekfetch/-/snekfetch-3.6.4.tgz", + "integrity": "sha512-NjxjITIj04Ffqid5lqr7XdgwM7X61c/Dns073Ly170bPQHLm6jkmelye/eglS++1nfTWktpP6Y2bFXjdPlQqdw==" + } + } + }, + "discord.js-lavalink": { + "version": "github:mrjacz/discord.js-lavalink#1ed9dfb75a5753519c4ed2f1d8a32a2e349d7c5d", + "requires": { + "ws": "4.1.0" } }, "long": { @@ -37,9 +50,9 @@ "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, "snekfetch": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/snekfetch/-/snekfetch-3.6.4.tgz", - "integrity": "sha512-NjxjITIj04Ffqid5lqr7XdgwM7X61c/Dns073Ly170bPQHLm6jkmelye/eglS++1nfTWktpP6Y2bFXjdPlQqdw==" + "version": "4.0.0-rc.0", + "resolved": "https://registry.npmjs.org/snekfetch/-/snekfetch-4.0.0-rc.0.tgz", + "integrity": "sha512-0WXLTGBL46tLUf/ZIpaLsXH7krxN/dhOpggbcCkVXTBOE+1oUn56hbTZIhnP72ci3ounQjUR3yhXy8w8JoS5CA==" }, "tweetnacl": { "version": "1.0.0", diff --git a/package.json b/package.json index e6b7444..3660393 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,8 @@ "author": "Alee, Justin, and Trey", "license": "GPL-3.0", "dependencies": { - "discord.js": "^11.3.0" + "discord.js": "^11.3.0", + "discord.js-lavalink": "github:mrjacz/discord.js-lavalink", + "snekfetch": "^4.0.0-rc.0" } } -- cgit v1.2.3