【问题标题】:Setting perms and giving roles to user设置权限并赋予用户角色
【发布时间】:2021-07-26 05:07:26
【问题描述】:

我正在尝试为我的机器人发出静音命令并遇到了这些问题。我已经得到它们很长时间了。

const { Guild } = require("discord.js");

module.exports = {
    name: "mute",
    description: "Mutes a member",
    execute(message,args,Mention){
      if (message.member.hasPermission("ADMINISTRATOR") || message.author.username === "creepersaur"){
          let targetMember = message.mentions.members.first();
          const guild = message.guild
          
          let myRole = message.guild.roles.cache.find(role => role.name === "Muted");
          if (!myRole) {
            
             newRole = message.guild.roles.create({
                data: {
                  name: 'Muted',
                  color: 'BLUE',
                  Permissions: '',
                },
                reason: `Make a muted role if it doesn't exist.`
             })
            .then(console.log)
            .catch(console.error); 

            //message.guild.roles.Muted.setPermissions({'SEND_MESSAGES': true})

            targetMember.roles.add(newRole).catch(console.error);
            message.channel.send(`${targetMember.username} has been muted!`);

          } else if (myRole) {
            targetMember.roles.add(myRole).catch(console.error);
            message.channel.send(`${targetMember.username} has been muted!`);
          }
      }
  }
};

它会查看服务器中是否有静音角色,如果没有,则会创建一个静音角色给用户。除了权限不起作用。正因为如此,它并没有将角色本身赋予我想要的用户。 :( 凹凸x1

【问题讨论】:

    标签: javascript discord bots mute


    【解决方案1】:

    我并没有在角色部分看到任何不好的地方,但是这段代码应该修复了权限。

    const { Guild } = require("discord.js");
    
    module.exports = {
        name: "mute",
        description: "Mutes a member",
        execute(message,args,Mention){
          if (message.member.hasPermission("ADMINISTRATOR") || message.author.username === "creepersaur"){
              let targetMember = message.mentions.members.first();
              const guild = message.guild
              
              let myRole = message.guild.roles.cache.find(role => role.name === "Muted");
              if (!myRole) {
                
                 newRole = message.guild.roles.create({
                    data: {
                      name: 'Muted',
                      color: 'BLUE',
                      Permissions: '',
                    },
                    reason: `Make a muted role if it doesn't exist.`
                 })
                .then(console.log)
                .catch(console.error); 
    
                message.guild.channels.cache.forEach(ch => 
            {
            if(ch.type == "text") {
              ch.updateOverwrite(
              newRole, {
                  SEND_MESSAGES: false
              }
    
                targetMember.roles.add(newRole).catch(console.error);
                message.channel.send(`${targetMember.username} has been muted!`);
    
              } else if (myRole) {
                targetMember.roles.add(myRole).catch(console.error);
                message.channel.send(`${targetMember.username} has been muted!`);
              }
          }
      }
    };
    

    【讨论】:

    • 我试过了,但没用。虽然它仍然没有发挥作用,所以我认为权限部分是错误的部分。
    • 好吧,我添加的是角色无法说话的部分
    猜你喜欢
    • 1970-01-01
    • 2011-06-25
    • 2016-01-30
    • 2019-05-16
    • 1970-01-01
    • 1970-01-01
    • 2013-11-28
    • 1970-01-01
    • 2019-04-13
    相关资源
    最近更新 更多