mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
Fix requests getting locked up in queues
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -39,7 +39,7 @@ class RESTManager {
|
||||
|
||||
if (!this.handlers[apiRequest.getEndpoint()]) {
|
||||
const RequestHandlerType = this.getRequestHandler();
|
||||
this.handlers[apiRequest.getEndpoint()] = new RequestHandlerType(this);
|
||||
this.handlers[apiRequest.getEndpoint()] = new RequestHandlerType(this, apiRequest.getEndpoint());
|
||||
}
|
||||
|
||||
return this.push(this.handlers[apiRequest.getEndpoint()], apiRequest);
|
||||
|
||||
@@ -9,8 +9,8 @@ const RequestHandler = require('./RequestHandler');
|
||||
*/
|
||||
class SequentialRequestHandler extends RequestHandler {
|
||||
|
||||
constructor(restManager) {
|
||||
super(restManager);
|
||||
constructor(restManager, endpoint) {
|
||||
super(restManager, endpoint);
|
||||
|
||||
/**
|
||||
* Whether this rate limiter is waiting for a response from a request
|
||||
@@ -18,6 +18,12 @@ class SequentialRequestHandler extends RequestHandler {
|
||||
*/
|
||||
this.waiting = false;
|
||||
|
||||
/**
|
||||
* The endpoint that this handler is handling
|
||||
* @type {String}
|
||||
*/
|
||||
this.endpoint = endpoint;
|
||||
|
||||
/**
|
||||
* The time difference between Discord's Dates and the local computer's Dates. A positive number means the local
|
||||
* computer's time is ahead of Discord's.
|
||||
@@ -51,7 +57,7 @@ class SequentialRequestHandler extends RequestHandler {
|
||||
this.waiting = false;
|
||||
this.globalLimit = false;
|
||||
resolve();
|
||||
}, res.headers['retry-after'] + 500);
|
||||
}, Number(res.headers['retry-after']) + 500);
|
||||
if (res.headers['x-ratelimit-global']) {
|
||||
this.globalLimit = true;
|
||||
}
|
||||
|
||||
@@ -177,19 +177,13 @@ client.on('messageUpdate', (old, message) => {
|
||||
console.log('Message updated from', old.content, 'to', message.content);
|
||||
});
|
||||
|
||||
client.on('message', message => {
|
||||
if (message.content === '?perms?') {
|
||||
console.log(message.author.username, 'asked for perms in', message.channel.name, ':');
|
||||
console.log(message.channel.permissionsFor(message.author).serialize());
|
||||
} else if (message.content === '???test???') {
|
||||
message.channel.overwritePermissions('', {
|
||||
SEND_MESSAGES: false,
|
||||
})
|
||||
.then(() => {
|
||||
message.channel.overwritePermissions('', {
|
||||
SEND_MESSAGES: true,
|
||||
});
|
||||
})
|
||||
.catch(console.log);
|
||||
client.on('message', msg => {
|
||||
if (msg.content.startsWith('yoing')) {
|
||||
let startTime = Date.now();
|
||||
msg.channel.sendMessage("Let's see if this works")
|
||||
.then(message => {
|
||||
let endTime = Date.now();
|
||||
message.edit(`Ping took ${(endTime - startTime).toFixed(3)} ms. I think.`).catch(console.error);
|
||||
}).catch(console.error);
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user