Fixed options + message cache limit + server member count + leaving users

This commit is contained in:
abalabahaha
2016-03-10 22:16:05 -08:00
parent ef679e87c4
commit d2a9f15e82
8 changed files with 68 additions and 23 deletions

View File

@@ -47,8 +47,9 @@ export default class Client extends EventEmitter {
this.options = options || {};
this.options.compress = options.compress || (!process.browser);
this.options.revive = options.revive || false;
this.options.rate_limit_as_error = options.rate_limit_as_error || false;
this.options.large_threshold = options.large_threshold || 250;
this.options.rateLimitAsError = options.rateLimitAsError || false;
this.options.largeThreshold = options.largeThreshold || 250;
this.options.maxCachedMessages = options.maxCachedMessages || 1000;
/**
* Internal Client that the Client wraps around.
* @readonly

View File

@@ -65,7 +65,7 @@ export default class InternalClient {
return new Promise((resolve, reject) => {
ret.end((error, data) => {
if (error) {
if (!this.client.options.rate_limit_as_error &&
if (!this.client.options.rateLimitAsError &&
error.response &&
error.response.error &&
error.response.error.status
@@ -1122,7 +1122,7 @@ export default class InternalClient {
token: self.token,
v: 3,
compress: self.client.options.compress,
large_threshold : self.client.options.large_threshold,
large_threshold : self.client.options.largeThreshold,
properties: {
"$os": "discord.js",
"$browser": "discord.js",
@@ -1270,6 +1270,13 @@ export default class InternalClient {
}
self.servers.remove(server);
for (var user of self.users) {
if (!self.servers.find((s) => !!s.members.get("id", user.id))) {
self.users.remove(user);
}
}
client.emit("serverDeleted", server);
} else {
client.emit("warn", "server was unavailable, could not update");
@@ -1424,6 +1431,8 @@ export default class InternalClient {
joinedAt: Date.parse(data.joined_at)
};
server.memberCount++;
client.emit(
"serverNewMember",
server,
@@ -1441,7 +1450,11 @@ export default class InternalClient {
if (user) {
server.memberMap[data.user.id] = null;
server.members.remove(user);
server.memberCount--;
client.emit("serverMemberRemoved", server, user);
if (!self.servers.find((s) => !!s.members.get("id", user.id))) {
self.users.remove(user);
}
} else {
client.emit("warn", "server member removed but user doesn't exist in cache");
}

View File

@@ -10,8 +10,8 @@ export default class PMChannel extends Channel {
super(data, client);
this.type = data.type || "text";
this.lastMessageId = data.last_message_id || data.lastMessageId;
this.messages = new Cache("id", 1000);
this.lastMessageID = data.last_message_id || data.lastMessageID;
this.messages = new Cache("id", client.options.maxCachedMessages);
this.recipient = this.client.internal.users.add(new User(data.recipient, this.client));
}

View File

@@ -10,7 +10,7 @@ export default class TextChannel extends ServerChannel{
this.topic = data.topic;
this.lastMessageID = data.last_message_id || data.lastMessageID;
this.messages = new Cache("id", client.options.maximumMessages);
this.messages = new Cache("id", client.options.maxCachedMessages);
}
/* warning! may return null */