javascript - 如何在 discord.js 的不和谐语音频道中静音/取消静音?
问题描述
我正在尝试创建一个机器人,通过向他们添加角色“TempMute”来使当前在语音频道中的每个人静音。然后,当我发送 /unmuteAll 时,我希望所有拥有“TempMute”标签的人都删除该标签。我尝试了几种不同的方法,但都没有成功。我正在使用 discord.js 版本 12.2.0。
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"
}
}
});
解决方案
由于您已经拥有 ,GuildMember
您可以使用或方法来添加或删除角色。GuildMember.roles
.add
GuildMember.roles
.remove
bot.on('message', (message) => {
var vc = bot.channels.cache.get(voiceChatChannelId);
if (message.content == '/muteAll') {
for (let member of vc.members.array()){
//add members all to "TempMute" role
member.roles.add("RoleID")
}
}
else if (message.content == '/unmuteAll') {
for (let member of vc.members.array()){
//remove ALL members from role "TempMute"
member.roles.remove("RoleID")
}
}
});
推荐阅读
- python - 加速 pandas.DataFrame.to_sql (PostgreSQL)
- nativescript - NativeScript Vue:navigatingTo、navigatingFrom等Page事件的目的是什么?
- sql - 将字符串类型的列转换为数组/记录,即嵌套列
- php - 如何在没有插件的情况下为同一文件夹十月 cms 中的静态页面创建上一个和下一个链接
- objective-c - 我想在 Objective-C 中使用 swift 类
- spring - HikariPool-1 - 池初始化期间的异常
- python - 使用 Python -Databricks 将字符串 (strhtmlbody) 中的代码保存为 ADLS (Azure Data Lake Store) 路径中的 HTML 文件
- angular - 在Angular 8中显示单击按钮的特定行
- java - 表示有效最终变量的方法
- angular - ng2-smart-table - 添加行后新行数据为空