mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-11 09:03:29 +01:00
serverMemberUpdate listener
This commit is contained in:
@@ -680,7 +680,9 @@ var InternalClient = (function () {
|
||||
if (server) {
|
||||
|
||||
server.memberMap[data.user.id] = {
|
||||
roles: data.roles,
|
||||
roles: data.roles.map(function (pid) {
|
||||
return server.roles.get("id", pid);
|
||||
}),
|
||||
mute: false,
|
||||
deaf: false,
|
||||
joinedAt: Date.parse(data.joined_at)
|
||||
@@ -696,6 +698,7 @@ var InternalClient = (function () {
|
||||
if (server) {
|
||||
var user = self.users.get("id", data.user.id);
|
||||
if (user) {
|
||||
server.memberMap[data.user.id] = null;
|
||||
server.members.remove(user);
|
||||
client.emit("serverMemberRemoved", server, user);
|
||||
} else {
|
||||
@@ -705,6 +708,24 @@ var InternalClient = (function () {
|
||||
client.emit("warn", "server member removed but server doesn't exist in cache");
|
||||
}
|
||||
break;
|
||||
case PacketType.SERVER_MEMBER_UPDATE:
|
||||
var server = self.servers.get("id", data.guild_id);
|
||||
if (server) {
|
||||
var user = self.users.get("id", data.user.id);
|
||||
if (user) {
|
||||
server.memberMap[data.user.id].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].deaf = data.deaf;
|
||||
client.emit("serverMemberUpdated", server, user);
|
||||
} else {
|
||||
client.emit("warn", "server member removed but user doesn't exist in cache");
|
||||
}
|
||||
} else {
|
||||
client.emit("warn", "server member updated but server doesn't exist in cache");
|
||||
}
|
||||
break;
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
@@ -41,9 +41,17 @@ var Server = (function (_Equality) {
|
||||
this.afkChannelID = data.afk_channel_id;
|
||||
this.memberMap = {};
|
||||
|
||||
var self = this;
|
||||
|
||||
data.roles.forEach(function (dataRole) {
|
||||
_this.roles.add(new Role(dataRole, _this, client));
|
||||
});
|
||||
|
||||
data.members.forEach(function (dataUser) {
|
||||
_this.memberMap[dataUser.user.id] = {
|
||||
roles: dataUser.roles,
|
||||
roles: dataUser.roles.map(function (pid) {
|
||||
return self.roles.get("id", pid);
|
||||
}),
|
||||
mute: dataUser.mute,
|
||||
deaf: dataUser.deaf,
|
||||
joinedAt: Date.parse(dataUser.joined_at)
|
||||
@@ -61,10 +69,6 @@ var Server = (function (_Equality) {
|
||||
_this.channels.add(channel);
|
||||
}
|
||||
});
|
||||
|
||||
data.roles.forEach(function (dataRole) {
|
||||
_this.roles.add(new Role(dataRole, _this, client));
|
||||
});
|
||||
}
|
||||
|
||||
Server.prototype.toString = function toString() {
|
||||
|
||||
@@ -704,7 +704,7 @@ class InternalClient {
|
||||
if (server) {
|
||||
|
||||
server.memberMap[data.user.id] = {
|
||||
roles: data.roles,
|
||||
roles: data.roles.map((pid) => server.roles.get("id", pid)),
|
||||
mute: false,
|
||||
deaf: false,
|
||||
joinedAt: Date.parse(data.joined_at)
|
||||
@@ -725,6 +725,7 @@ class InternalClient {
|
||||
if(server){
|
||||
var user = self.users.get("id", data.user.id);
|
||||
if(user){
|
||||
server.memberMap[data.user.id] = null;
|
||||
server.members.remove(user);
|
||||
client.emit("serverMemberRemoved", server, user);
|
||||
}else{
|
||||
@@ -734,6 +735,22 @@ class InternalClient {
|
||||
client.emit("warn", "server member removed but server doesn't exist in cache");
|
||||
}
|
||||
break;
|
||||
case PacketType.SERVER_MEMBER_UPDATE:
|
||||
var server = self.servers.get("id", data.guild_id);
|
||||
if(server){
|
||||
var user = self.users.get("id", data.user.id);
|
||||
if(user){
|
||||
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].deaf = data.deaf;
|
||||
client.emit("serverMemberUpdated", server, user);
|
||||
}else{
|
||||
client.emit("warn", "server member removed but user doesn't exist in cache");
|
||||
}
|
||||
}else{
|
||||
client.emit("warn", "server member updated but server doesn't exist in cache");
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,9 +32,15 @@ class Server extends Equality {
|
||||
this.afkChannelID = data.afk_channel_id;
|
||||
this.memberMap = {};
|
||||
|
||||
var self = this;
|
||||
|
||||
data.roles.forEach( (dataRole) => {
|
||||
this.roles.add( new Role(dataRole, this, client) );
|
||||
} );
|
||||
|
||||
data.members.forEach( (dataUser) => {
|
||||
this.memberMap[dataUser.user.id] = {
|
||||
roles : dataUser.roles,
|
||||
roles : dataUser.roles.map((pid) => self.roles.get("id", pid)),
|
||||
mute : dataUser.mute,
|
||||
deaf : dataUser.deaf,
|
||||
joinedAt : Date.parse(dataUser.joined_at)
|
||||
@@ -52,10 +58,6 @@ class Server extends Equality {
|
||||
this.channels.add(channel);
|
||||
}
|
||||
} );
|
||||
|
||||
data.roles.forEach( (dataRole) => {
|
||||
this.roles.add( new Role(dataRole, this, client) );
|
||||
} );
|
||||
}
|
||||
|
||||
get iconURL() {
|
||||
|
||||
Reference in New Issue
Block a user