Discord.js Переместить участников на другой голосовой канал

1

Итак, я пытаюсь сделать команду, которая, когда сказано, снабжена упоминанием и названием Voice Channel, перемещает участника, которого вы упомянули в этом голосовом канале. Я немного поработал над этим, но все равно не могу заставить его работать.

const Discord = require('discord.js');
const client = new Discord.Client();
const config = require('../config.json');

exports.run = function(client, message) {

const args = message.content.slice(config.prefix.length).trim().split(/ +/g);
const command = args.shift().toLowerCase();      

if (command === 'move') {
  const mem = message.mentions.members.first()
  const vc = args.join(" ")
  const chan = client.channels.find("name", vc)
    mem.setVoiceChannel(chan)
      .then(() => console.log('Moved ${mem.displayName} to ${chan}'))
  .catch(console.error);
  }
}

Прямо сейчас, когда я пытаюсь выполнить команду, используя, скажем так, Voice Channel "Music" (так, "d! Move [упоминание] Music"), он возвращает "Перемещено [член] в null" на консоль и конечно, не перемещает участника. Кажется, я нашел члена, которого я упомянул, просто отлично, но не могу найти Voice Channel. Любая помощь будет оценена по достоинству. Благодарю.

  • 0
    Упоминается ли уже упомянутый пользователь в голосовом канале?
  • 0
    Да, они есть.
Показать ещё 2 комментария
Теги:
discord
discord.js

1 ответ

1
Лучший ответ

У меня может быть ответ, поэтому вы используете d!move [mention] Music для перемещения пользователя. После этого вы разделитесь на разные аргументы, чтобы справиться с этим лучше, на что-то вроде этого: ["move", "<@someID>", "Music"]. Затем вы удаляете первый, который имеет его команду с помощью среза, и вы получаете ["<@someID>", "Music"].
Затем, когда вы хотите найти имя канала, вы присоединяетесь к массиву с пробелами, чтобы получить имя канала. Проблема в том, что вы все еще имеете упоминание. Таким образом, он останется <@someID> Music, и он пытается найти канал с этим именем.
Вероятно, вам нужно удалить первый аргумент массива так же, как и с командой, а затем присоединиться к нему или создать новый массив только с именем канала.

  • 0
    Вы были правы, большое спасибо, удалось заставить его работать!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню