discord.js 用 1 个命令添加 3 个角色

Posted

技术标签:

【中文标题】discord.js 用 1 个命令添加 3 个角色【英文标题】:discord.js add 3 roles with 1 command 【发布时间】:2021-09-26 12:14:59 【问题描述】:

当管理员键入激活(用户)时,我想为用户添加角色,机器人为用户提供 3 个角色,这是我的代码

  if (message.content === 'activate') 

  const guild = message.guild;

  const role = message.guild.roles.cache.get('842121303616126977');

  const member =   message.mentions.members.first

  member.roles.add(role);
          
  
);

【问题讨论】:

【参考方案1】:

GuildMemberRoleManager.add 接受RoleResolvable 的数组,它可以是RoleSnowflake 的实例。


if (message.content === "activate") 
    const member = message.mentions.members.first(); // Note that first is a method, not a property.
    if (!member) return message.channel.send("Member not found.");

    member.roles.add(["RoleID1", "RoleID2", "RoleID3"]);

【讨论】:

它不会为我提到的用户添加角色 client.on('message', message => if (message.content === "activate") const member = message.mentions.members.first(); // Note that first is a method, not a property. if (!member) return message.channel.send("Member not found."); member.roles.add(["842121300532920362", "842121301777973298", "842121302708977694"]); ); @ArabSword 确保您的机器人具有Manage Roles 权限并且您提供的 ID 有效。您是否在控制台中收到任何错误? 它没有错误并且没有添加角色 您的机器人角色是否高于您尝试添加的角色?【参考方案2】:

成功了

this code worked for me finally `client.on('message', message => 
    
    if (!message.content.startsWith(prefix) || message.author.bot) return;

    const args = message.content.slice(prefix.length).split(/ +/);
    console.log(args);

    const command = args.shift().toLowerCase();


    if (command == 'activate') 
    const member = message.mentions.members.first(); // Note that first is a method, not a property.


if (!member) return message.channel.send("member not found");

const drole = message.guild.roles.cache.get('842121300532920362');

const prole = message.guild.roles.cache.get('842121301777973298');

const lrole = message.guild.roles.cache.get('842121302708977694');

const frole = message.guild.roles.cache.get('842121305854836826');

member.roles.add(drole);
member.roles.add(lrole);
member.roles.add(prole);
member.roles.remove(frole);
message.channel.send('activated'  + ' <' + '@' + member + '>');
  


  );`

【讨论】:

以上是关于discord.js 用 1 个命令添加 3 个角色的主要内容,如果未能解决你的问题,请参考以下文章

Discord.JS Ping 编辑命令

Discord.js 无法为斜线命令添加选项

错误:在 Heroku 上找不到模块 Discord.js

Discord.js V13 使用斜线命令时添加角色

Discord.Js 添加角色

无法添加角色,Discord.js