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