From 3f6a0e4de1ff53f2644c70aeb9e96736328663bf Mon Sep 17 00:00:00 2001 From: Pascal Date: Mon, 5 Mar 2018 11:32:03 +0100 Subject: [PATCH] fix(GuildMemberRoleStore): only update roles after successful request Fixes #2381 --- src/stores/GuildMemberRoleStore.js | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/stores/GuildMemberRoleStore.js b/src/stores/GuildMemberRoleStore.js index eb0096554..95d9daa85 100644 --- a/src/stores/GuildMemberRoleStore.js +++ b/src/stores/GuildMemberRoleStore.js @@ -29,11 +29,9 @@ class GuildMemberRoleStore extends DataStore { if (roleOrRoles.includes(null)) { return Promise.reject(new TypeError('INVALID_TYPE', 'roles', 'Array or Collection of Roles or Snowflakes', true)); - } else { - for (const role of roleOrRoles) super.set(role.id, role); } - - return this.set(this, reason); + const newRoles = [...new Set(roleOrRoles.concat(this.array()))]; + return this.set(newRoles, reason); } /** @@ -71,11 +69,9 @@ class GuildMemberRoleStore extends DataStore { if (roleOrRoles.includes(null)) { return Promise.reject(new TypeError('INVALID_TYPE', 'roles', 'Array or Collection of Roles or Snowflakes', true)); - } else { - for (const role of roleOrRoles) super.remove(role); } - - return this.set(this, reason); + const newRoles = [...new Set(roleOrRoles.concat(this.array()))]; + return this.set(newRoles, reason); } /**