Javascript Discord.js将成员移动到不同的语音频道

Javascript Discord.js将成员移动到不同的语音频道,javascript,discord,discord.js,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 = me

所以,我试图发出一个命令,当你说这个命令时,提供一个语音频道的名称和名称,将你提到的成员移动到该语音频道。我对此做了一些研究,但仍然无法使其工作

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

现在,当我使用语音频道“Music”(也就是“d!move[提及]Music”)尝试该命令时,它会将“Moved[member]返回null”返回到控制台,当然,不会移动成员。它似乎可以找到我提到的成员,但找不到语音频道。任何帮助都将不胜感激。谢谢。

我可能知道答案,所以您使用的是
d!移动[提及]音乐
以移动用户。在这之后,您可以分成不同的参数来更好地处理它,例如:
[“移动”,“音乐”]
。然后删除第一个使用slice的命令,得到
[“”,“Music”]

然后,当您想要查找频道名称时,可以使用空格加入数组以获取频道名称。问题是你仍然有提到那里。因此,它将保持
音乐
,并试图找到具有该名称的频道。

您可能需要以与命令相同的方式删除数组的第一个参数,然后加入它,或者仅使用频道名称创建一个新数组。

提到的用户已经在语音频道中了吗?是的,是的。您可以尝试使用ID将用户移动到频道吗?类似于
const chan=client.channels.get('someID')
然后将用户移动到该频道?使用您提供的代码尝试了该方法,效果良好。它将成员从普通VC转移到了音乐VC。将“移动AlphaPolarBear1至”返回控制台。