Estoy tratando de agregar un comando que permita la creación de canales de voz temporales.
He creado un nuevo cliente dentro de este comando para tratar de obtener los parámetros de joinVoiceChannel() de otra manera.
Expediente:
const { joinVoiceChannel } = require ('@discordjs/voice') module.exports = { emoji: '🔈', name: 'voice', description: 'Create a temporary voice channel', execute(interaction) { console.log('hi') joinVoiceChannel({ channelId: interaction.channel.id, guildId: interaction.guild.id, adapterCreator: interaction.guild.voiceAdapterCreator, }) } }Error:
TypeError: Cannot read property 'id' of undefined at Object.execute (C:\Users\tomfi\Code\DiscordBot\commands\voice.js:11:38) at module.exports (C:\Users\tomfi\Code\DiscordBot\events\messageCreate.js:16:17) at Client.emit (node:events:394:28) at MessageCreateAction.handle (C:\Users\tomfi\Code\DiscordBot\node_modules\discord.js\src\client\actions\MessageCreate.js:23:14) at Object.module.exports [as MESSAGE_CREATE] (C:\Users\tomfi\Code\DiscordBot\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32) at WebSocketManager.handlePacket (C:\Users\tomfi\Code\DiscordBot\node_modules\discord.js\src\client\websocket\WebSocketManager.js:345:31) at WebSocketShard.onPacket (C:\Users\tomfi\Code\DiscordBot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:443:22) at WebSocketShard.onMessage (C:\Users\tomfi\Code\DiscordBot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:300:10) at WebSocket.onMessage (C:\Users\tomfi\Code\DiscordBot\node_modules\ws\lib\event-target.js:132:16) at WebSocket.emit (node:events:394:28)joinVoiceChannel no crea un canal de voz, crea una conexión de voz. Debe usar GuildChannelManager.create en su lugar. Aquí es cómo:
const channel = await interaction.guild.channels.create("VC_NAME", { type: "GUILD_VOICE" //note it is "GUILD_VOICE" and not just "voice" anymore } joinVoiceChannel({ channelId: channel.id, guildId: interaction.guild.id, adapterCreator: interaction.guild.voiceAdapterCreator, })