Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Discord.js检查bot是否在语音通道中_Javascript_Discord.js - Fatal编程技术网

Javascript Discord.js检查bot是否在语音通道中

Javascript Discord.js检查bot是否在语音通道中,javascript,discord.js,Javascript,Discord.js,我有一个问题:我想检查机器人是否在msg.guild的频道上。我有一个命令?checkchannel,用于回复机器人是否在所述公会的语音频道上。如果机器人在一个频道上,它应该回答:“在一个语音频道上”,如果他不是,他应该回答他不是 谢谢。这真的很简单,试试这个: //如果bot未连接到语音频道,“频道”对象应为“未定义” 如果(msg.guild.voice.cannel) { msg.channel.send(`I'm in a voice channel!`); } 其他的 { log(`I

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


谢谢。

这真的很简单,试试这个:

//如果bot未连接到语音频道,“频道”对象应为“未定义”
如果(msg.guild.voice.cannel)
{
msg.channel.send(`I'm in a voice channel!`);
}
其他的
{
log(`I'm not in a voice channel!`);
}
注: 这仅检查
消息的
频道
如果bot连接到服务器上的任何
语音频道
,则不检查该频道

如果您想检查,如果他连接到任何
语音频道
,您应该检查

编辑: 您还可以减少到一行:

msg.guild.channels.cache.some(channel=>(channel.type==='voice'和&channel.members.has(Client.user.id))?msg.channel.send('在语音频道上'):msg.channel.send('不在语音频道上')

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


参考资料:

非常简单,请尝试以下方法:

//如果bot未连接到语音频道,“频道”对象应为“未定义”
如果(msg.guild.voice.cannel)
{
msg.channel.send(`I'm in a voice channel!`);
}
其他的
{
log(`I'm not in a voice channel!`);
}
注: 这仅检查
消息的
频道
如果bot连接到服务器上的任何
语音频道
,则不检查该频道

如果您想检查,如果他连接到任何
语音频道
,您应该检查

编辑: 您还可以减少到一行:

msg.guild.channels.cache.some(channel=>(channel.type==='voice'和&channel.members.has(Client.user.id))?msg.channel.send('在语音频道上'):msg.channel.send('不在语音频道上')

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


参考资料:

如果我理解正确,并且您想检查bot是否位于与
msg.guild
对应的帮会的任何语音频道中:

if(msg.guild.channels.cache.some(channel=>(channel.type=='voice'&&channel.members.has(Client.user.id)){
msg.channel.send('它在语音频道上');//在命令发送到的同一频道上回复
}
否则{
msg.channel.send('它不在语音频道上');
}

如果我理解正确,并且您想检查bot是否在
msg.guild
相对应的帮会语音频道中:

if(msg.guild.channels.cache.some(channel=>(channel.type=='voice'&&channel.members.has(Client.user.id)){
msg.channel.send('它在语音频道上');//在命令发送到的同一频道上回复
}
否则{
msg.channel.send('它不在语音频道上');
}

@nouvist这不是问题,我想检查机器人是否在语音频道,但我如何检查他是否在OneOh,我没有读你的问题。对不起。@nouvist这不是问题,我想检查机器人是否在语音频道,但我如何检查他是否在OneOh,我没有读你的问题。对不起,谢谢,但我需要知道所有频道都可以,但我需要查找所有频道谢谢你做得非常好!我想你甚至可以把它简化成这样一行:
msg.guild.channels.cache.some(channel=>(channel.type=='voice'&&channel.members.has(Client.user.id))?msg.channel.send('在语音频道上):msg.channel.send(‘它不在语音频道上’)
但你必须自己决定这是否更清晰。是的,这更清晰。你也可以先用
msg.guild.channels.cache.filter(channel=>channel.type==='voice')
将缓存的频道过滤到只包含
VoiceChannel
的数组中,然后执行
一些(…)
在它上面,可能会更快。@Viriato可能,但我怀疑1000个用户是否会同时运行此命令:D我认为这会节省几毫秒。是否值得,他必须自己决定:DThank you verry很好地工作!我想你甚至可以将它简化为这样一行:
msg.guild.channels.cache.some(channel=>(channel.type=='voice'和&channel.members.has(Client.user.id))?msg.channel.send('在语音频道上'):msg.channel.send('不在语音频道上')
但是你必须自己决定这是否更清晰。是的,这更清晰。你也可以先用
msg.guild.channels.cache.filter(channel=>channel.type==='voice')将缓存的频道过滤到一个只包含
语音频道的数组中。
然后执行
一些(…)
在它上面,可能会更快。@Viriato可能,但我怀疑1000个用户是否会同时运行此命令:D我认为这将节省几毫秒。是否值得,他必须自己决定:D