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 });