Discord.js 检查机器人是否在语音通道中

时间:2021-05-31 10:18:54

标签: javascript discord.js

我有一个问题:我想检查 Bot 是否在 msg.guild 中的频道上。我有一个命令 ?checkchannel 可以回复机器人是否在所述公会的语音频道上。如果机器人在一个上,它应该回复:“在一个语音频道上”,如果他不在,他应该回复他不在。

谢谢。

2 个答案:

答案 0 :(得分:1)

真的很简单,试试这个:

// If the bot is not connected to a voice channel, the 'channel' object should be 'undefined'
if(msg.guild.voice.cannel)
  {
    msg.channel.send(`I'm in a voice channel!`);
  }
else
  {
    console.log(`I'm not in a voice channel!`);
  }

注意:

如果机器人连接到服务器上的任何 channel,这仅检查message的{​​{1}},

如果你想查看他是否与any有联系voice channel你应该查看Viriatos answer

编辑:

您还可以将 Vitiaro's answer 缩减为一行:

voice channel

但你必须自己决定这是否更清楚。


参考:

答案 1 :(得分:1)

如果我没理解错,你想检查一下这个bot是否在msg.guild对应的公会的any语音频道中:

if(msg.guild.channels.cache.some(channel => (channel.type === 'voice' && channel.members.has(Client.user.id)) {
    msg.channel.send('It is on a voice channel'); // Replies on the same channel the command was sent to
}
else {
    msg.channel.send('It is not on a voice channel');
}