我想做的是在成员获得特定角色时给他们一定数量的货币。我的问题是,如果成员具有特定角色之一获得另一个角色,例如管理员,这不是特定角色之一,他们会再次获得货币。我知道我缺少一些东西,我只是不知道它是什么。
client.on("guildMemberUpdate", (oldMember, newMember) => {
var roleIdB = '660416964195385360';
var roleIdC = '664340587021074462';
var roleIdD = '662931802305855489';
var roleIdE = '662931967272288297';
var roleIdF = '664296178568921128';
var patreon = new db.table(`patreon`);
if (oldMember.displayName != newMember.displayName) {
let channel = client.channels.find(channel => channel.id === "667588202093215749");
let embed = new Discord.RichEmbed()
.setColor([38, 92, 216])
.setTitle(newMember.user.tag)
.addField("Before", `${oldMember.displayName}`)
.addField("After", `${newMember.displayName.toString()}`)
.setDescription(`${oldMember.displayName}'s Name Changed`)
.setTimestamp();
channel.send(embed);
return;
}
let channel = client.channels.find(channel => channel.id === "667588202093215749");
if (oldMember.roles.size < newMember.roles.size) {
const embed = new Discord.RichEmbed()
.setColor([38, 92, 216])
.setTimestamp()
.setAuthor('**Role added!**')
.setThumbnail(newMember.user.displayAvatarURL);
for (const role of newMember.roles.map(x => x.id)) {
if (!oldMember.roles.has(role)) {
embed.addField(`${oldMember.displayName}`, `was given the ${oldMember.guild.roles.get(role).name} role!`);
}
}
channel.send({
embed
});
if (newMember.roles.size < oldMember.roles.size) {
const embed = new Discord.RichEmbed()
.setColor([38, 92, 216])
.setTimestamp()
.setAuthor('**Role removed!**')
.setThumbnail(newMember.user.displayAvatarURL);
for (const role of oldMember.roles.map(x => x.id)) {
if (!newMember.roles.has(role)) {
embed.addField(`${newMember.displayName}`, `was removed from the ${newMember.guild.roles.get(role).name} role!`);
}
}
channel.send({
embed
});
return;
}
}
if (oldMember.roles.size < newMember.roles.size) {
if (newMember.roles.has(roleIdB)) {
patreon.add(newMember.id, 75000);
return;
}
if (newMember.roles.has(roleIdC)) {
patreon.add(newMember.id, 150000);
return;
}
if (newMember.roles.has(roleIdD)) {
patreon.add(newMember.id, 325000);
return;
}
if (newMember.roles.has(roleIdE)) {
patreon.add(newMember.id, 400000);
return;
}
if (newMember.roles.has(roleIdF)) {
patreon.add(newMember.id, 475000);
return;
}
}
});