diff --git a/package.json b/package.json index bc6c8ccd2..26976fc20 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,8 @@ "scripts": { "start": "node server.js", "dev": "node -r dotenv/config server.js", + "dev-sharded": "node -r dotenv/config server-manager.js", + "dev-client": "node -r dotenv/config server-client.js", "eslint": "eslint --fix ." }, "dependencies": { diff --git a/server-client.js b/server-client.js new file mode 100644 index 000000000..dfafed7a3 --- /dev/null +++ b/server-client.js @@ -0,0 +1,10 @@ +// Create a single client + +const DiscordRSS = require('./index.js') +const drss = new DiscordRSS.Client() // Override default config values here + +drss.login(require('./config.js').bot.token, true) + +drss.on('finishInit', () => { + // Do whatever once the bot has finished initialization +}) diff --git a/server-manager.js b/server-manager.js new file mode 100644 index 000000000..4f28d519b --- /dev/null +++ b/server-manager.js @@ -0,0 +1,12 @@ +// Only create the Sharding Manager + +const DiscordRSS = require('./index.js') +const Discord = require('discord.js') +const shardingManager = new Discord.ShardingManager('./server-shard.js', { respawn: false }) +const shardedDiscordRSSClient = new DiscordRSS.ClientSharded(shardingManager, { readFileSchedules: true, setPresence: true, forceSharded: true }) + +shardedDiscordRSSClient.run() + +shardedDiscordRSSClient.on('finishInit', () => { + // Do whatever once the sharding manager has finished spawning and waiting for all shards to finish initialization +}) diff --git a/server-shard.js b/server-shard.js new file mode 100644 index 000000000..434da0f40 --- /dev/null +++ b/server-shard.js @@ -0,0 +1,6 @@ +// Create a single client + +const DiscordRSS = require('./index.js') +const drss = new DiscordRSS.Client() // Override default config values here + +drss.login(require('./config.js').bot.token, true) diff --git a/server.js b/server.js index ef5556de9..36eaf2d17 100644 --- a/server.js +++ b/server.js @@ -1,3 +1,5 @@ +// This logic that stems from this file will automatically create a sharding manager and shards if necessary, if the original client cannot handle the number of guilds + const DiscordRSS = require('./index.js') const config = require('./config.js')