简体   繁体   English

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

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

Hey, I've written a working version of my code a while ago, but I've lost it and can't get it working again.嘿,我不久前编写了我的代码的工作版本,但我把它弄丢了,不能让它再次工作。

I try to servermute a mentioned member, but my code won't work.我尝试对提到的成员进行服务器静音,但我的代码不起作用。

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

I've also tried these ones and none of them work:我也试过这些,但都没有工作:

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

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

My bot works fine except these parts above.除了上面的这些部分外,我的机器人工作正常。

Could you try using this code:您可以尝试使用此代码:

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

I personally use this for my bots and it works headache-free.我个人将它用于我的机器人,并且它可以毫无问题地工作。 Let me know if you run into any issues.如果您遇到任何问题,请告诉我。

Try using a add role and remove role function.尝试使用添加角色和删除角色 function。 For example:例如:

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!`);
        }

This code removes the role called "members" from the user mentioned and gives the user mentioned the role "muted".此代码从提到的用户中删除称为“成员”的角色,并为提到的用户提供“静音”角色。 For the roles, you have to make sure the user mentioned to mute must have the main role "members".对于角色,您必须确保提到要静音的用户必须具有主要角色“成员”。 If the user is not real or not a valid user, the code will send the message: "Can't find that member/did not specify a member.".如果用户不是真实用户或不是有效用户,代码将发送消息:“找不到该成员/未指定成员。”。

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

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