summaryrefslogtreecommitdiff
path: root/dist/commands/voice/minecraft.js
diff options
context:
space:
mode:
Diffstat (limited to 'dist/commands/voice/minecraft.js')
-rw-r--r--dist/commands/voice/minecraft.js181
1 files changed, 0 insertions, 181 deletions
diff --git a/dist/commands/voice/minecraft.js b/dist/commands/voice/minecraft.js
deleted file mode 100644
index 714ab6a..0000000
--- a/dist/commands/voice/minecraft.js
+++ /dev/null
@@ -1,181 +0,0 @@
-"use strict";
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-const ytdl_core_1 = __importDefault(require("ytdl-core"));
-const discord_js_commando_1 = require("discord.js-commando");
-const discord_js_1 = require("discord.js");
-const simple_youtube_api_1 = __importDefault(require("simple-youtube-api"));
-const config_json_1 = __importDefault(require("../../config.json"));
-const youtube = new simple_youtube_api_1.default(config_json_1.default['yt-api-key']);
-const emoji_random_1 = __importDefault(require("emoji-random"));
-module.exports = class MinecraftVoice extends discord_js_commando_1.Command {
- constructor(client) {
- super(client, {
- name: 'minecraft',
- aliases: ['minecraftsountrack', 'minecraft-soundtrack', 'mcs', 'mc-s'],
- group: 'voice',
- memberName: 'minecraft',
- description: 'Plays the Minecraft soundtrack.',
- guildOnly: true,
- clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'],
- userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'],
- examples: [
- 'uwu!minecraft',
- 'uwu!minecraftsountrack',
- 'uwu!minecraft-soundtrack',
- 'uwu!mcs',
- 'uwu!mc-s'
- ],
- throttling: {
- usages: 1,
- duration: 60
- },
- });
- }
- run(msg) {
- return __awaiter(this, void 0, void 0, function* () {
- const voiceChannel = msg.member.voice.channel;
- if (!voiceChannel)
- return msg.say('Please join a channel and try again. ' + emoji_random_1.default.random());
- const playlist = yield youtube.getPlaylist('https://www.youtube.com/watch?v=05UM-i4PuOY&list=PLxOTV5xn7n1i2HcKtRBthP2loWjrBGAIY').catch(function () {
- return msg.say('There was a problem getting the soundtrack. ' + emoji_random_1.default.random());
- });
- const videosObj = yield playlist.getVideos(24).catch(function () {
- return msg.say('There was a problem getting the soundtrack. ' + emoji_random_1.default.random());
- });
- for (let i = 0; i < videosObj.length; i++) {
- const video = yield videosObj[i].fetch();
- msg.guild.musicData.queue.push(this.constructSongObj(video, voiceChannel));
- }
- if (msg.guild.musicData.isPlaying == false) {
- msg.guild.musicData.isPlaying = true;
- return this.playSong(msg.guild.musicData.queue, msg);
- }
- else if (msg.guild.musicData.isPlaying == true) {
- return msg.say('Now playing the Minecraft soundtrack. ' + emoji_random_1.default.random());
- }
- var that = this;
- msg.channel
- .awaitMessages(function (msg) {
- return (msg.content > 0 && msg.content < 6) || msg.content === 'exit';
- }, {
- max: 1,
- time: 60000,
- errors: ['time']
- })
- .then(function (response) {
- const videoIndex = parseInt(response.first().content);
- if (response.first().content === 'exit')
- return songEmbed.delete();
- youtube
- .getVideoByID(videos[videoIndex - 1].id)
- .then(function (video) {
- msg.guild.musicData.queue.push(that.constructSongObj(video, voiceChannel));
- if (msg.guild.musicData.isPlaying == false) {
- msg.guild.musicData.isPlaying = true;
- if (songEmbed) {
- songEmbed.delete();
- }
- that.playSong(msg.guild.musicData.queue, msg);
- }
- else if (msg.guild.musicData.isPlaying == true) {
- if (songEmbed) {
- songEmbed.delete();
- }
- return msg.say('Now playing the Minecraft soundtrack. ' + emoji_random_1.default.random());
- }
- })
- .catch(function () {
- if (songEmbed) {
- songEmbed.delete();
- }
- return msg.say('An error has occured when trying to get the video ID from YouTube. ' + emoji_random_1.default.random());
- });
- });
- });
- }
- playSong(queue, msg) {
- const classThis = this;
- queue[0].voiceChannel
- .join()
- .then(function (connection) {
- const dispatcher = connection
- .play(ytdl_core_1.default(queue[0].url, {
- quality: 'highestaudio',
- highWaterMark: 1024 * 1024 * 10
- }))
- .on('start', function () {
- msg.guild.musicData.songDispatcher = dispatcher;
- const volume = 100 / 100;
- msg.guild.musicData.volume = volume;
- dispatcher.setVolume(msg.guild.musicData.volume);
- const videoEmbed = new discord_js_1.MessageEmbed()
- .setThumbnail(queue[0].thumbnail)
- .setColor(0xFFCC4D)
- .addField('Now Playing:', queue[0].title)
- .addField('Duration:', queue[0].duration);
- if (queue[1])
- videoEmbed.addField('Next Song:', queue[1].title);
- msg.say(videoEmbed);
- msg.guild.musicData.nowPlaying = queue[0];
- return queue.shift();
- })
- .on('finish', function () {
- if (queue.length >= 1) {
- return classThis.playSong(queue, msg);
- }
- else {
- msg.guild.musicData.isPlaying = false;
- msg.guild.musicData.nowPlaying = null;
- msg.guild.musicData.songDispatcher = null;
- return msg.guild.me.voice.channel.leave();
- }
- })
- .on('error', function (e) {
- msg.say('Can\'t play soundtrack. ' + emoji_random_1.default.random());
- console.error(e);
- msg.guild.musicData.queue.length = 0;
- msg.guild.musicData.isPlaying = false;
- msg.guild.musicData.nowPlaying = null;
- msg.guild.musicData.songDispatcher = null;
- return msg.guild.me.voice.channel.leave();
- });
- })
- .catch(function (e) {
- console.error(e);
- return msg.guild.me.voice.channel.leave();
- });
- }
- constructSongObj(video, voiceChannel) {
- let duration = this.formatDuration(video.duration);
- if (duration == '00:00')
- duration = 'Live Stream';
- return {
- url: `https://www.youtube.com/watch?v=${video.raw.id}`,
- title: video.title,
- duration,
- thumbnail: video.thumbnails.high.url,
- voiceChannel
- };
- }
- formatDuration(durationObj) {
- const duration = `${durationObj.hours ? (durationObj.hours + ':') : ''}${durationObj.minutes ? durationObj.minutes : '00'}:${(durationObj.seconds < 10)
- ? ('0' + durationObj.seconds)
- : (durationObj.seconds
- ? durationObj.seconds
- : '00')}`;
- return duration;
- }
-};
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluZWNyYWZ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3ZvaWNlL21pbmVjcmFmdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLDBEQUE2QjtBQUM3Qiw2REFBK0Q7QUFDL0QsMkNBQTBDO0FBQzFDLDRFQUF5QztBQUV6QyxvRUFBdUM7QUFDdkMsTUFBTSxPQUFPLEdBQUcsSUFBSSw0QkFBTyxDQUFDLHFCQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztBQUNsRCxnRUFBaUM7QUFFakMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLGNBQWUsU0FBUSw2QkFBTztJQUNqRCxZQUFZLE1BQU07UUFDZCxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ1YsSUFBSSxFQUFFLFdBQVc7WUFDakIsT0FBTyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQztZQUN0RSxLQUFLLEVBQUUsT0FBTztZQUNkLFVBQVUsRUFBRSxXQUFXO1lBQ3ZCLFdBQVcsRUFBRSxpQ0FBaUM7WUFDOUMsU0FBUyxFQUFFLElBQUk7WUFDZixpQkFBaUIsRUFBRSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQ2hGLGVBQWUsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUMxRCxRQUFRLEVBQUU7Z0JBQ04sZUFBZTtnQkFDZix3QkFBd0I7Z0JBQ3hCLDBCQUEwQjtnQkFDMUIsU0FBUztnQkFDVCxVQUFVO2FBQ2I7WUFDRCxVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDSyxHQUFHLENBQUMsR0FBb0I7O1lBQzFCLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8s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 \ No newline at end of file