#javascript #discord.js
#javascript #discord.js
Вопрос:
TypeError: Cannot read property 'play' of undefined
at C:UserspinkDesktopIwtdB0t_v.7node_modulesdiscord.js-musicbot-addonindex.js:1474:41
at processTicksAndRejections (internal/process/task_queues.js:93:5)
Я пытался обновить каждый discord.js команда v11 для discord.js версия 12, но ошибка все еще появляется после перехода с playStream на play. Есть идеи, что может быть причиной этого?
Ответ №1:
Похоже, это проблема с библиотекой discord.js-musicbot-addon, так что, к сожалению, вы мало что можете сделать.
Код, который, я думаю, вызывает ошибку (удален некоторый нерелевантный код, удалены отступы и добавлены комментарии для удобства чтения):
new Promise((resolve, reject) => {
const voiceConnection = client.voice.connections.find(val => val.channel.guild.id == msg.guild.id);
// This line here is what (I believe) is ultimately causing the error.
// Collection#find returns undefined, not null, when an item cannot be found.
// Because this uses strict equality (===), an undefined voiceConnection (e.g.
// the bot hasn't connected to a voice channel yet) won't trigger this code.
if (voiceConnection === null) {
// attempts to connect to the voice channel
/* ... */
} else {
// The promise is resolved with a potentially undefined voiceConnection.
resolve(voiceConnection);
}
}).then(connection => {
// retrieves the video to play
/* ... */
try {
/* ... */
// This line is where the error is. When connection is undefined, it throws
// the error "Cannot read property 'play' of undefined"
let dispatcher = connection.play(ytdl(video.url, {
filter: 'audioonly',
quality: 'highestaudio'
}), {
bitrate: mjusicbot.bitRate,
volume: (queue.volume / 100)
})
Обратите внимание, что discord.js-musicbot-addon устарел в NPM и больше не поддерживается. Из репозитория:
Этот проект БОЛЬШЕ НЕ ПОДДЕРЖИВАЕТСЯ и НЕ функционирует. Не используйте это.