this.dispatcher[guildID] = this.connection[guildID].play(ytdl(Queue[msg.guild.id][playing[msg.guild.id]]),{highWaterMark: 1<<25 });
当我在Discord Js上使用此代码并执行它时,它将显示此错误代码
TypeError:无法读取未定义的属性“播放”
在此之前,我使用了以下代码:
if(playing[msg.guild.id] == undefined)setTimeout(function(){music.Musicplay(msg,msg.guild.id);},500);
答案 0 :(得分:0)
更多信息将非常有帮助,因为很难确定一小段代码中正在发生的事情,但是似乎您正在尝试通过不和谐的语音通道播放文件。
因为我们看不到您的JavaScript太多,因此无法确定很多,但是您可能从未定义过“ play”版本吗?那就是错误的含义。
答案 1 :(得分:0)
这是我的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 });