Azuma
A package that actually syncs your ratelimits across all your clusters on Discord.JS
The Shipgirl Project; Azuma
Features
✅ An easy drop in solution for those who wants globally synced ratelimits
✅ Follows the original Discord.JS rest manager, so no breaking changes needed
✅ Supports Discord.JS v13
NOTE
You need to use Kurasuta to make this work as this package depends on it
v2.x.x drops support for Discord.JS v12
Installation
npm i --save azuma
Documentation
https://deivu.github.io/Azuma/?api
TODO
-
Support for options.invalidRequestWarningInterval
-
Support for options.restGlobalRateLimit
-
Support for options.rejectOnRateLimit
Support
https://discord.gg/FVqbtGu #development
channel
Example
Running Azuma is the same with Kurasuta, except on you need to change your index.js based on example below
Example of index.js
const { join } = require('path');
const { Azuma } = require('azuma');
const YourBotClient = require('./YourBotClient.js')
const KurasutaOptions = {
client: YourBotClient,
timeout: 90000,
token: 'idk'
};
const AzumaOptions = {
handlerSweepInterval: 150000,
hashInactiveTimeout: 300000,
requestOffset: 500
};
const azuma = new Azuma(join(__dirname, 'YourBaseCluster.js'), KurasutaOptions, AzumaOptions);
azuma.manager.on('shardReady', id => console.log(`Shard ${id} is now ready`));
azuma.spawn();
Pro Tip
Azuma also exposes when a request was made, when a response from a request is received, and if you hit an actual 429 via an event emitter, which you can use to make metrics on
const { Client } = require('discord.js');
class Example extends Client {
constructor(...args) {
super();
this.rest.on('onRequest', ({ request }) => );
this.rest.on('onResponse', ({ request, response }) => );
this.rest.on('onTooManyRequest', ({ request, response }) => );
}
}
WARNING: DO NOT CHANGE OR RUN ANY FUNCTION FROM THE PARAMETERS. It's designed to be used as read-only values
Example Bot
https://github.com/Deivu/Kongou
Based from my Handling from @Kashima
, Made with ❤ by @Sāya#0113