diff options
Diffstat (limited to 'docs/guides/ecosystem/discordjs.md')
-rw-r--r-- | docs/guides/ecosystem/discordjs.md | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/docs/guides/ecosystem/discordjs.md b/docs/guides/ecosystem/discordjs.md new file mode 100644 index 000000000..7d9541861 --- /dev/null +++ b/docs/guides/ecosystem/discordjs.md @@ -0,0 +1,77 @@ +--- +name: Create a Discord bot +--- + +Discord.js works [out of the box](https://bun.sh/blog/bun-v0.6.7) with Bun. Let's write a simple bot. First create a directory and initialize it with `bun init`. + +```bash +mkdir my-bot +cd my-bot +bun init +``` + +--- + +Now install Discord.js. + +```bash +bun add discord.js +``` + +--- + +Before we go further, we need to go to the [Discord developer portal](https://discord.com/developers/applications), login/signup, create a new _Application_, then create a new _Bot_ within that application. Follow the [official guide](https://discordjs.guide/preparations/setting-up-a-bot-application.html#creating-your-bot) for step-by-step instructions. + +--- + +Once complete, you'll be presented with your bot's _private key_. Let's add this to a file called `.env.local`. Bun automatically reads this file and loads it into `process.env`. + +{% callout %} +This is an example token that has already been invalidated. +{% /callout %} + +```txt#.env.local +DISCORD_TOKEN=NzkyNzE1NDU0MTk2MDg4ODQy.X-hvzA.Ovy4MCQywSkoMRRclStW4xAYK7I +``` + +--- + +Be sure to add `.env.local` to your `.gitignore`! It is dangerous to check your bot's private key into version control. + +```txt#.gitignore +node_modules +.env.local +``` + +--- + +Now let's actually write our bot in a new file called `bot.ts`. + +```ts#bot.ts +// import discord.js +import {Client, Events, GatewayIntentBits} from 'discord.js'; + +// create a new Client instance +const client = new Client({intents: [GatewayIntentBits.Guilds]}); + +// listen for the client to be ready +client.once(Events.ClientReady, (c) => { + console.log(`Ready! Logged in as ${c.user.tag}`); +}); + +// login with the token from .env.local +client.login(process.env.DISCORD_TOKEN); +``` + +--- + +Now we can run our bot with `bun run`. It may take a several seconds for the client to initialize the first time you run the file. + +```bash +$ bun run bot.ts +Ready! Logged in as my-bot#1234 +``` + +--- + +You're up and running with a bare-bones Discord.js bot! This is a basic guide to setting up your bot with Bun; we recommend the [official Discord docs](https://discordjs.guide/) for complete information on the `discord.js` API. |