require("dotenv").config();
const { WebSocketManager, WebSocketShardEvents, WorkerShardingStrategy } = require('@discordjs/ws');
const { REST } = require('@discordjs/rest');
const { Routes } = require('discord-api-types/v10');
const rest = new REST({ version: "10" }).setToken(process.env.TOKEN);
// This example will spawn Discord's recommended shard count, all under the current process.
const manager = new WebSocketManager({
token: process.env.TOKEN,
intents: 0, // for no intents
fetchGatewayInformation() {
return rest.get(Routes.gatewayBot());
},
buildStrategy: (manager) =>
new WorkerShardingStrategy(manager, {
shardsPerWorker: 2,
workerPath: './worker.js',
// Optionally, if you have custom messaging, like for analytic collection, you can use this:
async unknownPayloadHandler(data) {
// handle data here :3
},
}),
// uncomment if you have zlib-sync installed and want to use compression
// compression: CompressionMethod.ZlibSync,
// alternatively, we support compression using node's native `node:zlib` module:
// compression: CompressionMethod.ZlibNative,
});
manager.on(WebSocketShardEvents.Dispatch, (event) => {
// Process gateway events here.
});
manager.connect().catch();
require("dotenv").config();
const { WebSocketManager, WebSocketShardEvents, WorkerShardingStrategy } = require('@discordjs/ws');
const { REST } = require('@discordjs/rest');
const { Routes } = require('discord-api-types/v10');
const rest = new REST({ version: "10" }).setToken(process.env.TOKEN);
// This example will spawn Discord's recommended shard count, all under the current process.
const manager = new WebSocketManager({
token: process.env.TOKEN,
intents: 0, // for no intents
fetchGatewayInformation() {
return rest.get(Routes.gatewayBot());
},
buildStrategy: (manager) =>
new WorkerShardingStrategy(manager, {
shardsPerWorker: 2,
workerPath: './worker.js',
// Optionally, if you have custom messaging, like for analytic collection, you can use this:
async unknownPayloadHandler(data) {
// handle data here :3
},
}),
// uncomment if you have zlib-sync installed and want to use compression
// compression: CompressionMethod.ZlibSync,
// alternatively, we support compression using node's native `node:zlib` module:
// compression: CompressionMethod.ZlibNative,
});
manager.on(WebSocketShardEvents.Dispatch, (event) => {
// Process gateway events here.
});
manager.connect().catch();