mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-14 10:33:30 +01:00
Fixed options + message cache limit + server member count + leaving users
This commit is contained in:
@@ -73,8 +73,9 @@ var Client = (function (_EventEmitter) {
|
|||||||
this.options = options || {};
|
this.options = options || {};
|
||||||
this.options.compress = options.compress || !process.browser;
|
this.options.compress = options.compress || !process.browser;
|
||||||
this.options.revive = options.revive || false;
|
this.options.revive = options.revive || false;
|
||||||
this.options.rate_limit_as_error = options.rate_limit_as_error || false;
|
this.options.rateLimitAsError = options.rateLimitAsError || false;
|
||||||
this.options.large_threshold = options.large_threshold || 250;
|
this.options.largeThreshold = options.largeThreshold || 250;
|
||||||
|
this.options.maxCachedMessages = options.maxCachedMessages || 1000;
|
||||||
/**
|
/**
|
||||||
* Internal Client that the Client wraps around.
|
* Internal Client that the Client wraps around.
|
||||||
* @readonly
|
* @readonly
|
||||||
|
|||||||
@@ -132,7 +132,7 @@ var InternalClient = (function () {
|
|||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
ret.end(function (error, data) {
|
ret.end(function (error, data) {
|
||||||
if (error) {
|
if (error) {
|
||||||
if (!_this.client.options.rate_limit_as_error && error.response && error.response.error && error.response.error.status && error.response.error.status === 429) {
|
if (!_this.client.options.rateLimitAsError && error.response && error.response.error && error.response.error.status && error.response.error.status === 429) {
|
||||||
|
|
||||||
if (data.headers["retry-after"] || data.headers["Retry-After"]) {
|
if (data.headers["retry-after"] || data.headers["Retry-After"]) {
|
||||||
var toWait = data.headers["retry-after"] || data.headers["Retry-After"];
|
var toWait = data.headers["retry-after"] || data.headers["Retry-After"];
|
||||||
@@ -1361,7 +1361,7 @@ var InternalClient = (function () {
|
|||||||
token: self.token,
|
token: self.token,
|
||||||
v: 3,
|
v: 3,
|
||||||
compress: self.client.options.compress,
|
compress: self.client.options.compress,
|
||||||
large_threshold: self.client.options.large_threshold,
|
large_threshold: self.client.options.largeThreshold,
|
||||||
properties: {
|
properties: {
|
||||||
"$os": "discord.js",
|
"$os": "discord.js",
|
||||||
"$browser": "discord.js",
|
"$browser": "discord.js",
|
||||||
@@ -1528,6 +1528,28 @@ var InternalClient = (function () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
self.servers.remove(server);
|
self.servers.remove(server);
|
||||||
|
|
||||||
|
for (var _iterator8 = self.users, _isArray8 = Array.isArray(_iterator8), _i8 = 0, _iterator8 = _isArray8 ? _iterator8 : _iterator8[Symbol.iterator]();;) {
|
||||||
|
var _ref8;
|
||||||
|
|
||||||
|
if (_isArray8) {
|
||||||
|
if (_i8 >= _iterator8.length) break;
|
||||||
|
_ref8 = _iterator8[_i8++];
|
||||||
|
} else {
|
||||||
|
_i8 = _iterator8.next();
|
||||||
|
if (_i8.done) break;
|
||||||
|
_ref8 = _i8.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
var user = _ref8;
|
||||||
|
|
||||||
|
if (!self.servers.find(function (s) {
|
||||||
|
return !!s.members.get("id", user.id);
|
||||||
|
})) {
|
||||||
|
self.users.remove(user);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
client.emit("serverDeleted", server);
|
client.emit("serverDeleted", server);
|
||||||
} else {
|
} else {
|
||||||
client.emit("warn", "server was unavailable, could not update");
|
client.emit("warn", "server was unavailable, could not update");
|
||||||
@@ -1680,6 +1702,8 @@ var InternalClient = (function () {
|
|||||||
joinedAt: Date.parse(data.joined_at)
|
joinedAt: Date.parse(data.joined_at)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
server.memberCount++;
|
||||||
|
|
||||||
client.emit("serverNewMember", server, server.members.add(self.users.add(new _StructuresUser2["default"](data.user, client))));
|
client.emit("serverNewMember", server, server.members.add(self.users.add(new _StructuresUser2["default"](data.user, client))));
|
||||||
} else {
|
} else {
|
||||||
client.emit("warn", "server member added but server doesn't exist in cache");
|
client.emit("warn", "server member added but server doesn't exist in cache");
|
||||||
@@ -1692,7 +1716,13 @@ var InternalClient = (function () {
|
|||||||
if (user) {
|
if (user) {
|
||||||
server.memberMap[data.user.id] = null;
|
server.memberMap[data.user.id] = null;
|
||||||
server.members.remove(user);
|
server.members.remove(user);
|
||||||
|
server.memberCount--;
|
||||||
client.emit("serverMemberRemoved", server, user);
|
client.emit("serverMemberRemoved", server, user);
|
||||||
|
if (!self.servers.find(function (s) {
|
||||||
|
return !!s.members.get("id", user.id);
|
||||||
|
})) {
|
||||||
|
self.users.remove(user);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
client.emit("warn", "server member removed but user doesn't exist in cache");
|
client.emit("warn", "server member removed but user doesn't exist in cache");
|
||||||
}
|
}
|
||||||
@@ -1846,19 +1876,19 @@ var InternalClient = (function () {
|
|||||||
|
|
||||||
var testtime = new Date().getTime();
|
var testtime = new Date().getTime();
|
||||||
|
|
||||||
for (var _iterator8 = data.members, _isArray8 = Array.isArray(_iterator8), _i8 = 0, _iterator8 = _isArray8 ? _iterator8 : _iterator8[Symbol.iterator]();;) {
|
for (var _iterator9 = data.members, _isArray9 = Array.isArray(_iterator9), _i9 = 0, _iterator9 = _isArray9 ? _iterator9 : _iterator9[Symbol.iterator]();;) {
|
||||||
var _ref8;
|
var _ref9;
|
||||||
|
|
||||||
if (_isArray8) {
|
if (_isArray9) {
|
||||||
if (_i8 >= _iterator8.length) break;
|
if (_i9 >= _iterator9.length) break;
|
||||||
_ref8 = _iterator8[_i8++];
|
_ref9 = _iterator9[_i9++];
|
||||||
} else {
|
} else {
|
||||||
_i8 = _iterator8.next();
|
_i9 = _iterator9.next();
|
||||||
if (_i8.done) break;
|
if (_i9.done) break;
|
||||||
_ref8 = _i8.value;
|
_ref9 = _i9.value;
|
||||||
}
|
}
|
||||||
|
|
||||||
var user = _ref8;
|
var user = _ref9;
|
||||||
|
|
||||||
server.memberMap[user.user.id] = {
|
server.memberMap[user.user.id] = {
|
||||||
roles: user.roles.map(function (pid) {
|
roles: user.roles.map(function (pid) {
|
||||||
|
|||||||
@@ -33,8 +33,8 @@ var PMChannel = (function (_Channel) {
|
|||||||
_Channel.call(this, data, client);
|
_Channel.call(this, data, client);
|
||||||
|
|
||||||
this.type = data.type || "text";
|
this.type = data.type || "text";
|
||||||
this.lastMessageId = data.last_message_id || data.lastMessageId;
|
this.lastMessageID = data.last_message_id || data.lastMessageID;
|
||||||
this.messages = new _UtilCache2["default"]("id", 1000);
|
this.messages = new _UtilCache2["default"]("id", client.options.maxCachedMessages);
|
||||||
this.recipient = this.client.internal.users.add(new _User2["default"](data.recipient, this.client));
|
this.recipient = this.client.internal.users.add(new _User2["default"](data.recipient, this.client));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ var TextChannel = (function (_ServerChannel) {
|
|||||||
|
|
||||||
this.topic = data.topic;
|
this.topic = data.topic;
|
||||||
this.lastMessageID = data.last_message_id || data.lastMessageID;
|
this.lastMessageID = data.last_message_id || data.lastMessageID;
|
||||||
this.messages = new _UtilCache2["default"]("id", client.options.maximumMessages);
|
this.messages = new _UtilCache2["default"]("id", client.options.maxCachedMessages);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* warning! may return null */
|
/* warning! may return null */
|
||||||
|
|||||||
@@ -47,8 +47,9 @@ export default class Client extends EventEmitter {
|
|||||||
this.options = options || {};
|
this.options = options || {};
|
||||||
this.options.compress = options.compress || (!process.browser);
|
this.options.compress = options.compress || (!process.browser);
|
||||||
this.options.revive = options.revive || false;
|
this.options.revive = options.revive || false;
|
||||||
this.options.rate_limit_as_error = options.rate_limit_as_error || false;
|
this.options.rateLimitAsError = options.rateLimitAsError || false;
|
||||||
this.options.large_threshold = options.large_threshold || 250;
|
this.options.largeThreshold = options.largeThreshold || 250;
|
||||||
|
this.options.maxCachedMessages = options.maxCachedMessages || 1000;
|
||||||
/**
|
/**
|
||||||
* Internal Client that the Client wraps around.
|
* Internal Client that the Client wraps around.
|
||||||
* @readonly
|
* @readonly
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ export default class InternalClient {
|
|||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
ret.end((error, data) => {
|
ret.end((error, data) => {
|
||||||
if (error) {
|
if (error) {
|
||||||
if (!this.client.options.rate_limit_as_error &&
|
if (!this.client.options.rateLimitAsError &&
|
||||||
error.response &&
|
error.response &&
|
||||||
error.response.error &&
|
error.response.error &&
|
||||||
error.response.error.status
|
error.response.error.status
|
||||||
@@ -1122,7 +1122,7 @@ export default class InternalClient {
|
|||||||
token: self.token,
|
token: self.token,
|
||||||
v: 3,
|
v: 3,
|
||||||
compress: self.client.options.compress,
|
compress: self.client.options.compress,
|
||||||
large_threshold : self.client.options.large_threshold,
|
large_threshold : self.client.options.largeThreshold,
|
||||||
properties: {
|
properties: {
|
||||||
"$os": "discord.js",
|
"$os": "discord.js",
|
||||||
"$browser": "discord.js",
|
"$browser": "discord.js",
|
||||||
@@ -1270,6 +1270,13 @@ export default class InternalClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
self.servers.remove(server);
|
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);
|
client.emit("serverDeleted", server);
|
||||||
} else {
|
} else {
|
||||||
client.emit("warn", "server was unavailable, could not update");
|
client.emit("warn", "server was unavailable, could not update");
|
||||||
@@ -1424,6 +1431,8 @@ export default class InternalClient {
|
|||||||
joinedAt: Date.parse(data.joined_at)
|
joinedAt: Date.parse(data.joined_at)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
server.memberCount++;
|
||||||
|
|
||||||
client.emit(
|
client.emit(
|
||||||
"serverNewMember",
|
"serverNewMember",
|
||||||
server,
|
server,
|
||||||
@@ -1441,7 +1450,11 @@ export default class InternalClient {
|
|||||||
if (user) {
|
if (user) {
|
||||||
server.memberMap[data.user.id] = null;
|
server.memberMap[data.user.id] = null;
|
||||||
server.members.remove(user);
|
server.members.remove(user);
|
||||||
|
server.memberCount--;
|
||||||
client.emit("serverMemberRemoved", server, user);
|
client.emit("serverMemberRemoved", server, user);
|
||||||
|
if (!self.servers.find((s) => !!s.members.get("id", user.id))) {
|
||||||
|
self.users.remove(user);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
client.emit("warn", "server member removed but user doesn't exist in cache");
|
client.emit("warn", "server member removed but user doesn't exist in cache");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ export default class PMChannel extends Channel {
|
|||||||
super(data, client);
|
super(data, client);
|
||||||
|
|
||||||
this.type = data.type || "text";
|
this.type = data.type || "text";
|
||||||
this.lastMessageId = data.last_message_id || data.lastMessageId;
|
this.lastMessageID = data.last_message_id || data.lastMessageID;
|
||||||
this.messages = new Cache("id", 1000);
|
this.messages = new Cache("id", client.options.maxCachedMessages);
|
||||||
this.recipient = this.client.internal.users.add(new User(data.recipient, this.client));
|
this.recipient = this.client.internal.users.add(new User(data.recipient, this.client));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ export default class TextChannel extends ServerChannel{
|
|||||||
|
|
||||||
this.topic = data.topic;
|
this.topic = data.topic;
|
||||||
this.lastMessageID = data.last_message_id || data.lastMessageID;
|
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 */
|
/* warning! may return null */
|
||||||
|
|||||||
Reference in New Issue
Block a user