1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
|
"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 ABeeVoice extends discord_js_commando_1.Command {
constructor(client) {
super(client, {
name: 'itemshop',
aliases: ['item-shop'],
group: 'voice',
memberName: 'itemshop',
description: 'Use code \'Frozen\' in the Fortnite item shop.',
guildOnly: true,
clientPermissions: ['SPEAK', 'CONNECT', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'],
userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'],
examples: ['uwu!itemshop', 'uwu!item-shop']
});
}
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 id = 'pBiI1hTwU7E';
const video = yield youtube.getVideoByID(id).catch(function () {
return msg.say('There was a problem getting the video you provided. ' + emoji_random_1.default.random());
});
msg.guild.musicData.queue.push(this.constructSongObj(video, voiceChannel));
if (msg.guild.musicData.isPlaying == false ||
typeof msg.guild.musicData.isPlaying == 'undefined') {
msg.guild.musicData.isPlaying = true;
return this.playSong(msg.guild.musicData.queue, msg);
}
else if (msg.guild.musicData.isPlaying == true) {
return msg.say(`${video.title} added to queue. ` + 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();
}
msg.say(`${video.title} added to queue. ` + emoji_random_1.default.random());
return;
}
})
.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(0xF97DAE)
.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 song. ' + 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();
});
function timeCheck() {
if (dispatcher.streamTime >= 6000) {
msg.guild.musicData.isPlaying = false;
msg.guild.musicData.nowPlaying = null;
msg.guild.musicData.songDispatcher = null;
}
}
setInterval(timeCheck, 500);
})
.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbXNob3AuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvdm9pY2UvaXRlbXNob3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwREFBNkI7QUFDN0IsNkRBQThDO0FBQzlDLDJDQUFtRDtBQUNuRCw0RUFBeUM7QUFFekMsb0VBQXVDO0FBQ3ZDLE1BQU0sT0FBTyxHQUFHLElBQUksNEJBQU8sQ0FBQyxxQkFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7QUFDbEQsZ0VBQWlDO0FBRWpDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxTQUFVLFNBQVEsNkJBQU87SUFDNUMsWUFBWSxNQUFNO1FBQ2QsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNWLElBQUksRUFBRSxVQUFVO1lBQ2hCLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQztZQUN0QixLQUFLLEVBQUUsT0FBTztZQUNkLFVBQVUsRUFBRSxVQUFVO1lBQ3RCLFdBQVcsRUFBRSxnREFBZ0Q7WUFDN0QsU0FBUyxFQUFFLElBQUk7WUFDZixpQkFBaUIsRUFBRSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLHNCQUFzQixDQUFDO1lBQ2hGLGVBQWUsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUMxRCxRQUFRLEVBQUUsQ0FBQyxjQUFjLEVBQUUsZUFBZSxDQUFDO1NBQzlDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDSyxHQUFHLENBQUMsR0FBWTs7WUFDbEIsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQzlDLElBQUksQ0FBQyxZQUFZO2dCQUFFLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyx1Q0FBdUMsR0FBRyxzQkFBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFFNUYsTUFBTSxFQUFFLEdBQUcsYUFBYSxDQUFDO1lBQ3pCLE1B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
|