类型错误:无法读取未定义的属性"play"



this.dispatcher[guildID] = this.connection[guildID].play(ytdl(Queue[msg.guild.id][playing[msg.guild.id]]),{highWaterMark: 1<<25 });

当我在Discord Js上使用此代码并执行它时,它将显示此错误代码

类型错误:无法读取未定义的的属性"play">

在此之前,我使用了以下代码:if(playing[msg.guild.id] == undefined)setTimeout(function(){music.Musicplay(msg,msg.guild.id);},500);

更多的信息将非常有用,因为很难确定您的小代码片段中发生了什么,但似乎您正试图通过不和谐的语音通道播放文件。

因为我们看不到更多的JavaScript,所以我们不能确定太多,但有可能你从未定义过"播放"可验证性?这就是错误的含义。

这是我的AddMusic和PlayMusic代码

play(msg)
{
if (this.connection[msg.guild.id] == undefined)
{
this.join(msg);
}
//In the string, leave the URL!
const musicURL = msg.content.replace(`${prefix}play `,'');
if(Queue[msg.guild.id] == undefined)
{
Queue[msg.guild.id] = [musicURL];
}
else
{
Queue[msg.guild.id][Queue[msg.guild.id].length] = musicURL;
}

getInfo(musicURL).then(info => {
const Embed = new Discord.MessageEmbed()
.setTitle("Added: "+info.items[0].title)
.setURL(musicURL)
.setColor('#2fffff')
msg.channel.send(Embed);
});

ytdl.getInfo(musicURL,function(err,info)
{
if(err)
{
const Embed = new Discord.MessageEmbed()
.setTitle("The song has been added, but the title information cannot be obtained!")
.setURL(musicURL)
.setColor('#FF0000')
msg.channel.send(Embed);
}
else
{
const Embed = new Discord.MessageEmbed()
.setTitle("Added: "+info.videoDetails.title)
.setURL(musicURL)
.setColor('#2fffff')
msg.channel.send(Embed);
}
})
console.log(msg.guild.id);
console.log(Queue[msg.guild.id]);

if(playing[msg.guild.id] == 0)
{
if(Queue[msg.guild.id].length != 0)
{
playing[msg.guild.id] = Queue[msg.guild.id].length-1;
}
setTimeout(function(){music.Musicplay(msg,msg.guild.id);},500);
}
if(playing[msg.guild.id] == undefined)
setTimeout(function(){music.Musicplay(msg,msg.guild.id);},500);
}

Musicplay(msg,guildID)
{
if(playing[msg.guild.id] == undefined)
{
playing[msg.guild.id] = 0;
}

ytdl.getInfo(Queue[guildID][playing[guildID]],function(info)
{
msg.channel.send('Currently playing:'+ Queue[guildID][playing[guildID]]);
});

console.log(Queue[guildID][playing[guildID]]);
this.dispatcher[guildID] = this.connection[guildID].play(ytdl(Queue[msg.guild.id][playing[msg.guild.id]]),{highWaterMark: 1<<25 });
this.dispatcher[guildID].on('finish', () =>
{
if(Queue[msg.guild.id].length <= playing[msg.guild.id])
{
playing[msg.guild.id] += 1;
this.Musicplay(msg);
}
else
{
playing[msg.guild.id] = 0;
}

});
}

这是错误代码

this.dispatcher[guildID] = this.connection[guildID].play(ytdl(Queue[msg.guild.id][playing[msg.guild.id]]),{highWaterMark: 1<<25 });

最新更新