Discord.js - бот отправляет неверное сообщение при попытке использовать команду _leave на музыкальном боте - PullRequest
0 голосов
/ 09 октября 2019

Я занимаюсь созданием музыкального бота, используя уроки, сделанные на канале 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 Ответ

1 голос
/ 09 октября 2019

Ваша проблема, вероятно, заключается здесь:

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.voiceChannelID приводит любое значение, сохраненное в voiceChannelID, к bool. Если его значение установлено, оно обычно оценивается как true. Я не ожидал бы, что сравнение true со значением message.member.voiceChannelID будет когда-либо равным друг другу.

Удалите это логическое НЕ, чтобы правильно сравнить два значения.

...