Discord.js 将成员移动到不同的语音频道
Posted
技术标签:
【中文标题】Discord.js 将成员移动到不同的语音频道【英文标题】:Discord.js Move members to different voice channel 【发布时间】:2018-10-07 16:28:20 【问题描述】:所以,我正在尝试发出一个命令,当说出时,提供提及和语音频道的名称,将您提到的成员移动到该语音频道。我对此进行了一些研究,但仍然无法正常工作。
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!move [mention] Music”)命令时,它会将“Moved [member] to null”返回给控制台,当然,不会移动成员。好像能找到我提到的那个成员,但是找不到语音频道。任何帮助,将不胜感激。谢谢。
【问题讨论】:
提到的用户是否已经在语音频道中? 是的,他们是。 您可以尝试使用 ID 将用户移动到频道吗?const chan = client.channels.get('someID')
之类的东西,然后将用户移动到该频道?
用你提供的代码试过了,它工作正常。它将成员从 General VC 转移到 Music VC。将“已将 AlphaPolarBear1 移至 ”返回到控制台。
【参考方案1】:
我可能有答案,所以您使用d!move [mention] Music
来移动用户。之后,您拆分为不同的参数以更好地处理它,如下所示:["move", "<@someID>", "Music"]
。然后你用 slice 删除第一个命令,得到["<@someID>", "Music"]
。
然后,当您想找到频道名称时,您可以使用空格加入数组以获取频道名称。问题是你仍然有提及。所以它将保持<@someID> Music
,并且它正在尝试查找具有该名称的频道。
您可能需要像使用命令一样删除数组的第一个参数,然后加入它,或者创建一个仅包含通道名称的新数组。
【讨论】:
以上是关于Discord.js 将成员移动到不同的语音频道的主要内容,如果未能解决你的问题,请参考以下文章
如何检查具有特定角色的成员是不是存在于 discord.js 的特定语音通道中
使用 Discord.js 使用 Discord Bot 将语音频道中的所有人静音
加入机器人 discord.js 的语音频道后如何忽略相同的命令