簡體   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