Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

230
Vistas
No se pueden leer las propiedades de undefined (leyendo 'join') Discord.js

Estoy tratando de crear mi bot de música discord, pero cuando lo ejecuto. No puede unirse a mi canal de voz, devolviendo este error: channel_info.channelId.join no es una función. A continuación, mi código:

 const Discord = require('discord.js'); const bot = new Discord.Client({ intents: ["GUILDS", "GUILD_MESSAGES"] }); const ytdl = require('ytdl-core'); const streamOptions = { seek: 0, volume: 1 }; const botToken = 'mytoken'; bot.login(botToken); bot.on('ready', () => { console.log('to olain'); }); bot.on('message', msg => { if (msg.author.bot) { return; } if (msg.content.toLowerCase().startsWith(';p')) { const channel_info = msg.member.guild.voiceStates.cache.find(user => user.id == msg.author.id); if (channel_info.channelId == null) { return console.log('Canal não encontrado!'); } console.log('Canal encontrado'); channel_info.channelId.join().then(connection => { const stream = ytdl('https://www.youtube.com/watch?v=BxmMGnvvDCo', { filter: 'audioonly' }); const DJ = connection.playStream(stream, streamOptions); DJ.on('end', end => { channel_info.channelId.leave(); }); }) .catch(console.error); } });
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Hay varios problemas en este código. Incluso si solucionamos algunos de estos problemas, este código seguirá sin funcionar debido a las diferencias entre discord.js v12 y v13. Empecemos.

Número 1

Este no es uno de los problemas principales que hacen que su código no funcione, pero es algo útil a considerar. Está haciendo esto para obtener el estado de voz del autor del mensaje:

 msg.member.guild.voiceStates.cache.find(user => user.id == msg.author.id);

Cuando fácilmente podría hacer exactamente lo mismo de una manera mucho más corta y con menos probabilidades de producir errores:

 msg.member.voice;

Número 2

Ahora, este es un problema central que hace que su código no funcione. De hecho, está causando el error en su pregunta. Estás tratando de hacer:

 channel_info.channelId.join();

Eso no tiene sentido. ¿Estás tratando de unirte a un ID de canal? channelId es solo una cadena de números como: "719051328038633544" . No puede "unirse" a esa Cadena de números. Desea unirse al canal real en el que se encuentra el miembro, así:

 channel_info.channel.join();

Número 3

Según cómo esté utilizando una propiedad channelId en lugar de channelID , supongo que está en discord.js v13. Los canales de voz no tienen un método .join() en v13; de hecho, discord.js v13 no tiene soporte para unirse o reproducir audio en canales de voz. Debe instalar el paquete discord.js/voice para unirse a un canal de voz en discord.js v13. Esto es crítico. Incluso si soluciona los dos problemas anteriores, debe resolver este tercer problema o su código no funcionará (a menos que cambie a discord.js v12).

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda