music: more misc fixes
This commit is contained in:
parent
c7fe95623c
commit
b18cf6f779
1 changed files with 19 additions and 15 deletions
|
@ -138,7 +138,10 @@ async function processPlaylist(
|
||||||
}
|
}
|
||||||
|
|
||||||
async function createVoiceConnection(guild_id, voice_id, text_id) {
|
async function createVoiceConnection(guild_id, voice_id, text_id) {
|
||||||
const state = {};
|
const state = {
|
||||||
|
voice_id,
|
||||||
|
text_id,
|
||||||
|
};
|
||||||
|
|
||||||
const guild = hf.bot.guilds.get(guild_id);
|
const guild = hf.bot.guilds.get(guild_id);
|
||||||
state.connection = hf.bot.joinVoiceChannel({
|
state.connection = hf.bot.joinVoiceChannel({
|
||||||
|
@ -148,7 +151,6 @@ async function createVoiceConnection(guild_id, voice_id, text_id) {
|
||||||
selfMute: false,
|
selfMute: false,
|
||||||
voiceAdapterCreator: guild.voiceAdapterCreator,
|
voiceAdapterCreator: guild.voiceAdapterCreator,
|
||||||
});
|
});
|
||||||
state.text_id = text_id;
|
|
||||||
state.queue = [];
|
state.queue = [];
|
||||||
state.player = createAudioPlayer();
|
state.player = createAudioPlayer();
|
||||||
state.connection.subscribe(state.player);
|
state.connection.subscribe(state.player);
|
||||||
|
@ -169,8 +171,8 @@ async function createVoiceConnection(guild_id, voice_id, text_id) {
|
||||||
addedBy: next.addedBy,
|
addedBy: next.addedBy,
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
await state.player.stop();
|
state.player.stop();
|
||||||
await state.connection.disconnect();
|
state.connection.disconnect();
|
||||||
if (!state.__leave) {
|
if (!state.__leave) {
|
||||||
await hf.bot.guilds
|
await hf.bot.guilds
|
||||||
.get(guild_id)
|
.get(guild_id)
|
||||||
|
@ -178,6 +180,7 @@ async function createVoiceConnection(guild_id, voice_id, text_id) {
|
||||||
.createMessage({
|
.createMessage({
|
||||||
content: ":musical_note: Queue is empty, leaving voice channel.",
|
content: ":musical_note: Queue is empty, leaving voice channel.",
|
||||||
});
|
});
|
||||||
|
await hf.bot.leaveVoiceChannel(voice_id);
|
||||||
}
|
}
|
||||||
state.player.off(AudioPlayerStatus.Idle, state.onEnd);
|
state.player.off(AudioPlayerStatus.Idle, state.onEnd);
|
||||||
voiceStorage.delete(guild_id);
|
voiceStorage.delete(guild_id);
|
||||||
|
@ -375,7 +378,7 @@ async function enqueue({
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
connection._music_nowplaying = {
|
connection.nowplaying = {
|
||||||
title,
|
title,
|
||||||
addedBy,
|
addedBy,
|
||||||
thumbnail,
|
thumbnail,
|
||||||
|
@ -435,7 +438,7 @@ command.callback = async function (
|
||||||
if (msg.member?.voiceState?.channelID) {
|
if (msg.member?.voiceState?.channelID) {
|
||||||
if (voiceStorage.has(msg.guildID)) {
|
if (voiceStorage.has(msg.guildID)) {
|
||||||
const connection = voiceStorage.get(msg.guildID);
|
const connection = voiceStorage.get(msg.guildID);
|
||||||
if (connection.channelID != msg.member.voiceState.channelID) {
|
if (connection.voice_id != msg.member.voiceState.channelID) {
|
||||||
return "You are in a different voice channel than the bot.";
|
return "You are in a different voice channel than the bot.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -584,7 +587,7 @@ command.callback = async function (
|
||||||
if (msg.member?.voiceState?.channelID) {
|
if (msg.member?.voiceState?.channelID) {
|
||||||
const connection = voiceStorage.get(msg.guildID);
|
const connection = voiceStorage.get(msg.guildID);
|
||||||
if (voiceStorage.has(msg.guildID)) {
|
if (voiceStorage.has(msg.guildID)) {
|
||||||
if (connection.channelID != msg.member.voiceState.channelID) {
|
if (connection.voice_id != msg.member.voiceState.channelID) {
|
||||||
return "You are in a different voice channel than the bot.";
|
return "You are in a different voice channel than the bot.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -601,7 +604,7 @@ command.callback = async function (
|
||||||
if (msg.member?.voiceState?.channelID) {
|
if (msg.member?.voiceState?.channelID) {
|
||||||
const connection = voiceStorage.get(msg.guildID);
|
const connection = voiceStorage.get(msg.guildID);
|
||||||
if (voiceStorage.has(msg.guildID)) {
|
if (voiceStorage.has(msg.guildID)) {
|
||||||
if (connection.channelID != msg.member.voiceState.channelID) {
|
if (connection.voice_id != msg.member.voiceState.channelID) {
|
||||||
return "You are in a different voice channel than the bot.";
|
return "You are in a different voice channel than the bot.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -609,7 +612,8 @@ command.callback = async function (
|
||||||
// TODO: skip lock checks
|
// TODO: skip lock checks
|
||||||
connection.queue = [];
|
connection.queue = [];
|
||||||
connection.__leave = true;
|
connection.__leave = true;
|
||||||
await connection.stopPlaying();
|
connection.player.stop();
|
||||||
|
connection.connection.disconnect();
|
||||||
await hf.bot.leaveVoiceChannel(msg.member.voiceState.channelID);
|
await hf.bot.leaveVoiceChannel(msg.member.voiceState.channelID);
|
||||||
return {reaction: "\uD83D\uDC4B"};
|
return {reaction: "\uD83D\uDC4B"};
|
||||||
} else {
|
} else {
|
||||||
|
@ -620,7 +624,7 @@ command.callback = async function (
|
||||||
return "The bot is not in a voice channel.";
|
return "The bot is not in a voice channel.";
|
||||||
|
|
||||||
const connection = voiceStorage.get(msg.guildID);
|
const connection = voiceStorage.get(msg.guildID);
|
||||||
const nowPlaying = connection._music_nowplaying;
|
const nowPlaying = connection.nowplaying;
|
||||||
if (!nowPlaying || !connection.playing)
|
if (!nowPlaying || !connection.playing)
|
||||||
return "Nothing is currently playing.";
|
return "Nothing is currently playing.";
|
||||||
|
|
||||||
|
@ -671,10 +675,10 @@ command.callback = async function (
|
||||||
return "The bot is not in a voice channel";
|
return "The bot is not in a voice channel";
|
||||||
|
|
||||||
const connection = voiceStorage.get(msg.guildID);
|
const connection = voiceStorage.get(msg.guildID);
|
||||||
const queue = connection._music_queue;
|
const queue = connection.queue;
|
||||||
if (queue.length === 0) return "Nothing else is currently queued";
|
if (queue.length === 0) return "Nothing else is currently queued";
|
||||||
|
|
||||||
const nowPlaying = connection._music_nowplaying;
|
const nowPlaying = connection.nowplaying;
|
||||||
|
|
||||||
const now = Date.now();
|
const now = Date.now();
|
||||||
let nextTrack = now + (nowPlaying.length - (now - nowPlaying.start));
|
let nextTrack = now + (nowPlaying.length - (now - nowPlaying.start));
|
||||||
|
@ -716,12 +720,12 @@ command.callback = async function (
|
||||||
if (msg.member?.voiceState?.channelID) {
|
if (msg.member?.voiceState?.channelID) {
|
||||||
const connection = voiceStorage.get(msg.guildID);
|
const connection = voiceStorage.get(msg.guildID);
|
||||||
if (voiceStorage.has(msg.guildID)) {
|
if (voiceStorage.has(msg.guildID)) {
|
||||||
if (connection.channelID != msg.member.voiceState.channelID) {
|
if (connection.voice_id != msg.member.voiceState.channelID) {
|
||||||
return "You are in a different voice channel than the bot.";
|
return "You are in a different voice channel than the bot.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let queue = connection._music_queue;
|
let queue = connection.queue;
|
||||||
if (queue.length === 0) return "Nothing else is currently queued";
|
if (queue.length === 0) return "Nothing else is currently queued";
|
||||||
|
|
||||||
const hasManageMessages = msg.member.permissions.has("manageMessages");
|
const hasManageMessages = msg.member.permissions.has("manageMessages");
|
||||||
|
@ -746,7 +750,7 @@ command.callback = async function (
|
||||||
);
|
);
|
||||||
|
|
||||||
if (Array.isArray(toRemove)) {
|
if (Array.isArray(toRemove)) {
|
||||||
connection._music_queue = connection._music_queue.filter(
|
connection.queue = connection.queue.filter(
|
||||||
(item) => !toRemove.includes(item.id)
|
(item) => !toRemove.includes(item.id)
|
||||||
);
|
);
|
||||||
return `Removed ${toRemove.length} item(s).`;
|
return `Removed ${toRemove.length} item(s).`;
|
||||||
|
|
Loading…
Reference in a new issue