Skip to content

Commit 2c17eae

Browse files
committed
Fix login, clone objects when firing x-Updated events
1 parent 2c6cbb6 commit 2c17eae

File tree

12 files changed

+39
-37
lines changed

12 files changed

+39
-37
lines changed

lib/Client/InternalClient.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -434,7 +434,7 @@ var InternalClient = (function () {
434434
var tk = this.tokenCacher.getToken(email, password);
435435
if (tk) {
436436
this.client.emit("debug", "bypassed direct API login, used cached token");
437-
return loginWithToken(tk, email, password);
437+
return this.loginWithToken(tk, email, password);
438438
}
439439
}
440440

@@ -1386,7 +1386,7 @@ var InternalClient = (function () {
13861386
data.mentions = data.mentions || msg.mentions;
13871387
data.author = data.author || msg.author;
13881388
var nmsg = new _StructuresMessage2["default"](data, channel, client);
1389-
client.emit("messageUpdated", nmsg, msg);
1389+
client.emit("messageUpdated", new _StructuresMessage2["default"](msg, channel, client), nmsg);
13901390
channel.messages.update(msg, nmsg);
13911391
}
13921392
} else {
@@ -1449,8 +1449,8 @@ var InternalClient = (function () {
14491449
// already the same don't do anything
14501450
client.emit("debug", "received server update but server already updated");
14511451
} else {
1452+
client.emit("serverUpdated", new _StructuresServer2["default"](server, client), newserver);
14521453
self.servers.update(server, newserver);
1453-
client.emit("serverUpdated", server, newserver);
14541454
}
14551455
} else if (!server) {
14561456
client.emit("warn", "server was updated but it was not in the cache");
@@ -1502,22 +1502,22 @@ var InternalClient = (function () {
15021502

15031503
if (channel instanceof _StructuresPMChannel2["default"]) {
15041504
//PM CHANNEL
1505-
client.emit("channelUpdated", channel, self.private_channels.update(channel, new _StructuresPMChannel2["default"](data, client)));
1505+
client.emit("channelUpdated", new _StructuresPMChannel2["default"](channel, client), self.private_channels.update(channel, new _StructuresPMChannel2["default"](data, client)));
15061506
} else {
15071507
if (channel.server) {
15081508
if (channel.type === "text") {
15091509
//TEXT CHANNEL
15101510
var chan = new _StructuresTextChannel2["default"](data, client, channel.server);
15111511
chan.messages = channel.messages;
1512+
client.emit("channelUpdated", channel, chan);
15121513
channel.server.channels.update(channel, chan);
15131514
self.channels.update(channel, chan);
1514-
client.emit("channelUpdated", channel, chan);
15151515
} else {
15161516
//VOICE CHANNEL
15171517
var chan = new _StructuresVoiceChannel2["default"](data, client, channel.server);
1518+
client.emit("channelUpdated", channel, chan);
15181519
channel.server.channels.update(channel, chan);
15191520
self.channels.update(channel, chan);
1520-
client.emit("channelUpdated", channel, chan);
15211521
}
15221522
} else {
15231523
client.emit("warn", "channel updated but server non-existant");
@@ -1555,8 +1555,8 @@ var InternalClient = (function () {
15551555
var role = server.roles.get("id", data.role.id);
15561556
if (role) {
15571557
var newRole = new _StructuresRole2["default"](data.role, server, client);
1558+
client.emit("serverRoleUpdated", new _StructuresRole2["default"](role, server, client), newRole);
15581559
server.roles.update(role, newRole);
1559-
client.emit("serverRoleUpdated", role, newRole);
15601560
} else {
15611561
client.emit("warn", "server role updated but role not in cache");
15621562
}

lib/Structures/Message.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ var Message = (function (_Equality) {
4040
this.tts = data.tts;
4141
this.embeds = data.embeds;
4242
this.timestamp = Date.parse(data.timestamp);
43-
this.everyoneMentioned = data.mention_everyone;
43+
this.everyoneMentioned = data.mention_everyone || data.everyoneMentioned;
4444
this.id = data.id;
4545

4646
if (data.edited_timestamp) this.editedTimestamp = Date.parse(data.edited_timestamp);

lib/Structures/PMChannel.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ var PMChannel = (function (_Channel) {
3333
_Channel.call(this, data, client);
3434

3535
this.type = data.type || "text";
36-
this.lastMessageId = data.last_message_id;
36+
this.lastMessageId = data.last_message_id || data.lastMessageId;
3737
this.messages = new _UtilCache2["default"]("id", 1000);
3838
this.recipient = this.client.internal.users.add(new _User2["default"](data.recipient, this.client));
3939
}

lib/Structures/Server.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,15 @@ var Server = (function (_Equality) {
5454
this.client = client;
5555

5656
this.region = data.region;
57-
this.ownerID = data.owner_id;
57+
this.ownerID = data.owner_id || data.ownerID;
5858
this.name = data.name;
5959
this.id = data.id;
6060
this.members = new _UtilCache2["default"]();
6161
this.channels = new _UtilCache2["default"]();
6262
this.roles = new _UtilCache2["default"]();
6363
this.icon = data.icon;
6464
this.afkTimeout = data.afkTimeout;
65-
this.afkChannelID = data.afk_channel_id;
65+
this.afkChannelID = data.afk_channel_id || data.afkChannelID;
6666
this.memberMap = {};
6767

6868
var self = this;

lib/Structures/ServerChannel.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,13 @@ var ServerChannel = (function (_Channel) {
3838
this.name = data.name;
3939
this.type = data.type;
4040
this.position = data.position;
41-
this.permissionOverwrites = new _UtilCache2["default"]();
41+
this.permissionOverwrites = data.permissionOverwrites || new _UtilCache2["default"]();
4242
this.server = server;
43-
data.permission_overwrites.forEach(function (permission) {
44-
_this.permissionOverwrites.add(new _PermissionOverwrite2["default"](permission));
45-
});
43+
if (!data.permissionOverwrites) {
44+
data.permission_overwrites.forEach(function (permission) {
45+
_this.permissionOverwrites.add(new _PermissionOverwrite2["default"](permission));
46+
});
47+
}
4648
}
4749

4850
ServerChannel.prototype.permissionsOf = function permissionsOf(user) {

lib/Structures/TextChannel.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ var TextChannel = (function (_ServerChannel) {
2929
_ServerChannel.call(this, data, client, server);
3030

3131
this.topic = data.topic;
32-
this.lastMessageID = data.last_message_id;
32+
this.lastMessageID = data.last_message_id || data.lastMessageID;
3333
this.messages = new _UtilCache2["default"]("id", client.options.maximumMessages);
3434
}
3535

src/Client/InternalClient.js

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ export default class InternalClient {
331331
var tk = this.tokenCacher.getToken(email, password);
332332
if( tk ){
333333
this.client.emit("debug", "bypassed direct API login, used cached token");
334-
return loginWithToken(tk, email, password);
334+
return this.loginWithToken(tk, email, password);
335335
}
336336
}
337337

@@ -462,7 +462,7 @@ export default class InternalClient {
462462

463463
// def sendFile
464464
sendFile(where, _file, name) {
465-
465+
466466
if (!name) {
467467
if (_file instanceof String || typeof _file === "string") {
468468
name = require("path").basename(attachment);
@@ -473,7 +473,7 @@ export default class InternalClient {
473473
name = "image.png"; // Just have to go with default filenames.
474474
}
475475
}
476-
476+
477477
return this.resolver.resolveChannel(where)
478478
.then(channel =>
479479
this.apiRequest("post", Endpoints.CHANNEL_MESSAGES(channel.id), true, null, {
@@ -1199,7 +1199,7 @@ export default class InternalClient {
11991199
data.mentions = data.mentions || msg.mentions;
12001200
data.author = data.author || msg.author;
12011201
var nmsg = new Message(data, channel, client);
1202-
client.emit("messageUpdated", nmsg, msg);
1202+
client.emit("messageUpdated", new Message(msg, channel, client), nmsg);
12031203
channel.messages.update(msg, nmsg);
12041204
}
12051205
} else {
@@ -1249,8 +1249,8 @@ export default class InternalClient {
12491249
// already the same don't do anything
12501250
client.emit("debug", "received server update but server already updated");
12511251
} else {
1252+
client.emit("serverUpdated", new Server(server, client), newserver);
12521253
self.servers.update(server, newserver);
1253-
client.emit("serverUpdated", server, newserver);
12541254
}
12551255
} else if (!server) {
12561256
client.emit("warn", "server was updated but it was not in the cache");
@@ -1304,25 +1304,23 @@ export default class InternalClient {
13041304

13051305
if (channel instanceof PMChannel) {
13061306
//PM CHANNEL
1307-
client.emit("channelUpdated", channel, self.private_channels.update(
1308-
channel,
1309-
new PMChannel(data, client)
1310-
));
1307+
client.emit("channelUpdated", new PMChannel(channel, client),
1308+
self.private_channels.update(channel, new PMChannel(data, client)));
13111309
} else {
13121310
if (channel.server) {
13131311
if (channel.type === "text") {
13141312
//TEXT CHANNEL
13151313
var chan = new TextChannel(data, client, channel.server);
13161314
chan.messages = channel.messages;
1315+
client.emit("channelUpdated", channel, chan);
13171316
channel.server.channels.update(channel, chan);
13181317
self.channels.update(channel, chan);
1319-
client.emit("channelUpdated", channel, chan);
13201318
} else {
13211319
//VOICE CHANNEL
13221320
var chan = new VoiceChannel(data, client, channel.server);
1321+
client.emit("channelUpdated", channel, chan);
13231322
channel.server.channels.update(channel, chan);
13241323
self.channels.update(channel, chan);
1325-
client.emit("channelUpdated", channel, chan);
13261324
}
13271325
} else {
13281326
client.emit("warn", "channel updated but server non-existant");
@@ -1361,8 +1359,8 @@ export default class InternalClient {
13611359
var role = server.roles.get("id", data.role.id);
13621360
if (role) {
13631361
var newRole = new Role(data.role, server, client);
1362+
client.emit("serverRoleUpdated", new Role(role, server, client), newRole);
13641363
server.roles.update(role, newRole);
1365-
client.emit("serverRoleUpdated", role, newRole);
13661364
} else {
13671365
client.emit("warn", "server role updated but role not in cache");
13681366
}

src/Structures/Message.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export default class Message extends Equality{
1515
this.tts = data.tts;
1616
this.embeds = data.embeds;
1717
this.timestamp = Date.parse(data.timestamp);
18-
this.everyoneMentioned = data.mention_everyone;
18+
this.everyoneMentioned = data.mention_everyone || data.everyoneMentioned;
1919
this.id = data.id;
2020

2121
if(data.edited_timestamp)

src/Structures/PMChannel.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export default class PMChannel extends Channel {
1010
super(data, client);
1111

1212
this.type = data.type || "text";
13-
this.lastMessageId = data.last_message_id;
13+
this.lastMessageId = data.last_message_id || data.lastMessageId;
1414
this.messages = new Cache("id", 1000);
1515
this.recipient = this.client.internal.users.add(new User(data.recipient, this.client));
1616
}

src/Structures/Server.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,15 @@ export default class Server extends Equality {
2222
this.client = client;
2323

2424
this.region = data.region;
25-
this.ownerID = data.owner_id;
25+
this.ownerID = data.owner_id || data.ownerID;
2626
this.name = data.name;
2727
this.id = data.id;
2828
this.members = new Cache();
2929
this.channels = new Cache();
3030
this.roles = new Cache();
3131
this.icon = data.icon;
3232
this.afkTimeout = data.afkTimeout;
33-
this.afkChannelID = data.afk_channel_id;
33+
this.afkChannelID = data.afk_channel_id || data.afkChannelID;
3434
this.memberMap = {};
3535

3636
var self = this;

0 commit comments

Comments
 (0)