Discord.js将会员移至不同的语音频道

时间:2018-04-26 21:21:19

标签: javascript discord discord.js

所以,我正在尝试制作一个命令,当说,提供了一个提及和一个语音频道的名称,将你提到的成员移动到该语音频道。我已经对此做了一些研究,但仍然无法使其发挥作用。

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);
  }
}

现在,当我尝试命令时,让我们说,语音频道“音乐”(所以,“d!移动[提及]音乐”),它将“Moved [member] to null”返回到控制台,当然,不会移动成员。它似乎找到我提到的成员很好,但找不到语音频道。任何帮助,将不胜感激。感谢。

1 个答案:

答案 0 :(得分:1)

我可能有答案,因此您使用d!move [mention] Music来移动用户。之后你会分成不同的参数来更好地处理它,就像这样:["move", "<@someID>", "Music"]。然后你删除带有切片的命令的第一个,你得到["<@someID>", "Music"] 然后,当您想要找到频道名称时,您可以使用空格加入数组以获取频道名称。问题是你还有提到那里。因此它将保持<@someID> Music,并且它正在尝试找到具有该名称的频道 您可能需要以与命令相同的方式删除数组的第一个参数,然后加入它,或者创建一个只包含通道名称的新数组。