Reputation:
I’ve been searching online for this for hours, and haven’t been able to find anything that is new.
I do know that the audio stuff is in a different package now though.
Upvotes: 1
Views: 2655
Reputation: 11
I know I'm a little late and that there's already an answer but here is some code using the libraries discord.js and @discordjs/voice
npm i discord.js
npm i @discordjs/voice
//requirements
const discord = require('discord.js')
const voice = require('@discordjs/voice')
const client = new discord.Client({intents: Object.values(discord.Intents.FLAGS)}) //Object.values(discord.Intents.FLAGS) is used to get every intents
//on ready
client.on('ready', () => {
//log username
console.log(client.user.username)
})
//
var connection
//when a message is sent
client.on('messageCreate', (message) => {
//split message by args
const args = message.content.split(' ')
if(args[0] == "join") {
//check if the message author is in a voice channel
if(message.guild.members.cache.get(message.author.id) == null) return
//create a new voice connection (join a voice channel)
connection = voice.joinVoiceChannel({
channelId: message.guild.members.cache.get(message.author.id).voice.channel.id, //the id of the channel to join (we're using the author voice channel)
guildId: message.guild.id, //guild id (using the guild where the message has been sent)
adapterCreator: message.guild.voiceAdapterCreator //voice adapter creator
})
connection.receiver.speaking.on('start', (userId) => {
//actions here
console.log(userId)
})
}
if(args[0] == "destroy") {
if(connection == undefined) return message.channel.send('the bot isn\'t in a voice channel')
//leave
connection.destroy()
connection = undefined
}
})
client.login("token here")
Upvotes: 1