是否可以使用discord.js将成员自静音?

时间:2020-03-14 18:18:24

标签: javascript bots discord discord.js mute

最近使用冠状病毒,学校被取消了,所以我为我的课做了一个不和谐的服务器。人们对Discord不太熟悉,所以我想要一个可以使人们自动静音的命令,以便课程可以开始。我希望每个人都可以取消静音,如果他们想向老师提问,因此可以自动静音而不是服务器静音。 我已经尝试了这段代码,但是由于 .selfmute(true)是为机器人制作的,因此无法正常工作。

const Discord = require('discord.js');
const client = new Discord.Client();
const config = require("./config.json");

const prefix = "!";
client.on("message", (message) => {
if (!message.content.startsWith(prefix)) return;

if (message.content.startsWith(prefix + "mute")) {
    let channel = message.member.voice.channel;
    for (let member of channel.members) {
        member[1].voice.setSelfMute(true);
    }
}
});

client.login(config.token);

有人知道怎么做吗?感谢您的帮助。

PS:对不起,我的英语,那不是我的母语。

2 个答案:

答案 0 :(得分:2)

不幸的是,您不能对客户用户以外的其他用户进行自动静音或自防御。

documentation for setSelfMute说:

针对此语音状态将机器人自动静音/取消静音。

此外,如果您尝试对不是客户端用户的用户进行静音,则会收到此错误:

Error [VOICE_STATE_NOT_OWN]: You cannot self-deafen/mute on VoiceStates that do not belong to the ClientUser.

或者,您可以将它们正常静音,然后使用命令取消静音。

答案 1 :(得分:0)

所以方法 setSelfMute 仅适用于机器人,文档可以找到 here! 为了让用户发生这种情况,还有一个关于 here!我会尽快用代码编辑消息。它将包括 2 种方式:1. 带前缀的常规命令,2. 斜线命令(稍后会... - 文档 here