diff --git a/.vscode/settings.json b/.vscode/settings.json index 9a808967a..c04fd7c61 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -15,6 +15,7 @@ "kranvagn", "Leaderboard", "leaderboards", + "outdir", "outfile", "ownedtanks", "playerachievements", diff --git a/scripts/build.ts b/scripts/build.ts index 9905dda95..5be7d5c57 100644 --- a/scripts/build.ts +++ b/scripts/build.ts @@ -1,10 +1,10 @@ import { build } from 'esbuild'; -console.log('Building bot...'); +const FILES = ['bot', 'index']; await build({ - entryPoints: ['src/bot.ts'], - outfile: 'dist/bot/index.cjs', + entryPoints: FILES.map((file) => `src/${file}.ts`), + outdir: 'dist/bot', platform: 'node', tsconfig: 'tsconfig.esbuild.json', @@ -14,6 +14,9 @@ await build({ }, format: 'cjs', jsx: 'transform', + outExtension: { + '.js': '.cjs', + }, bundle: true, sourcemap: true, @@ -23,5 +26,3 @@ await build({ logLevel: 'info', }); - -console.log('Built bot'); diff --git a/src/core/blitzstars/tankopedia.ts b/src/core/blitzstars/tankopedia.ts index 23d816f22..70d4d4f1b 100644 --- a/src/core/blitzstars/tankopedia.ts +++ b/src/core/blitzstars/tankopedia.ts @@ -21,7 +21,6 @@ export interface Tankopedia { [id: number]: TankopediaEntry | undefined; } -console.log('Caching tankopedia...'); export const tankopedia = fetch( context === 'bot' ? 'https://www.blitzstars.com/bs-tankopedia.json' diff --git a/src/core/discord/manager.ts b/src/core/discord/manager.ts new file mode 100644 index 000000000..700b47607 --- /dev/null +++ b/src/core/discord/manager.ts @@ -0,0 +1,6 @@ +import { ShardingManager } from 'discord.js'; +import { secrets } from '../blitzkrieg/secrets'; + +export const manager = new ShardingManager(`${__dirname}/bot.cjs`, { + token: secrets.DISCORD_TOKEN, +}); diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 000000000..b68ca4c46 --- /dev/null +++ b/src/index.ts @@ -0,0 +1,8 @@ +import { manager } from './core/discord/manager'; + +manager.on('shardCreate', (shard) => { + console.log(`🟡 Launching shard ${shard.id}`); + shard.on('ready', () => console.log(`🟢 Shard ${shard.id} launched`)); +}); + +manager.spawn();