44 lines
1.3 KiB
JavaScript
44 lines
1.3 KiB
JavaScript
const {getVoiceConnection} = require("@discordjs/voice");
|
|
const {replyToInteraction} = require("../utilities/messageHandler.js");
|
|
const { SlashCommandBuilder } = require('discord.js');
|
|
// Debug
|
|
const { DebugBuilder } = require("../utilities/debugBuilder.js");
|
|
const log = new DebugBuilder("client-bot", "leave");
|
|
|
|
module.exports = {
|
|
data: new SlashCommandBuilder()
|
|
.setName('leave')
|
|
.setDescription('Leave a voice channel'),
|
|
example: "leave",
|
|
isPrivileged: false,
|
|
async execute(interaction) {
|
|
await this.leave({ interaction: interaction })
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* If in a voice channel for the specified guild, leave
|
|
*
|
|
* @param interaction Message interaction from discord
|
|
* @param guildID
|
|
* @param callback
|
|
*/
|
|
exports.leave = async function leave({interaction = undefined, guildID= undefined, callback = undefined}) {
|
|
if(interaction) {
|
|
guildID = interaction.guild.id;
|
|
}
|
|
const voiceConnection = getVoiceConnection(guildID);
|
|
|
|
let response;
|
|
if (!voiceConnection){
|
|
response = "Not in a voice channel."
|
|
if (interaction) return replyToInteraction(interaction, response);
|
|
else callback(response);
|
|
}
|
|
voiceConnection.destroy();
|
|
|
|
response = "Goodbye"
|
|
if (interaction) return replyToInteraction(interaction, response);
|
|
else callback(response);
|
|
} |