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); }