【问题标题】:How to server mute everyone in a discord call (specify the channel)如何在不和谐的通话中让每个人都静音(指定频道)
【发布时间】:2021-03-21 17:32:58
【问题描述】:

目前我正在使用此代码将我正在通话的每个人都静音,

bot.on('message', message => {
if (message.content === '!vcmute') {
    const members = message.member.voice.channel.members;
    members.forEach(member => {
        member.voice.setMute(true);
    });
}

});

有没有办法修改代码(我猜是通过添加参数)来指定我想静音哪个 vc?我是编码新手,所以老实说我不知道​​参数是如何工作的

【问题讨论】:

    标签: javascript discord discord.js


    【解决方案1】:

    您需要指定并获取要将用户静音的正确(语音)频道:

    bot.on('message', message => {
        if (message.content.startsWith('!vcmute')) {
    
            let person = 0 //make sure person always has a value
    
            const messageArray = message.content.split(' ') //split content on every space into array
            const targetChannel = messageArray[1] //first item from messageArray is the command input, second item the channelid
            const voiceChannel = message.guild.channels.cache.get(targetChannel)//get channel information by ID
    
            if (voiceChannel.type != "voice") return message.channel.send("This id does not belong to a voice channel"); //return if channel is not a voicechannel
    
            voiceChannel.members.forEach(member => {
                person = message.guild.members.cache.get(member.id);
                person.voice.setMute(true);
            });
        }
    });
    

    请注意,您必须执行 !vcmute [channelID] 才能使语音频道中的所有人静音。

    【讨论】:

    • 有没有办法在不使用频道 ID 而不是名称的情况下做到这一点?
    • @Shreyas007 您也可以使用该名称,但通常这会导致很多误报。例如:如果你有一个名为general的textchannel和一个名为general的voicechannel,它通常会得到textchannel,因为它在voicechannel之上。因此它不可靠这是寻找频道名message.guild.channels.cache.find(channel => channel.name.toLowerCase() == targetChannel.toLowerCase())的代码
    • 有没有办法让某些用户免于被静音? @Fluxpuck
    • @Shreyas007 是的,在将人员静音之前,您可以检查具有排除用户 ID 的数组是否不包含该用户并将此人静音。
    【解决方案2】:

    创建一个数组,其中包含不应被静音的用户的用户 ID。 检查数组是否不包含 member.id,如果不包含,则将该人员静音。

      voiceChannel.members.forEach(member => {
        person = message.guild.members.cache.get(member.id);
        let excludedUsers = ['854527257592525252', '58437594735942358345']
        if (!excludedUsers.include(member.id)) {
            person.voice.setMute(true);
        }
      });
    

    【讨论】:

      猜你喜欢
      • 2020-10-15
      • 2021-01-02
      • 2021-04-06
      • 2021-11-15
      • 2018-07-07
      • 1970-01-01
      • 2023-04-05
      • 2019-12-08
      • 2020-12-28
      相关资源
      最近更新 更多