Mi código:
// not very relevant stuff const { SlashCommandBuilder } = require('@discordjs/builders'); const { MessageEmbed } = require('discord.js'); const tip = require('../../tips/randomtip') const fs = require('fs') { const status = require('./status') if(status.inUsed = true){ status.inUsed = false fs.writeFileSync( './commands/music/status.json', JSON.stringify(status,null,2)) } } // very relevant stuff module.exports = { data: new SlashCommandBuilder() .setName('join') .setDescription('Join the voice channel you are in'), async execute(interaction) { const voice = interaction.member.voice // console.log(voice) console.log(voice.channel) }, };El problema es que voice.channel sigue siendo el mismo (no verifiqué si son exactamente iguales, pero el nombre del canal y el canal son los mismos, porque eso es lo que importa)
Estoy usando la última versión de discord.js v13, así que ni siquiera me pregunten
Si el problema que tiene es que la variable member.voice no se actualiza después de que el bot se inicia por primera vez, la solución podría ser agregar la intención GUILD_VOICE_STATES en la construcción del Cliente.
Aquí hay un ejemplo de cómo podrías hacer esto:
const client = new Client ({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_VOICE_STATES] });
Agregar intents.FLAGS.GUILD_VOICE_STATES debería hacer que member.voice se actualice correctamente cuando el usuario cambia el canal de voz.