El problema principal parece ser que las cosas no están definidas. Por ejemplo, una versión muy simple de algo que he probado:
else if (message.content.startsWith("!dc")) { message.author.voice.setChannel(null); }Dando como resultado que la terminal devuelva:
TypeError: no se pueden leer las propiedades de undefined (leyendo 'setChannel')
No estoy muy seguro de cómo "definir" estos, ya que algunas soluciones que encontré en línea parecen hacer lo que estoy tratando de hacer de manera similar. ¿Me estoy perdiendo algo obvio?
También tengo estos Intents declarados en la parte superior.
const client = new Discord.Client({ intents: [ Discord.Intents.FLAGS.GUILDS, Discord.Intents.FLAGS.GUILD_MESSAGES, Discord.Intents.FLAGS.GUILD_VOICE_STATES, Discord.Intents.FLAGS.GUILD_MEMBERS ] });Como dijo @Bee en los comentarios a mi pregunta:
sería
msg.member
No creo que puedas desconectarte mientras eres administrador. Así que prueba esto
return <member>.voice.setChannel(null) .then(() => message.channel.send(`Done`)) .catch((err) => message.channel.send(`\\❌ | ${err}!`));Prueba este código:
message.member.voice.disconnect() .catch(console.error);