首页 > 解决方案 > 如何在新成员加入时添加角色?

问题描述

我想自动为每个加入公会的用户分配一个角色。我正在使用下面的代码:它不起作用,但它没有记录错误。
我已经检查过我的机器人是否有权管理角色。

bot.on('guildMemberAdd', member => {      
  var role = member.guild.roles.find('Member', 'user');
  member.addRole(role);
});

标签: discord.js

解决方案


它不起作用,因为您roles.find()以错误的方式使用:如果您希望角色.name成为'Members',您应该编写:

var role = member.guild.roles.find('name', 'Member');
member.addRole(role);

这应该可行,但这是一种已弃用的方式:这意味着 discord.js 的开发人员将在未来将其删除。为避免以后必须更改它,您已经可以开始使用非弃用方式:您应该传递一个函数,该函数返回一个角色是否符合您的条件。这更好,因为您可以组合多个属性和检查。

var role = member.guild.find((role) => { // long way
  if (role.name == 'Member') return true;
});

var role = member.guild.find(role => role.name == 'Member'); // shorter way

推荐阅读