Bot Automation Pt. 1 - Discord Bot

Part 1 in automating launching bots to heroku using terraform.

Bot Automation Pt. 1 - Discord Bot

I'm supposed to be writing this for discord bots in python but I want to test my heroku terraform thing so here we are using javascript. Documentation for the discord.js package can be found here. These maintainer(s) have written a nice guide on creating a bot from discord developers so please read this.

Assumptions

  • You understand JS/node on a basic level
  • Node is installed on your computer
  • You have a discord "bot" token

Discord Bot Files

We will constantly be running this bot from heroku. My suggestion as we get started is you have your project folder, and then inside have a bot and terraform folder. This goes inside of the bot folder.

1. procfile

worker: node index.js

2. package.json

{
  "name": "terraform_bot_test",
  "version": "1.0.0",
  "description": "discord bot to go with terraform test",
  "main": "index.js",
  "dependencies": {
    "discord.js": "^12.5.3"
  },
  "devDependencies": {},
  "scripts": {
    "test": "test",
    "start": "node index.js"
  },
  "keywords": [
    "bot",
    "discord",
    "terraform"
  ],
  "author": "Backpack Media LLC",
  "license": "ISC"
}

3. index.js

const Discord = require("discord.js")

const discord = new Discord.Client()

discord.login("DISCORD_TOKEN_HERE")
discord.on('ready', () => {
    console.log('I am ready!')
})

discord.on("message", msg => {
    if (msg.content === '!bored') {
        msg.channel.send('Do 10 pushups')
    }
  })

4. Take this time to run npm install inside the bot folder and grab some water

5. Once everything is clear run node index.js. You should see the "I am ready! message.

6. Go to your discord server and post !bored

7. Rejoice!!!!

Now that we know our bot is working locally we need to get it on heroku. Like I mentioned before, to be fancy we shall use terraform. See you in the next step.


Part 2: Setup Heroku

Part 3: Combine everything