forked from Androz2091/discord-music-bot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
loop.js
52 lines (47 loc) · 1.9 KB
/
loop.js
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
const { SlashCommand, CommandOptionType } = require('slash-create');
const { QueueRepeatMode } = require('discord-player');
module.exports = class extends SlashCommand {
constructor(creator) {
super(creator, {
name: "loop",
description: "Sets loop mode",
options: [
{
name: "mode",
type: CommandOptionType.INTEGER,
description: "Loop type",
required: true,
choices: [
{
name: "Off",
value: QueueRepeatMode.OFF
},
{
name: "Track",
value: QueueRepeatMode.TRACK
},
{
name: "Queue",
value: QueueRepeatMode.QUEUE
},
{
name: "Autoplay",
value: QueueRepeatMode.AUTOPLAY
}
]
}
],
guildIDs: process.env.DISCORD_GUILD_ID ? [ process.env.DISCORD_GUILD_ID ] : undefined
});
}
async run (ctx) {
const { client } = require('..');
await ctx.defer();
const queue = client.player.getQueue(ctx.guildID);
if (!queue || !queue.playing) return void ctx.sendFollowUp({ content: "❌ | No music is being played!" });
const loopMode = ctx.options.mode;
const success = queue.setRepeatMode(loopMode);
const mode = loopMode === QueueRepeatMode.TRACK ? "🔂" : loopMode === QueueRepeatMode.QUEUE ? "🔁" : "▶";
return void ctx.sendFollowUp({ content: success ? `${mode} | Updated loop mode!` : "❌ | Could not update loop mode!" });
}
}