const DiscordVoice = require('@discordjs/voice'); const { join } = require('path'); const { createReadStream } = require('fs'); console.log(DiscordVoice.generateDependencyReport()); module.exports.playAudio = playAudio; module.exports.getConnections = getConnections; async function playAudio(channel, guild) { const player = DiscordVoice.createAudioPlayer(); DiscordVoice.joinVoiceChannel({ channelId: channel.id, guildId: guild.id, adapterCreator: guild.voiceAdapterCreator }).subscribe(player); let resource = DiscordVoice.createAudioResource(__dirname, 'file.mp3'); const connection = DiscordVoice.getVoiceConnection(guild.id); const subscription = connection.subscribe(player); if (subscription) { // Unsubscribe after 5 seconds (stop playing audio on the voice connection) setTimeout(() => subscription.unsubscribe() && console.log("a"), 5_000); } player.play(resource); resource.playStream.on('error', error => { console.error('Error:', error.message, 'with track', resource.metadata.title); }); connection.on(DiscordVoice.VoiceConnectionStatus.Ready, () => { console.log('The connection has entered the Ready state - ready to play audio!'); }); player.on('error', error => { console.error(`Error: ${error.message} with resource ${error.resource.metadata.title}`); player.play(DiscordVoice.getNextResource()); }); player.on(DiscordVoice.AudioPlayerStatus.Playing, () => { console.log('The audio player has started playing!'); console.log(resource); }); } function getConnections(guildId) { const connection = DiscordVoice.getVoiceConnection(guildId); console.log(connection); }