为了账号安全,请及时绑定邮箱和手机立即绑定

Discord.js:如果用户输入特定字符串,如何将用户从任何语音通道移动到某个语音通道?

Discord.js:如果用户输入特定字符串,如何将用户从任何语音通道移动到某个语音通道?

Cats萌萌 2023-07-14 10:20:49
我对discord.js 非常陌生,我检查了他们的文档,但我似乎找不到这个问题的任何答案。到目前为止,这是我的代码,它应该做的是检查每条消息,看看该消息是否来自机器人,检查他们是否输入了密码,然后删除密码并将它们移动到另一个语音通道。我收到的错误是: UnhandledPromiseRejectionWarning:错误 [GUILD_VOICE_CHANNEL_RESOLVE]:无法将通道解析为公会语音通道。有人可以帮忙吗?谢谢!client.on('message', message => {    if (message.author.bot === false) {        if (message.content == 'password') {            message.delete();            message.guild.member(message.author.id).voice.setChannel('The Grind 3');        }    }});
查看完整描述

2 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

我不知道您使用的是哪个版本,但setChannel('The Grind 3') 您应该setChannel('channel id')使用哪个版本setting>Appearance>turn on Developer Mode,然后右键单击指定的频道并复制 id 并粘贴它而不是“The Grind 3”,这应该可以:)



查看完整回答
反对 回复 2023-07-14
?
慕妹3146593

TA贡献1820条经验 获得超9个赞

这很容易做到。


首先,您需要找到您要使用的频道。


const VCchannel = message.guild.channels.cache.find(channel => channel.name === 'The Grind 3');

现在您可以设置将成员发送到该语音通道。注意:我们在这里捕获错误,以便在出现问题时可以进行处理。


message.member.voice.setChannel(VCchannel).catch(err => console.log(err));

请记住,只有当使用此命令的成员已经在语音频道中时,这才有效,因为机器人无法强制某人进入语音频道。


注意:您可能需要考虑检查该成员是否是机器人,如果是则返回。这样做的优点是您不需要将整个代码放入语句中if。


if (message.author.bot) return;

您的整个onMessage活动应该看起来有点像这样。


client.on('message', message => {

    if (message.author.bot) return;


    if (message.content == 'password') {

        message.delete();

        const VCchannel = message.guild.channels.cache.find(channel => channel.name === 'The Grind 3');

        message.member.voice.setChannel(VCchannel).catch(err => console.log(err));

    }

})


查看完整回答
反对 回复 2023-07-14
  • 2 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信