javascript - 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!move [mention] Music”)命令时,它会将“Moved [member] to null”返回到控制台,并且当然,不会移动成员。好像能找到我提到的那个成员,但是找不到语音频道。任何帮助,将不胜感激。谢谢。
解决方案
我可能有答案,所以您正在使用d!move [mention] Music
移动用户。之后,您拆分为不同的参数以更好地处理它,如下所示["move", "<@someID>", "Music"]
:然后你用 slice 删除第一个命令,你得到["<@someID>", "Music"]
.
然后,当您想找到频道名称时,您可以使用空格加入数组以获取频道名称。问题是你仍然有提及。所以它会留下来<@someID> Music
,并试图找到一个具有该名称的频道。
您可能需要像使用命令一样删除数组的第一个参数,然后加入它,或者创建一个仅包含通道名称的新数组。
推荐阅读
- pandas - 按最多三列对 pandas 数据框中的示例进行排序
- hex - \x00@ 是什么意思?
- java - 从活动启动 Fragment 活动会导致 NullPointerException
- javascript - 制作用于将 URL 字符串转换为 JSON 的递归算法
- gitlab - 如何解决 GitLab 项目导出后管道损坏的问题?
- angular - 不完全禁用每个文件的严格模板
- r - 如何在 R 中操作数据框的因子水平?
- azure-active-directory - 如何使用 office365 使用 Azure AD 对 .net 核心 Web API 进行身份验证
- shell - Shell脚本,if语句检查环境变量的值
- java - 如何在 Linkedin API 中请求直接赞助内容发布者角色?