From 79039f08a11f538772666e998e2d179614656daf Mon Sep 17 00:00:00 2001 From: abalabahaha Date: Mon, 25 Jan 2016 00:34:16 -0800 Subject: [PATCH] Fixing server updates --- lib/Structures/Server.js | 66 +++++++++++++++++++++++++--------------- src/Structures/Server.js | 56 ++++++++++++++++++++-------------- 2 files changed, 76 insertions(+), 46 deletions(-) diff --git a/lib/Structures/Server.js b/lib/Structures/Server.js index 5c5264476..57c2313d0 100644 --- a/lib/Structures/Server.js +++ b/lib/Structures/Server.js @@ -67,32 +67,50 @@ var Server = (function (_Equality) { var self = this; - data.roles.forEach(function (dataRole) { - _this.roles.add(new _Role2["default"](dataRole, _this, client)); - }); + if (data.roles instanceof _UtilCache2["default"]) { + data.roles.forEach(function (role) { + return _this.roles.add(role); + }); + } else { + data.roles.forEach(function (dataRole) { + _this.roles.add(new _Role2["default"](dataRole, _this, client)); + }); + } - data.members.forEach(function (dataUser) { - _this.memberMap[dataUser.user.id] = { - roles: dataUser.roles.map(function (pid) { - return self.roles.get("id", pid); - }), - mute: dataUser.mute, - deaf: dataUser.deaf, - joinedAt: Date.parse(dataUser.joined_at) - }; - var user = client.internal.users.add(new _User2["default"](dataUser.user, client)); - _this.members.add(user); - }); + if (data.members instanceof _UtilCache2["default"]) { + data.members.forEach(function (member) { + return _this.members.add(member); + }); + } else { + data.members.forEach(function (dataUser) { + _this.memberMap[dataUser.user.id] = { + roles: dataUser.roles.map(function (pid) { + return self.roles.get("id", pid); + }), + mute: dataUser.mute, + deaf: dataUser.deaf, + joinedAt: Date.parse(dataUser.joined_at) + }; + var user = client.internal.users.add(new _User2["default"](dataUser.user, client)); + _this.members.add(user); + }); + } - data.channels.forEach(function (dataChannel) { - if (dataChannel.type === "text") { - var channel = client.internal.channels.add(new _TextChannel2["default"](dataChannel, client, _this)); - _this.channels.add(channel); - } else { - var channel = client.internal.channels.add(new _VoiceChannel2["default"](dataChannel, client, _this)); - _this.channels.add(channel); - } - }); + if (data.channels instanceof _UtilCache2["default"]) { + data.channels.forEach(function (channel) { + return _this.channels.add(channel); + }); + } else { + data.channels.forEach(function (dataChannel) { + if (dataChannel.type === "text") { + var channel = client.internal.channels.add(new _TextChannel2["default"](dataChannel, client, _this)); + _this.channels.add(channel); + } else { + var channel = client.internal.channels.add(new _VoiceChannel2["default"](dataChannel, client, _this)); + _this.channels.add(channel); + } + }); + } if (data.presences) { for (var _iterator = data.presences, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { diff --git a/src/Structures/Server.js b/src/Structures/Server.js index 164d5c38e..10c2f409c 100644 --- a/src/Structures/Server.js +++ b/src/Structures/Server.js @@ -35,30 +35,42 @@ export default class Server extends Equality { var self = this; - data.roles.forEach((dataRole) => { - this.roles.add(new Role(dataRole, this, client)); - }); + if (data.roles instanceof Cache) { + data.roles.forEach((role) => this.roles.add(role)); + } else { + data.roles.forEach((dataRole) => { + this.roles.add(new Role(dataRole, this, client)); + }); + } - data.members.forEach((dataUser) => { - this.memberMap[dataUser.user.id] = { - roles: dataUser.roles.map((pid) => self.roles.get("id", pid)), - mute: dataUser.mute, - deaf: dataUser.deaf, - joinedAt: Date.parse(dataUser.joined_at) - }; - var user = client.internal.users.add(new User(dataUser.user, client)); - this.members.add(user); - }); + if (data.members instanceof Cache) { + data.members.forEach((member) => this.members.add(member)); + } else { + data.members.forEach((dataUser) => { + this.memberMap[dataUser.user.id] = { + roles: dataUser.roles.map((pid) => self.roles.get("id", pid)), + mute: dataUser.mute, + deaf: dataUser.deaf, + joinedAt: Date.parse(dataUser.joined_at) + }; + var user = client.internal.users.add(new User(dataUser.user, client)); + this.members.add(user); + }); + } - data.channels.forEach((dataChannel) => { - if (dataChannel.type === "text") { - var channel = client.internal.channels.add(new TextChannel(dataChannel, client, this)); - this.channels.add(channel); - } else { - var channel = client.internal.channels.add(new VoiceChannel(dataChannel, client, this)); - this.channels.add(channel); - } - }); + if (data.channels instanceof Cache) { + data.channels.forEach((channel) => this.channels.add(channel)); + } else { + data.channels.forEach((dataChannel) => { + if (dataChannel.type === "text") { + var channel = client.internal.channels.add(new TextChannel(dataChannel, client, this)); + this.channels.add(channel); + } else { + var channel = client.internal.channels.add(new VoiceChannel(dataChannel, client, this)); + this.channels.add(channel); + } + }); + } if (data.presences) { for (var presence of data.presences) {