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

ffdz8vbo  于 2023-02-15  发布在  Java
关注(0)|答案(3)|浏览(123)

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

8ulbf1ek

8ulbf1ek1#

很简单,试试这个:

// 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!`);
  }
注:

这只检查messagechannel而不是如果bot连接到服务器上的任何voice channel!
如果您要检查,如果他连接到任何voice channel,您应该检查Viriatos answer

编辑:

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

msg.guild.channels.cache.some(channel => (channel.type === 'voice' && channel.members.has(Client.user.id)) ? msg.channel.send('It is on a voice channel') : msg.channel.send('It is not on a voice channel')

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

参考文献:

swvgeqrz

swvgeqrz2#

如果我没理解错的话,你想查看bot是否在msg.guild对应的公会的任意语音通道中:

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');
}
guykilcj

guykilcj3#

以下是最新discord.js版本(v14)的解决方案

if(interaction.guild.members.me.voice.channel){
   console.log("I am connected to a Voice Channel!")
}

相关问题