查找是否有人在discord.js中扮演了新角色

时间:2020-04-07 06:30:20

标签: node.js discord discord.js

我想给服务器上的每个成员都加一个后缀。昵称应为名称(角色)。 我尝试了简单的

client.on("guildMemberUpdate", function(oldMember, newMember){
    //Here the setting
});

但这不是很好。你能帮助我吗? 我认为应该是这样的: 客户端在guildMemberUpdate上: 检查某人的角色是否为xy: 给他一个后缀,例如名字(角色)。

1 个答案:

答案 0 :(得分:1)

如果您以编程方式分配角色,则在代码的同一部分中处理角色的名称更改会更容易,因为您已经知道哪个角色是新角色,如果不是,那么您是对的要使用该事件,您想要的是找到已添加的新角色并在此后更改成员的名称。

client.on("guildMemberUpdate", (oldMember, newMember) => {
  // Get the role which has been added
  const newRole = newMember.roles.cache
    .filter(r => !oldMember.roles.cache.has(r.id))
    .first()

  // Change username
  newMember.setNickname(`${newMember.displayName} (${newRole.name})`)
})

See Collection methods