Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | import path from "node:path";
import { Logger } from "@nestjs/common";
import { ConfigService } from "@nestjs/config";
import { ShardingManager as _ShardingManager } from "discord.js";
import { Config } from "../modules/shared/config/types";
export class ShardingManager extends _ShardingManager {
public constructor(private readonly config: ConfigService) {
super(path.join(__dirname, "bot.js"), {
token: config.getOrThrow<Config["Discord"]>("Discord").Token,
shardList: "auto",
respawn: true,
mode: "process",
});
}
private readonly logger = new Logger(ShardingManager.name);
public async init() {
this.spawn();
this.on("shardCreate", (shard) => {
shard.on("reconnecting", () => {
this.logger.warn(`Reconnecting shard: [${shard.id}]`);
});
shard.on("spawn", () => {
this.logger.log(`Spawned shard: [${shard.id}]`);
});
shard.on("ready", () => {
this.logger.log(`Shard [${shard.id}] is ready`);
});
shard.on("death", () => {
this.logger.fatal(`Died shard: [${shard.id}]`);
});
shard.on("error", (err) => {
this.logger.error(`Error in shard [${shard.id}] with : ${err} `);
shard.respawn();
});
});
}
}
|