Skip to content

NiceWaffel/poke-guesser-bot

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Poké-guesser Bot

Poké-guesser Bot is a discord bot that runs a Pokemon guessing game. The bot automatically tracks the score of participating users.

Features

Bot Roles

The bot has the following roles:

  • Admin
  • Mod
  • Player

You can learn more about the roles here.

Commands

Each role has access to certain commands. You can find out more from this wiki page.

Guessing / Catching

You can simply guess the pokémon name by clicking or tapping on Catch This Pokémon!-button below the message that shows the pokémon that needs to be guessed. After that a modal opens up that asks you for the name where you need to enter it and press or tap on Submit. catch

Channel configuration

You can set which channels the bot is allowed to reply in. The bot can listen and reply on all channels if no channels are set.

Leaderboard

Generate a Leaderboard of the top players.

Hosted by YOU on Docker

You can clone this repository to run it yourself through Docker Compose so you know exactly what this bot is doing. You can also fork this repo and make any modifications you want!

Multi-language Support

Poké-guesser Bot supports guesses in any language supported by Poké-API.

Installation

Discord Bot Setup

In order to use Poke-guesser-bot, you need to setup a discord bot first using the Discord Developer Portal.

  1. Login to the Discord Developer portal.
  2. Follow these instructions to setup the discord bot. Save the token from this step for later.
  3. Create the Bot Invite Link, but select the below permissions before using the invite link: bot-4

Create the .env and docker.env files

  1. Clone or download the repo.
  2. Create a .env file if it doesn't exist. Copy the contents of example.env into the .env
  3. Add the Discord Token to the .env file.
    • TOKEN: This is your discord token from previous steps.
  4. Add the Database configuration to the .env file. There are two options:
    1. If you use a Database URL, add it to the .env file as below:
      DATABASE_URL: "postgres://user:[email protected]:5432/dbname" (your string)
    2. If you want to pass the parameters separately to the Sequelize constructor, change the below fields in the .env file:
      • POSTGRES_HOST: Connection string for Postgres server. Leave as db if using Docker.
      • POSTGRES_USER & POSTGRES_PASSWORD: User/pass for postgres server. Doesn't need to be changed if using Docker.
  5. Copy the contents of .env into docker.env

Adding Slash Commands

The bot uses slash commands which need to be registered with discord.

  1. While still in the project directory, run npm install to install the required packages
  2. Then run node setupCommands.js to register slash commands for the bot with discord

Running the Bot

This bot was written to run locally or on docker with NodeJS and PostgreSQL and uses Env-Files for the senstive data that will get loaded in NodeJS as Environment Variables.

Run in Docker

Important: You must have already set up a Discord bot on the Discord Developer portal. If you haven't, follow the instructions in this section first.

  1. Set up Docker if you haven't already.
  2. Run the bot with Docker Compose. You can do this by running either:
    sudo docker-compose up -d
    or if that doesn't work, then try:
    sudo docker-compose --env-file docker.env up -d

Run Locally

You can also run the bot using node, but the database has to be set up manually.

  1. Set up your database if you haven't already. The bot was built using Postgres but other DBs can work if they allow a connection string with user/pass. If you don't use the DATABASE_URL environment variable, you'd have to adjust the dialect for Sequelize in data/postgres.js.
  2. Run the command:
    node index.js
    or
    npm start

Technology

PostgreSQL

The database.

node.js

This project is written entirely using JavaScript in the Node.JS runtime environment.

discord.js

All interactions with discord were handled thanks to the discord.js library.

Poké-API

This bot would not be possible without PokeAPI. This API provided a list of all pokémon, including their variants, as well as sprites that were instrumental in building this Poke-guesser Bot.

Replit (No Longer Supported)

This bot was originally written in Replit, but has since been rewritten to run in a Docker container instead. Replit is no longer supported.

Contributions

To contribute to the bot, please fork this repository and open up a pull request to merge changes back into the repository.

If your change adds a feature, please include proof that the feature is working as intended. Make sure you also test the bot to ensure other features aren't broken. I will expand this section soon to be more detailed, and add Pull Request templates to follow as well.

Contribution guideline coming soon!

License

MIT

Additional Credit

Code Contributions by Wissididom

Replit Cover Image by PIRO4D from Pixabay

Leaderboard Image by Aurelia Candeloro

About

Discord bot that lets you guess pokemon

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 99.7%
  • Other 0.3%