繁体   English   中英

Discord.js - 如何对提到的成员进行服务器静音?

[英]Discord.js - How to servermute a mentioned member?

嘿,我不久前编写了我的代码的工作版本,但我把它弄丢了,不能让它再次工作。

我尝试对提到的成员进行服务器静音,但我的代码不起作用。

if(command == "mute") {
    const person = message.mentions.members.first();
    person.voice.setMute(true);
}

我也试过这些,但都没有工作:

//version1
const user = message.mentions.users.first();
const person = message.guild.members(user);

//version2
const person = message.guild.members(message.mentions.users.first());

除了上面的这些部分外,我的机器人工作正常。

您可以尝试使用此代码:

let person = message.guild.member(message.mentions.users.first());

我个人将它用于我的机器人,并且它可以毫无问题地工作。 如果您遇到任何问题,请告诉我。

尝试使用添加角色和删除角色 function。 例如:

let mainRole = message.guild.roles.cache.find(role => role.name === 'members');
let muteRole = message.guild.roles.cache.find(role => role.name === 'muted');

if (!args[1]) {
   memberTarget.roles.remove(mainRole.id);
   memberTarget.roles.add(muteRole.id);
   message.channel.send(`<@${memberTarget.user.id}> has been muted`);
   return
}
memberTarget.roles.remove(mainRole.id);
memberTarget.roles.add(muteRole.id);
message.channel.send(`<@${memberTarget.user.id}> has been muted for ${ms(ms(args[1]))}`);
 
            setTimeout(function () {
                memberTarget.roles.remove(muteRole.id);
                memberTarget.roles.add(mainRole.id);
            }, ms(args[1]));
        } else {
            message.channel.send(`Can't find that member/did not specify a member!`);
        }

此代码从提到的用户中删除称为“成员”的角色,并为提到的用户提供“静音”角色。 对于角色,您必须确保提到要静音的用户必须具有主要角色“成员”。 如果用户不是真实用户或不是有效用户,代码将发送消息:“找不到该成员/未指定成员。”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM