Node.js 查找是否有人在discord.js上获得了新角色
我想给我的服务器上的每个成员一个后缀。昵称应该是例如名称(角色)。 我试过简单的方法Node.js 查找是否有人在discord.js上获得了新角色,node.js,discord,discord.js,Node.js,Discord,Discord.js,我想给我的服务器上的每个成员一个后缀。昵称应该是例如名称(角色)。 我试过简单的方法 client.on("guildMemberUpdate", function(oldMember, newMember){ //Here the setting }); 但这并不好。你能帮助我吗? 我觉得应该是这样的, guildMemberUpdate上的客户端: 检查某人的角色是否为xy: 给他一个后缀,比如name(role)。如果您是通过编程方式分配角色,那么如果您在代码的同一部分中处理角色
client.on("guildMemberUpdate", function(oldMember, newMember){
//Here the setting
});
但这并不好。你能帮助我吗?
我觉得应该是这样的,
guildMemberUpdate上的客户端:
检查某人的角色是否为xy:
给他一个后缀,比如name(role)。如果您是通过编程方式分配角色,那么如果您在代码的同一部分中处理角色的名称更改会更容易,因为您已经知道哪个角色是新角色,如果您不适合使用事件,您想要的是找到已添加的新角色,并在之后更改成员的名称
client.on(“guildMemberUpdate”,(旧会员、新会员)=>{
//获取已添加的角色
const newRole=newMember.roles.cache
.filter(r=>!oldMember.roles.cache.has(r.id))
.first()
//更改用户名
newMember.set昵称(`${newMember.displayName}(${newRole.name})`)
})
guildMemberUpdate事件在用户获得新昵称、删除角色等时也会发生。如果newRole为Null,请不要忘记返回。由于昵称限制为32个字符,此系统不会始终工作,当然这种情况很少发生,但可能不会发生。我认为这超出了问题的范围,还有很多事情需要记住,比如权限等等