Discord.js-机器人在音乐bot上尝试使用_leave命令时发送错误消息

时间:2019-10-09 19:27:38

标签: javascript node.js discord discord.js

我一直在使用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

1 个答案:

答案 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。我不希望truemessage.member.voiceChannelID的值之间的比较永远不会相等。

删除此逻辑非以正确比较两个值。