Skip to content

Commit 81a4c1e

Browse files
authored
fix updating (#340)
1 parent 85de42f commit 81a4c1e

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

src/discord/commands/updateCommand.js

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,7 @@ async function updateRoles({ discordId, uuid }) {
2424

2525
const verificationRoles = config.verification.roles;
2626
const roles = [verificationRoles.guildMember.roleId, ...verificationRoles.custom.flatMap((r) => r.roleId)];
27-
for (const role of roles) {
28-
if (member.roles.cache.has(role)) {
29-
await member.roles.remove(role, "Updated Roles");
30-
// console.log(`Removed ${(await guild.roles.fetch(role)).name}`);
31-
}
32-
}
27+
const addedRoles = [];
3328

3429
if (!uuid) {
3530
member.setNickname(null, "Updated Roles");
@@ -43,6 +38,7 @@ async function updateRoles({ discordId, uuid }) {
4338

4439
if (verificationRoles.verified.enabled) {
4540
await member.roles.add(verificationRoles.verified.roleId, "Updated Roles");
41+
addedRoles.push(verificationRoles.verified.roleId);
4642
// console.log("Added verified role");
4743
}
4844

@@ -74,6 +70,7 @@ async function updateRoles({ discordId, uuid }) {
7470
if (guildMember) {
7571
if (verificationRoles.guildMember.enabled) {
7672
await member.roles.add(verificationRoles.guildMember.roleId, "Updated Roles");
73+
addedRoles.push(verificationRoles.guildMember.roleId);
7774
// console.log("Added guild member role");
7875
}
7976

@@ -85,6 +82,8 @@ async function updateRoles({ discordId, uuid }) {
8582
);
8683
if (guildRank && guildRank.enabled !== false) {
8784
await member.roles.add(guildRank.roleId, "Updated Roles");
85+
addedRoles.push(guildRank.roleId);
86+
8887
// console.log(`Added ${(await guild.roles.fetch(guildRank.roleId)).name}`);
8988
}
9089
} else {
@@ -289,6 +288,7 @@ async function updateRoles({ discordId, uuid }) {
289288
const meetsRequirements = role.requirements.every((req) => req.value <= stats[req.type]);
290289
if (meetsRequirements) {
291290
await member.roles.add(role.roleId, "Updated Roles");
291+
addedRoles.push(role.roleId);
292292
// console.log(
293293
// `Added ${(await guild.roles.fetch(role.roleId)).name} cuz he meets the requirements for ${role.requirements.map((req) => `${req.type} >= ${req.value}`).join(" and ")}`
294294
// );
@@ -303,6 +303,14 @@ async function updateRoles({ discordId, uuid }) {
303303
),
304304
"Updated Roles"
305305
);
306+
307+
for (const role of roles) {
308+
if (addedRoles.includes(role)) return;
309+
if (member.roles.cache.has(role)) {
310+
await member.roles.remove(role, "Updated Roles");
311+
// console.log(`Removed ${(await guild.roles.fetch(role)).name}`);
312+
}
313+
}
306314
}
307315

308316
module.exports = {

0 commit comments

Comments
 (0)