From 68c1e122c09268ba6e1445f84948269a1c44b737 Mon Sep 17 00:00:00 2001 From: abalabahaha Date: Sun, 8 May 2016 00:21:36 -0700 Subject: [PATCH] Revise member property handling --- lib/Client/InternalClient.js | 14 +++++++------- lib/Structures/Server.js | 4 ++++ src/Client/InternalClient.js | 12 ++++++------ src/Structures/Server.js | 4 ++++ 4 files changed, 21 insertions(+), 13 deletions(-) diff --git a/lib/Client/InternalClient.js b/lib/Client/InternalClient.js index 0fe197084..3489d747c 100644 --- a/lib/Client/InternalClient.js +++ b/lib/Client/InternalClient.js @@ -2101,14 +2101,14 @@ var InternalClient = (function () { } else { server.memberMap[data.user.id] = {}; } - server.memberMap[data.user.id].roles = data.roles.map(function (pid) { + server.memberMap[data.user.id].roles = data.roles ? data.roles.map(function (pid) { return server.roles.get("id", pid); - }); - server.memberMap[data.user.id].mute = data.mute; - server.memberMap[data.user.id].selfMute = data.self_mute; - server.memberMap[data.user.id].deaf = data.deaf; - server.memberMap[data.user.id].selfDeaf = data.self_deaf; - server.memberMap[data.user.id].nick = data.nick || null; + }) : 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 || server.memberMap[data.user.id].selfMute; + server.memberMap[data.user.id].deaf = data.deaf || server.memberMap[data.user.id].deaf; + server.memberMap[data.user.id].selfDeaf = data.self_deaf || server.memberMap[data.user.id].selfDeaf; + server.memberMap[data.user.id].nick = data.nick || server.memberMap[data.user.id].nick || null; client.emit("serverMemberUpdated", server, user, oldMember); } else { client.emit("warn", "server member removed but user doesn't exist in cache"); diff --git a/lib/Structures/Server.js b/lib/Structures/Server.js index 5694da3bc..cae5136e4 100644 --- a/lib/Structures/Server.js +++ b/lib/Structures/Server.js @@ -219,6 +219,10 @@ var Server = (function (_Equality) { channel.members.add(user); user.voiceChannel = channel; + this.memberMap[user.id].mute = data.mute || this.memberMap[user.id].mute; + this.memberMap[user.id].selfMute = data.self_mute || this.memberMap[user.id].selfMute; + this.memberMap[user.id].deaf = data.deaf || this.memberMap[user.id].deaf; + this.memberMap[user.id].selfDeaf = data.self_deaf || this.memberMap[user.id].selfDeaf; this.client.emit("voiceJoin", channel, user); }; diff --git a/src/Client/InternalClient.js b/src/Client/InternalClient.js index 0157d3367..ecdf2eed8 100644 --- a/src/Client/InternalClient.js +++ b/src/Client/InternalClient.js @@ -1799,12 +1799,12 @@ export default class InternalClient { } else { server.memberMap[data.user.id] = {}; } - server.memberMap[data.user.id].roles = data.roles.map(pid => server.roles.get("id", pid)); - server.memberMap[data.user.id].mute = data.mute; - server.memberMap[data.user.id].selfMute = data.self_mute; - server.memberMap[data.user.id].deaf = data.deaf; - server.memberMap[data.user.id].selfDeaf = data.self_deaf; - server.memberMap[data.user.id].nick = data.nick || null; + 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].mute = data.mute || server.memberMap[data.user.id].mute; + server.memberMap[data.user.id].selfMute = data.self_mute || server.memberMap[data.user.id].selfMute; + server.memberMap[data.user.id].deaf = data.deaf || server.memberMap[data.user.id].deaf; + server.memberMap[data.user.id].selfDeaf = data.self_deaf || server.memberMap[data.user.id].selfDeaf; + server.memberMap[data.user.id].nick = data.nick || server.memberMap[data.user.id].nick || null; client.emit("serverMemberUpdated", server, user, oldMember); } else { client.emit("warn", "server member removed but user doesn't exist in cache"); diff --git a/src/Structures/Server.js b/src/Structures/Server.js index 9e21fb9dc..160ede0f8 100644 --- a/src/Structures/Server.js +++ b/src/Structures/Server.js @@ -182,6 +182,10 @@ export default class Server extends Equality { channel.members.add(user); user.voiceChannel = channel; + this.memberMap[user.id].mute = data.mute || this.memberMap[user.id].mute; + this.memberMap[user.id].selfMute = data.self_mute || this.memberMap[user.id].selfMute; + this.memberMap[user.id].deaf = data.deaf || this.memberMap[user.id].deaf; + this.memberMap[user.id].selfDeaf = data.self_deaf || this.memberMap[user.id].selfDeaf; this.client.emit("voiceJoin", channel, user); }