From ab15cd0cf04b3d66dff815aeb6f6655640e3ea0e Mon Sep 17 00:00:00 2001 From: moonstar-x Date: Wed, 19 Jan 2022 15:22:42 -0500 Subject: [PATCH] Created a sharded-client script. --- package.json | 3 ++- src/sharded-client.js | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 src/sharded-client.js diff --git a/package.json b/package.json index 6322822a..2753bf90 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,8 @@ "dev": "nodemon --exec npm start", "lint:errors-only": "node_modules/.bin/eslint src --quiet", "lint": "node_modules/.bin/eslint src", - "deploy": "node ./src/command-deployer.js" + "deploy": "node ./src/command-deployer.js", + "start-sharded": "node ./src/sharded-client.js" }, "engines": { "node": ">=16.6" diff --git a/src/sharded-client.js b/src/sharded-client.js new file mode 100644 index 00000000..b9289aef --- /dev/null +++ b/src/sharded-client.js @@ -0,0 +1,21 @@ +const path = require('path'); +const logger = require('@greencoast/logger'); +const { ShardingManager } = require('discord.js'); +const { ConfigProvider } = require('@greencoast/discord.js-extended'); + +// Just need the token in here, the rest will be handled by the actual client. +const config = new ConfigProvider({ + env: process.env, + configPath: path.join(__dirname, '../config/settings.json'), + types: { + TOKEN: 'string' + } +}); + +const manager = new ShardingManager(path.join(__dirname, './app.js'), { token: config.get('TOKEN') }); + +manager.on('shardCreate', (shard) => { + logger.info(`Launched shard with ID: ${shard.id}`); +}); + +manager.spawn({ amount: 2 });