javascript - Discord.js - 尝试在音乐机器人上使用 _leave 命令时,机器人发送错误消息
问题描述
我一直在使用 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
解决方案
您的问题可能出在此处:
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!");
逻辑 NOT ( !
) in将!message.guild.me.voiceChannelID
存储的任何值转换voiceChannelID
为 a bool
。如果设置了它的值,它通常会评估为true
。我不希望 与true
的值的比较message.member.voiceChannelID
永远相等。
删除此逻辑 NOT 以正确比较两个值。
推荐阅读
- php - 返回具有多个 X 元素的多维数组的数组函数?
- python - python 的 NamedTuple 返回结构是少数应该使用可变默认值的地方之一吗?
- python - Dict 相同的键 - 示例 39 艰难地学习 Python
- c# - UWP:使用 StorageApplicationPermissions.FutureAccessList 在通用位置写入文件
- javascript - JQuery 产品滑块错误
- java - 项目中的逻辑失败
- python - 熊猫爆炸多列
- amazon-web-services - terraform 可以复制 s3 存储桶的内容吗?
- python - isPalindrome 递归字符串
- python - 排除其列包含另一个数据框中的值的行