Javascript 如何在discord.js的discord语音频道中静音/取消静音?
我正在尝试创建一个机器人,通过添加一个角色“TempMute”,使当前在语音频道中的每个人都静音。然后,当我发送/unmuteAll时,我希望所有具有“TempMute”标记的人都将该标记移除。我尝试过几种不同的方法,但都没有成功。我正在使用discord.js版本12.2.0Javascript 如何在discord.js的discord语音频道中静音/取消静音?,javascript,discord,discord.js,Javascript,Discord,Discord.js,我正在尝试创建一个机器人,通过添加一个角色“TempMute”,使当前在语音频道中的每个人都静音。然后,当我发送/unmuteAll时,我希望所有具有“TempMute”标记的人都将该标记移除。我尝试过几种不同的方法,但都没有成功。我正在使用discord.js版本12.2.0 const Discord = require('discord.js'); voiceChatChannelId="123456789" bot.on('message', (message)
const Discord = require('discord.js');
voiceChatChannelId="123456789"
bot.on('message', (message) => {
var vc = bot.channels.cache.get(voiceChatChannelId);
if (message.content == '/muteAll') {
for (let member of vc.members){
//add members all to "TempMute" role
}
}
else if (message.content == '/unmuteAll') {
for (let member of vc.members){
//remove ALL members from role "TempMute"
}
}
});
由于您已经拥有了,因此可以使用或方法添加或删除角色
bot.on('message',(message)=>{
var vc=bot.channels.cache.get(voiceChatChannelId);
如果(message.content=='/muteAll'){
for(让vc.members.array()的成员){
//将所有成员添加到“临时静音”角色
member.roles.add(“RoleID”)
}
}
else if(message.content='/unmuteAll'){
for(让vc.members.array()的成员){
//从角色“TempMute”中删除所有成员
member.roles.remove(“RoleID”)
}
}
});
我收到一个错误“TypeError:无法读取未定义的属性'remove'。我(服务器所有者)和另一个帐户(用作没有特殊管理员权限的测试acc)都在语音频道中。请尝试console.log(成员)
和console.log(成员.角色)
。这些都是未定义的吗?console.log(member.roles)未定义,console.log(member)打印每个用户的所有json信息。问题是您试图循环通过集合
,而不首先将其转换为数组
(或者您可以使用集合#forEach
)。检查我的更新代码。