Avec discord.js, initialisez le SDK dans le fichier exécuté par chaque shard, pas dans le ShardingManager. Le SDK détecte client.shard et seule la shard 0 envoie les données.
bot.js
const { Client, GatewayIntentBits } = require('discord.js');
const { BotillonClient } = require('@botillon/sdk');
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
new BotillonClient({
token: process.env.BOTILLON_TOKEN,
discordClient: client,
});
client.login();- La shard 0 additionne client.shard.fetchClientValues("guilds.cache.size").
- Le nombre de shards est envoyé automatiquement.
- Si toutes les shards ne sont pas prêtes, l’envoi suivant réessaie.
- Sans ShardingManager, le SDK utilise client.guilds.cache.size.