roles have positions too

This commit is contained in:
abalabahaha
2016-05-02 17:44:22 -07:00
parent ad84aa84b8
commit 9700f8577b
2 changed files with 20 additions and 2 deletions

View File

@@ -1062,6 +1062,7 @@ var InternalClient = (function () {
color: data.color || role.color,
hoist: data.hoist || role.hoist,
name: data.name || role.name,
position: data.position || role.position,
permissions: role.permissions || 0
};
@@ -2087,6 +2088,14 @@ var InternalClient = (function () {
if (server) {
var user = self.users.add(new _StructuresUser2["default"](data.user, client));
if (user) {
var oldMember = {
roles: server.memberMap[data.user.id].roles,
mute: server.memberMap[data.user.id].mute,
selfMute: server.memberMap[data.user.id].selfMute,
deaf: server.memberMap[data.user.id].deaf,
selfDeaf: server.memberMap[data.user.id].selfDeaf,
nick: server.memberMap[data.user.id].nick
};
server.memberMap[data.user.id] = server.memberMap[data.user.id] || {};
server.memberMap[data.user.id].roles = data.roles.map(function (pid) {
return server.roles.get("id", pid);
@@ -2096,7 +2105,7 @@ var InternalClient = (function () {
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;
client.emit("serverMemberUpdated", server, user);
client.emit("serverMemberUpdated", server, user, oldMember);
} else {
client.emit("warn", "server member removed but user doesn't exist in cache");
}

View File

@@ -895,6 +895,7 @@ export default class InternalClient {
color: data.color || role.color,
hoist: data.hoist || role.hoist,
name: data.name || role.name,
position: data.position || role.position,
permissions: role.permissions || 0
};
@@ -1785,6 +1786,14 @@ export default class InternalClient {
if (server) {
var user = self.users.add(new User(data.user, client));
if (user) {
var oldMember = {
roles: server.memberMap[data.user.id].roles,
mute: server.memberMap[data.user.id].mute,
selfMute: server.memberMap[data.user.id].selfMute,
deaf: server.memberMap[data.user.id].deaf,
selfDeaf: server.memberMap[data.user.id].selfDeaf,
nick: server.memberMap[data.user.id].nick
};
server.memberMap[data.user.id] = 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;
@@ -1792,7 +1801,7 @@ export default class InternalClient {
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;
client.emit("serverMemberUpdated", server, user);
client.emit("serverMemberUpdated", server, user, oldMember);
} else {
client.emit("warn", "server member removed but user doesn't exist in cache");
}