run: async (client, message, args) => {
const { channel } = message.member.voice;
const permissions = channel.permissionsFor(message.client.user);
if (!permissions.has("CONNECT"))
return message.reply("Je n'est pas les permissions de rejoindre votre channel.");
if (!permissions.has("SPEAK"))
return message.reply("Je ne peux pas parler dans ce channel vocal.");
const search = args.join(" ");
const videoPattern = /^(https?:\/\/)?(www\.)?(youtube\.com|youtu\.?be)\/.+$/gi;
const playlistPattern = /^.*(list=)([^#\&\?]*).*/gi;
const url = args[0];
const urlValid = videoPattern.test(args[0]);
const serverQueue = message.client.queue.get(message.guild.id);
^^^^^ÊRROR HERE^^^^^^
const queueConstruct = {
textChannel: message.channel,
channel,
connection: null,
songs: [],
loop: false,
volume: 50,
playing: true
};
let songInfo = null;
let song = null;
if (urlValid) {
try {
songInfo = await ytdl.getInfo(url);
song = {
title: songInfo.title,
url: songInfo.video_url,
duration: songInfo.length_seconds,
};
} catch (error) {
if (error.message.includes("copyright")) {
return message
.reply("⛔ Cette vidéo est copyright, elle ne peut donc être jouée. ⛔")
.catch(console.error);
} else {
console.error(error);
}
}
} else {
try {
const results = await youtube.searchVideos(search, 1);
songInfo = await ytdl.getInfo(results[0].url);
song = {
title: songInfo.title,
url: songInfo.video_url,
duration: songInfo.length_seconds,
};
} catch (error) {
console.error(error);
}
}
if (serverQueue) {
serverQueue.songs.push(song);
return serverQueue.textChannel
.send(`✅ **${song.title}** a été ajoutée a la queue par ${message.author}`)
.catch(console.error);
} else {
queueConstruct.songs.push(song);
}
if (!serverQueue) message.client.queue.set(message.guild.id, queueConstruct);
当代码正常启动时,它应该播放一些音乐,但是当我运行代码时,它并没有按预期运行,它告诉我get未定义... 你能帮我吗?
我不明白为什么会那样做,所以知道它能起作用...如果您帮助我,它将非常有用! 没有全部代码,因为否则该网站将向我询问更多详细信息...
答案 0 :(得分:0)
每当您要访问对象中不存在的属性时,都会出现此错误。您确定queue
中存在此message.client
属性吗?根据{{3}},在客户端对象中没有可通过消息对象访问的名为queue
的属性。为了确保安全,请登录message.client
来通过该对象查找可用的属性。