diff --git a/lib/Client/InternalClient.js b/lib/Client/InternalClient.js index cf42aa3a4..2e7d40aa7 100644 --- a/lib/Client/InternalClient.js +++ b/lib/Client/InternalClient.js @@ -1180,9 +1180,7 @@ var InternalClient = (function () { return Promise.reject(new Error("Role does not exist on same server as member")); } - var roleIDs = roles[0].server.memberMap[member.id].roles.map(function (r) { - return r.id; - }); + var roleIDs = roles[0].server.memberMap[member.id].roles; for (var i = 0; i < roles.length; i++) { if (! ~roleIDs.indexOf(roles[i].id)) { @@ -1254,9 +1252,7 @@ var InternalClient = (function () { }); } - var roleIDs = roles[0].server.memberMap[member.id].roles.map(function (r) { - return r.id; - }); + var roleIDs = roles[0].server.memberMap[member.id].roles; for (var _iterator7 = roles, _isArray7 = Array.isArray(_iterator7), _i7 = 0, _iterator7 = _isArray7 ? _iterator7 : _iterator7[Symbol.iterator]();;) { var _ref7; @@ -2071,9 +2067,7 @@ var InternalClient = (function () { if (server) { server.memberMap[data.user.id] = { - roles: data.roles.map(function (pid) { - return server.roles.get("id", pid); - }), + roles: data.roles, mute: false, selfMute: false, deaf: false, @@ -2123,9 +2117,7 @@ var InternalClient = (function () { } else { server.memberMap[data.user.id] = {}; } - server.memberMap[data.user.id].roles = data.roles ? data.roles.map(function (pid) { - return server.roles.get("id", pid); - }) : server.memberMap[data.user.id].roles; + server.memberMap[data.user.id].roles = data.roles ? data.roles : server.memberMap[data.user.id].roles; server.memberMap[data.user.id].mute = data.mute || server.memberMap[data.user.id].mute; server.memberMap[data.user.id].selfMute = data.self_mute === undefined ? server.memberMap[data.user.id].selfMute : data.self_mute; server.memberMap[data.user.id].deaf = data.deaf || server.memberMap[data.user.id].deaf; @@ -2291,9 +2283,7 @@ var InternalClient = (function () { var user = _ref11; server.memberMap[user.user.id] = { - roles: user.roles.map(function (pid) { - return server.roles.get("id", pid); - }), + roles: user.roles, mute: user.mute, selfMute: false, deaf: user.deaf, diff --git a/lib/Structures/Server.js b/lib/Structures/Server.js index 0fb1cbe94..5c7ea8a75 100644 --- a/lib/Structures/Server.js +++ b/lib/Structures/Server.js @@ -91,9 +91,7 @@ var Server = (function (_Equality) { } else { data.members.forEach(function (dataUser) { _this.memberMap[dataUser.user.id] = { - roles: dataUser.roles.map(function (pid) { - return self.roles.get("id", pid); - }), + roles: dataUser.roles, mute: dataUser.mute, selfMute: dataUser.self_mute, deaf: dataUser.deaf, @@ -174,9 +172,17 @@ var Server = (function (_Equality) { } Server.prototype.detailsOf = function detailsOf(user) { + var _this2 = this; + user = this.client.internal.resolver.resolveUser(user); if (user) { - return this.memberMap[user.id] || {}; + var result = this.memberMap[user.id] || {}; + if (result && result.roles) { + result.roles = result.roles.map(function (pid) { + return _this2.roles.get("id", pid); + }); + } + return result; } else { return {}; } @@ -195,12 +201,7 @@ var Server = (function (_Equality) { }; Server.prototype.rolesOfUser = function rolesOfUser(user) { - user = this.client.internal.resolver.resolveUser(user); - if (user) { - return this.memberMap[user.id] ? this.memberMap[user.id].roles : []; - } else { - return []; - } + return this.detailsOf(user).roles || []; }; Server.prototype.rolesOfMember = function rolesOfMember(member) { diff --git a/src/Client/InternalClient.js b/src/Client/InternalClient.js index 8aed60d80..67130ccd2 100644 --- a/src/Client/InternalClient.js +++ b/src/Client/InternalClient.js @@ -978,7 +978,7 @@ export default class InternalClient { return Promise.reject(new Error("Role does not exist on same server as member")); } - var roleIDs = roles[0].server.memberMap[member.id].roles.map(r => r.id); + var roleIDs = roles[0].server.memberMap[member.id].roles; for (var i = 0; i < roles.length; i++) { if (!~roleIDs.indexOf(roles[i].id)) { @@ -1037,7 +1037,7 @@ export default class InternalClient { roles = roles.map(r => this.resolver.resolveRole(r)); } - var roleIDs = roles[0].server.memberMap[member.id].roles.map(r => r.id); + var roleIDs = roles[0].server.memberMap[member.id].roles; for (var role of roles) { if (!role.server.memberMap[member.id]) { @@ -1764,7 +1764,7 @@ export default class InternalClient { if (server) { server.memberMap[data.user.id] = { - roles: data.roles.map(pid => server.roles.get("id", pid)), + roles: data.roles, mute: false, selfMute: false, deaf: false, @@ -1819,7 +1819,7 @@ export default class InternalClient { } else { server.memberMap[data.user.id] = {}; } - server.memberMap[data.user.id].roles = data.roles ? data.roles.map(pid => server.roles.get("id", pid)) : server.memberMap[data.user.id].roles; + server.memberMap[data.user.id].roles = data.roles ? data.roles : server.memberMap[data.user.id].roles; server.memberMap[data.user.id].mute = data.mute || server.memberMap[data.user.id].mute; server.memberMap[data.user.id].selfMute = data.self_mute === undefined ? server.memberMap[data.user.id].selfMute : data.self_mute; server.memberMap[data.user.id].deaf = data.deaf || server.memberMap[data.user.id].deaf; @@ -1975,7 +1975,7 @@ export default class InternalClient { for (var user of data.members) { server.memberMap[user.user.id] = { - roles: user.roles.map(pid => server.roles.get("id", pid)), + roles: user.roles, mute: user.mute, selfMute: false, deaf: user.deaf, diff --git a/src/Structures/Server.js b/src/Structures/Server.js index ca35afb52..7ada522e1 100644 --- a/src/Structures/Server.js +++ b/src/Structures/Server.js @@ -56,7 +56,7 @@ export default class Server extends Equality { } else { data.members.forEach((dataUser) => { this.memberMap[dataUser.user.id] = { - roles: dataUser.roles.map((pid) => self.roles.get("id", pid)), + roles: dataUser.roles, mute: dataUser.mute, selfMute: dataUser.self_mute, deaf: dataUser.deaf, @@ -111,7 +111,11 @@ export default class Server extends Equality { detailsOf(user) { user = this.client.internal.resolver.resolveUser(user); if (user) { - return this.memberMap[user.id] || {}; + var result = this.memberMap[user.id] || {}; + if(result && result.roles) { + result.roles = result.roles.map(pid => this.roles.get("id", pid)); + } + return result; } else { return {}; } @@ -130,12 +134,7 @@ export default class Server extends Equality { } rolesOfUser(user) { - user = this.client.internal.resolver.resolveUser(user); - if (user) { - return (this.memberMap[user.id] ? this.memberMap[user.id].roles : []); - } else { - return []; - } + return this.detailsOf(user).roles || []; } rolesOfMember(member) {