我一直在使用YouTube频道Plexi Development制作的教程制作音乐机器人。我已经复制了代码,但是当我执行_leave命令时,尽管我与我的漫游器处于同一语音通道,他说:“对不起,但您与我不在同一语音通道中,所以您不能让我离开!而不是离开。有谁知道他为什么这样做?
这是我的代码:
exports.run = (bot, message, args, ops) => {
if(!message.member.voiceChannel) return message.channel.send('You need to be in a voice channel to get me to leave it!');
if(!message.guild.me.voiceChannel) return message.channel.send('I need to be in a voice channel to leave one, silly!');
if(!message.guild.me.voiceChannelID !== message.member.voiceChannelID) return message.channel.send("Sorry, but you are not in the same voice channel as me so you can't make me leave!");
message.guild.me.voiceChannel.leave();
message.channel.send("I've left now!");
}
module.exports.config = {
command: "leave"
}
对于我在这里看到的所有文件:https://hastebin.com/pofivesico.js(这是我的所有3个文件-查找注释以查看新文件的开始位置) 我正在使用本教程:https://www.youtube.com/watch?v=wKDAC996nKI
答案 0 :(得分:1)
您的问题可能在这里:
if(!message.guild.me.voiceChannelID !== message.member.voiceChannelID) return message.channel.send("Sorry, but you are not in the same voice channel as me so you can't make me leave!");
!
中的logical NOT(!message.guild.me.voiceChannelID
)正在将voiceChannelID
中存储的任何值强制转换为bool
。如果设置了它的值,它将通常求值为true
。我不希望true
与message.member.voiceChannelID
的值之间的比较永远不会相等。
删除此逻辑非以正确比较两个值。