mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
added serverMemberRemove listener
This commit is contained in:
@@ -675,6 +675,36 @@ var InternalClient = (function () {
|
||||
client.emit("warn", "server role updated but server not in cache");
|
||||
}
|
||||
break;
|
||||
case PacketType.SERVER_MEMBER_ADD:
|
||||
var server = self.servers.get("id", data.guild_id);
|
||||
if (server) {
|
||||
|
||||
server.memberMap[data.user.id] = {
|
||||
roles: data.roles,
|
||||
mute: false,
|
||||
deaf: false,
|
||||
joinedAt: Date.parse(data.joined_at)
|
||||
};
|
||||
|
||||
client.emit("serverNewMember", server, server.members.add(self.users.add(new User(data.user, client))));
|
||||
} else {
|
||||
client.emit("warn", "server member added but server doesn't exist in cache");
|
||||
}
|
||||
break;
|
||||
case PacketType.SERVER_MEMBER_REMOVE:
|
||||
var server = self.servers.get("id", data.guild_id);
|
||||
if (server) {
|
||||
var user = self.users.get("id", data.user.id);
|
||||
if (user) {
|
||||
server.members.remove(user);
|
||||
client.emit("serverMemberRemoved", server, user);
|
||||
} else {
|
||||
client.emit("warn", "server member removed but user doesn't exist in cache");
|
||||
}
|
||||
} else {
|
||||
client.emit("warn", "server member removed but server doesn't exist in cache");
|
||||
}
|
||||
break;
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
@@ -111,7 +111,10 @@ var PacketType = {
|
||||
CHANNEL_UPDATE: "CHANNEL_UPDATE",
|
||||
SERVER_ROLE_CREATE: "GUILD_ROLE_CREATE",
|
||||
SERVER_ROLE_DELETE: "GUILD_ROLE_DELETE",
|
||||
SERVER_ROLE_UPDATE: "GUILD_ROLE_UPDATE"
|
||||
SERVER_ROLE_UPDATE: "GUILD_ROLE_UPDATE",
|
||||
SERVER_MEMBER_ADD: "GUILD_MEMBER_ADD",
|
||||
SERVER_MEMBER_REMOVE: "GUILD_MEMBER_REMOVE",
|
||||
SERVER_MEMBER_UPDATE: "GUILD_MEMBER_UPDATE"
|
||||
};
|
||||
|
||||
exports.API_ENDPOINT = API;
|
||||
|
||||
@@ -18,7 +18,7 @@ a.on("message", function (m) {
|
||||
a.reply(m, srv);
|
||||
});
|
||||
});
|
||||
a.on("serverRoleUpdated", function (r, s) {
|
||||
a.on("serverMemberRemoved", function (r, s) {
|
||||
console.log(r, s);
|
||||
});
|
||||
|
||||
|
||||
@@ -41,22 +41,22 @@ class InternalClient {
|
||||
this.resolver = new Resolver(this);
|
||||
}
|
||||
// def createServer
|
||||
createServer(name, region="london") {
|
||||
createServer(name, region = "london") {
|
||||
var self = this;
|
||||
return new Promise((resolve, reject) => {
|
||||
name = self.resolver.resolveString(name);
|
||||
|
||||
|
||||
request
|
||||
.post(Endpoints.SERVERS)
|
||||
.set("authorization", self.token)
|
||||
.send({name, region})
|
||||
.end((err, res)=>{
|
||||
if(err){
|
||||
.send({ name, region })
|
||||
.end((err, res) => {
|
||||
if (err) {
|
||||
reject(new Error(err.response.text));
|
||||
}else{
|
||||
} else {
|
||||
// valid server, wait until it is cached
|
||||
var inter = setInterval(() => {
|
||||
if(self.servers.get("id", res.body.id)){
|
||||
if (self.servers.get("id", res.body.id)) {
|
||||
clearInterval(inter);
|
||||
resolve(self.servers.get("id", res.body.id));
|
||||
}
|
||||
@@ -71,17 +71,17 @@ class InternalClient {
|
||||
var self = this;
|
||||
return new Promise((resolve, reject) => {
|
||||
var server = self.resolver.resolveServer(srv);
|
||||
if(server){
|
||||
|
||||
if (server) {
|
||||
|
||||
request
|
||||
.del(Endpoints.SERVER(server.id))
|
||||
.set("authorization", self.token)
|
||||
.end((err, res) => {
|
||||
if(err){
|
||||
if (err) {
|
||||
reject(new Error(err.response.text));
|
||||
}else{
|
||||
} else {
|
||||
// remove channels of server then the server
|
||||
for(var chan of server.channels){
|
||||
for (var chan of server.channels) {
|
||||
self.channels.remove(chan);
|
||||
}
|
||||
// remove server
|
||||
@@ -89,8 +89,8 @@ class InternalClient {
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
|
||||
}else{
|
||||
|
||||
} else {
|
||||
reject(new Error("server did not resolve"));
|
||||
}
|
||||
});
|
||||
@@ -339,7 +339,7 @@ class InternalClient {
|
||||
}
|
||||
|
||||
// def sendFile
|
||||
sendFile(where, _file, name="image.png"){
|
||||
sendFile(where, _file, name = "image.png") {
|
||||
var self = this;
|
||||
return new Promise((resolve, reject) => {
|
||||
self.resolver.resolveChannel(where)
|
||||
@@ -347,23 +347,23 @@ class InternalClient {
|
||||
.catch(e => reject(new Error("couldn't resolve to channel - " + e)));
|
||||
|
||||
function next(channel) {
|
||||
|
||||
|
||||
var file = self.resolver.resolveFile(_file);
|
||||
|
||||
|
||||
request
|
||||
.post(Endpoints.CHANNEL_MESSAGES(channel.id))
|
||||
.set("authorization", self.token)
|
||||
.attach("file", file, name)
|
||||
.end((err, res) => {
|
||||
|
||||
if(err){
|
||||
|
||||
if (err) {
|
||||
reject(new Error(err.response.text));
|
||||
}else{
|
||||
} else {
|
||||
resolve(channel.messages.add(new Message(res.body, channel, self.client)));
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -393,17 +393,17 @@ class InternalClient {
|
||||
var joinedParams = params.join();
|
||||
if (joinedParams !== "")
|
||||
joinedParams = "&" + params.join();
|
||||
|
||||
|
||||
request
|
||||
.get(`${Endpoints.CHANNEL_MESSAGES(channel.id)}?limit=${limit}${joinedParams}`)
|
||||
.get(`${Endpoints.CHANNEL_MESSAGES(channel.id) }?limit=${limit}${joinedParams}`)
|
||||
.set("authorization", self.token)
|
||||
.end((err, res) => {
|
||||
if(err){
|
||||
if (err) {
|
||||
reject(new Error(err.response.text));
|
||||
}else{
|
||||
} else {
|
||||
var logs = [];
|
||||
res.body.forEach((msg) => {
|
||||
logs.push( channel.messages.add(new Message(msg, channel, self.client)) );
|
||||
logs.push(channel.messages.add(new Message(msg, channel, self.client)));
|
||||
});
|
||||
resolve(logs);
|
||||
}
|
||||
@@ -507,7 +507,7 @@ class InternalClient {
|
||||
// potentially blank
|
||||
var msg = channel.messages.get("id", data.id);
|
||||
client.emit("messageDeleted", msg);
|
||||
if(msg){
|
||||
if (msg) {
|
||||
channel.messages.remove(msg);
|
||||
}
|
||||
} else {
|
||||
@@ -520,9 +520,9 @@ class InternalClient {
|
||||
if (channel) {
|
||||
// potentially blank
|
||||
var msg = channel.messages.get("id", data.id);
|
||||
|
||||
|
||||
if(msg){
|
||||
|
||||
|
||||
if (msg) {
|
||||
// old message exists
|
||||
data.nonce = data.nonce || msg.nonce;
|
||||
data.attachments = data.attachments || msg.attachments;
|
||||
@@ -542,29 +542,29 @@ class InternalClient {
|
||||
break;
|
||||
case PacketType.SERVER_CREATE:
|
||||
var server = self.servers.get("id", data.id);
|
||||
if(!server){
|
||||
if (!server) {
|
||||
self.servers.add(new Server(data, client));
|
||||
client.emit("serverCreated", server);
|
||||
}
|
||||
break;
|
||||
case PacketType.SERVER_DELETE:
|
||||
var server = self.servers.get("id", data.id);
|
||||
if(server){
|
||||
|
||||
for(var channel of server.channels){
|
||||
if (server) {
|
||||
|
||||
for (var channel of server.channels) {
|
||||
self.channels.remove(channel);
|
||||
}
|
||||
|
||||
|
||||
self.servers.remove(server);
|
||||
client.emit("serverDeleted", server);
|
||||
|
||||
}else{
|
||||
|
||||
} else {
|
||||
client.emit("warn", "server was deleted but it was not in the cache");
|
||||
}
|
||||
break;
|
||||
case PacketType.SERVER_UPDATE:
|
||||
var server = self.servers.get("id", data.id);
|
||||
if(server){
|
||||
if (server) {
|
||||
// server exists
|
||||
data.members = data.members || [];
|
||||
data.channels = data.channels || [];
|
||||
@@ -572,133 +572,168 @@ class InternalClient {
|
||||
newserver.members = server.members;
|
||||
newserver.memberMap = server.memberMap;
|
||||
newserver.channels = server.channels;
|
||||
if(newserver.equalsStrict(server)){
|
||||
if (newserver.equalsStrict(server)) {
|
||||
// already the same don't do anything
|
||||
client.emit("debug", "received server update but server already updated");
|
||||
}else{
|
||||
} else {
|
||||
self.servers.update(server, newserver);
|
||||
client.emit("serverUpdated", server, newserver);
|
||||
}
|
||||
}else if(!server){
|
||||
} else if (!server) {
|
||||
client.emit("warn", "server was updated but it was not in the cache");
|
||||
self.servers.add( new Server(data, self) );
|
||||
self.servers.add(new Server(data, self));
|
||||
client.emit("serverCreated", server);
|
||||
}
|
||||
break;
|
||||
case PacketType.CHANNEL_CREATE:
|
||||
|
||||
var channel = self.channels.get("id", data.id);
|
||||
|
||||
if(!channel){
|
||||
|
||||
|
||||
if (!channel) {
|
||||
|
||||
var server = self.servers.get("id", data.guild_id);
|
||||
if(server){
|
||||
if(data.is_private){
|
||||
client.emit("channelCreated", self.private_channels.add( new PMChannel(data, client) ));
|
||||
}else{
|
||||
if (server) {
|
||||
if (data.is_private) {
|
||||
client.emit("channelCreated", self.private_channels.add(new PMChannel(data, client)));
|
||||
} else {
|
||||
var chan = null;
|
||||
if(data.type === "text"){
|
||||
if (data.type === "text") {
|
||||
chan = self.channels.add(new TextChannel(data, client, server));
|
||||
}else{
|
||||
} else {
|
||||
chan = self.channels.add(new VoiceChannel(data, client, server));
|
||||
}
|
||||
client.emit("channelCreated", server.channels.add(chan));
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
client.emit("warn", "channel created but server does not exist");
|
||||
}
|
||||
|
||||
}else{
|
||||
|
||||
} else {
|
||||
client.emit("warn", "channel created but already in cache");
|
||||
}
|
||||
|
||||
break;
|
||||
case PacketType.CHANNEL_DELETE:
|
||||
var channel = self.channels.get("id", data.id);
|
||||
if(channel){
|
||||
|
||||
if(channel.server) // accounts for PMs
|
||||
if (channel) {
|
||||
|
||||
if (channel.server) // accounts for PMs
|
||||
channel.server.channels.remove(channel);
|
||||
|
||||
|
||||
self.channels.remove(channel);
|
||||
client.emit("channelDeleted", channel);
|
||||
|
||||
}else{
|
||||
|
||||
} else {
|
||||
client.emit("warn", "channel deleted but already out of cache?");
|
||||
}
|
||||
break;
|
||||
case PacketType.CHANNEL_UPDATE:
|
||||
var channel = self.channels.get("id", data.id) || self.private_channels.get("id", data.id);
|
||||
if(channel){
|
||||
|
||||
if(channel instanceof PMChannel){
|
||||
if (channel) {
|
||||
|
||||
if (channel instanceof PMChannel) {
|
||||
//PM CHANNEL
|
||||
client.emit("channelUpdated", self.private_channels.update(
|
||||
channel,
|
||||
new PMChannel(data, client)
|
||||
));
|
||||
}else{
|
||||
if(channel.server){
|
||||
if(channel.type === "text"){
|
||||
));
|
||||
} else {
|
||||
if (channel.server) {
|
||||
if (channel.type === "text") {
|
||||
//TEXT CHANNEL
|
||||
var chan = new TextChannel(data, client, channel.server);
|
||||
chan.messages = channel.messages;
|
||||
channel.server.channels.update(channel, chan);
|
||||
self.channels.update(channel, chan);
|
||||
client.emit("channelUpdated", channel, chan);
|
||||
}else{
|
||||
} else {
|
||||
//VOICE CHANNEL
|
||||
var chan = new VoiceChannel(data, client, channel.server);
|
||||
channel.server.channels.update(channel, chan);
|
||||
self.channels.update(channel, chan);
|
||||
client.emit("channelUpdated", channel, chan);
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
client.emit("warn", "channel updated but server non-existant");
|
||||
}
|
||||
}
|
||||
|
||||
}else{
|
||||
|
||||
} else {
|
||||
client.emit("warn", "channel updated but not in cache");
|
||||
}
|
||||
break;
|
||||
case PacketType.SERVER_ROLE_CREATE:
|
||||
var server = self.servers.get("id", data.guild_id);
|
||||
if(server){
|
||||
if (server) {
|
||||
client.emit("serverRoleCreated", server.roles.add(new Role(data.role, server, client)), server);
|
||||
}else{
|
||||
} else {
|
||||
client.emit("warn", "server role made but server not in cache");
|
||||
}
|
||||
break;
|
||||
case PacketType.SERVER_ROLE_DELETE:
|
||||
var server = self.servers.get("id", data.guild_id);
|
||||
if(server){
|
||||
if (server) {
|
||||
var role = server.roles.get("id", data.role_id);
|
||||
if(role){
|
||||
if (role) {
|
||||
server.roles.remove(role);
|
||||
client.emit("serverRoleDeleted", role);
|
||||
}else{
|
||||
} else {
|
||||
client.emit("warn", "server role deleted but role not in cache");
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
client.emit("warn", "server role deleted but server not in cache");
|
||||
}
|
||||
break;
|
||||
case PacketType.SERVER_ROLE_UPDATE:
|
||||
var server = self.servers.get("id", data.guild_id);
|
||||
if(server){
|
||||
if (server) {
|
||||
var role = server.roles.get("id", data.role.id);
|
||||
if(role){
|
||||
if (role) {
|
||||
var newRole = new Role(data.role, server, client);
|
||||
server.roles.update(role, newRole)
|
||||
server.roles.update(role, newRole)
|
||||
client.emit("serverRoleUpdated", role, newRole);
|
||||
}else{
|
||||
} else {
|
||||
client.emit("warn", "server role updated but role not in cache");
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
client.emit("warn", "server role updated but server not in cache");
|
||||
}
|
||||
break;
|
||||
case PacketType.SERVER_MEMBER_ADD:
|
||||
var server = self.servers.get("id", data.guild_id);
|
||||
if (server) {
|
||||
|
||||
server.memberMap[data.user.id] = {
|
||||
roles: data.roles,
|
||||
mute: false,
|
||||
deaf: false,
|
||||
joinedAt: Date.parse(data.joined_at)
|
||||
};
|
||||
|
||||
client.emit(
|
||||
"serverNewMember",
|
||||
server,
|
||||
server.members.add(self.users.add(new User(data.user, client)))
|
||||
);
|
||||
|
||||
} else {
|
||||
client.emit("warn", "server member added but server doesn't exist in cache");
|
||||
}
|
||||
break;
|
||||
case PacketType.SERVER_MEMBER_REMOVE:
|
||||
var server = self.servers.get("id", data.guild_id);
|
||||
if(server){
|
||||
var user = self.users.get("id", data.user.id);
|
||||
if(user){
|
||||
server.members.remove(user);
|
||||
client.emit("serverMemberRemoved", server, user);
|
||||
}else{
|
||||
client.emit("warn", "server member removed but user doesn't exist in cache");
|
||||
}
|
||||
}else{
|
||||
client.emit("warn", "server member removed but server doesn't exist in cache");
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,7 +73,10 @@ var PacketType = {
|
||||
CHANNEL_UPDATE : "CHANNEL_UPDATE",
|
||||
SERVER_ROLE_CREATE : "GUILD_ROLE_CREATE",
|
||||
SERVER_ROLE_DELETE : "GUILD_ROLE_DELETE",
|
||||
SERVER_ROLE_UPDATE : "GUILD_ROLE_UPDATE"
|
||||
SERVER_ROLE_UPDATE : "GUILD_ROLE_UPDATE",
|
||||
SERVER_MEMBER_ADD : "GUILD_MEMBER_ADD",
|
||||
SERVER_MEMBER_REMOVE : "GUILD_MEMBER_REMOVE",
|
||||
SERVER_MEMBER_UPDATE : "GUILD_MEMBER_UPDATE"
|
||||
}
|
||||
|
||||
exports.API_ENDPOINT = API;
|
||||
|
||||
@@ -13,7 +13,7 @@ a.on("message", m => {
|
||||
a.reply(m, srv);
|
||||
});
|
||||
});
|
||||
a.on("serverRoleUpdated", (r, s) => {
|
||||
a.on("serverMemberRemoved", (r, s) => {
|
||||
console.log(r, s);
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user