将“我已经在频道功能中”添加到机器人。 [不和谐.js]
Posted
技术标签:
【中文标题】将“我已经在频道功能中”添加到机器人。 [不和谐.js]【英文标题】:Adding a 'I am already in the channel function' to a bot. [Discord.js] 【发布时间】:2021-05-23 14:48:26 【问题描述】:我正在尝试添加一项功能,如果机器人已经在与某人进行语音聊天并且该人试图使其加入,机器人会回复“我已经在语音聊天中”。 这是它适合的部分
client.on('message', async message =>
// Voice only works in guilds, if the message does not come from a guild,
// we ignore it
if (!message.guild) return;
if (message.content === '>join')
// Only try to join the sender's voice channel if they are in one themselves
if (message.member.voice.channel)
const connection = await message.member.voice.channel.join();
else
message.reply('You need to join a voice channel first!');
);
我问的一个人建议我使用我比较机器人和用户的“voiceState.channelID”。如果相同,则机器人返回消息“我已经在频道中!”我将在哪里以及如何将其放入代码中。我对编程和 javascript 非常陌生。
额外信息:我正在使用 node.js 和一个名为 Discord.js 的库。如果你看不出来,这是一个 Discord 机器人。 我只包含了一段专门用于语音聊天的代码,如果你需要其余的,请告诉我,我会提供!
【问题讨论】:
【参考方案1】:在 Discord.JS 中,您可以通过 member.voice.channelID
获取频道 ID。所以,在你的代码中你可以添加:
const clientMember = message.guild.members.cache.get(client.user.id);
if(!clientMember.voice.channel)
//The bot is in no voice channel, go ahead and join it.
else if(clientMember.voice.channelID == message.member.voice.channelID)
//They're already in the same channel
else
//They're both connected to a voice channel, but they are in different channels.
将其放入 if (message.member.voice.channel)
以确保运行命令的人实际上在 VC 中。
【讨论】:
以上是关于将“我已经在频道功能中”添加到机器人。 [不和谐.js]的主要内容,如果未能解决你的问题,请参考以下文章
我将如何使用 python 在我的不和谐机器人上添加冷却时间