225 lines
4.5 KiB
Markdown
225 lines
4.5 KiB
Markdown
![The Ochulus logo](logo.png)
|
|
|
|
The Ochulus is a simple personal discord bot used for tracking games completed during a 100 Game Challenge.
|
|
|
|
# Requirements
|
|
|
|
## Software
|
|
|
|
- Node.js (version v21.2.0 or later)
|
|
- npm (version 10.2.3 or later)
|
|
|
|
## API Keys
|
|
|
|
- Discord Developer Application
|
|
- IGDB Developer Application
|
|
|
|
# How to deploy
|
|
|
|
0. Create accounts and install software
|
|
1. [Download and install Node.js and npm](https://nodejs.org/en).
|
|
1. [Create Discord Developer Application](https://discord.com/developers/applications).
|
|
2. [Create IGDB Developer Application](https://www.igdb.com/api).
|
|
1. Create `.env` using `.env.template`
|
|
1. Populate `discordClientId`, `discordGuildId` and `discordToken` with your Discord Developer Application details.
|
|
2. Populate `igdbClientId` and `igdbClientSecret` with your IGDB Developer Application details.
|
|
2. Run `npm install` to install Node Packages
|
|
3. Run `node .\dbInit.js` to create database.
|
|
4. Run `node .\deploy-commands.js` to deploy commands to your guild
|
|
5. Run `node .\index.js` to run the bot.
|
|
|
|
# Commands
|
|
|
|
A list of current commands that can be accessed by all users.
|
|
|
|
## /beatgame
|
|
|
|
Log a beat game towards the 100 Game Challenge.
|
|
|
|
**Parameters:**
|
|
|
|
*Note: One parameter is required.*
|
|
|
|
- **Required**
|
|
- `gamename` - The name of the game.
|
|
- `gameid` - The IGDB game ID.
|
|
|
|
## /beatlist
|
|
|
|
Show a list of games the user has beaten.
|
|
|
|
**Parameters:**
|
|
|
|
- *Optional*
|
|
- `user` - The username of a user to check.
|
|
|
|
## /currentlyplaying
|
|
|
|
Show the list of games the user are currently playing.
|
|
|
|
**Parametes:**
|
|
- *Optional*
|
|
- `user` - The username of a user to check.
|
|
|
|
## /deletebeatengame
|
|
|
|
Deletes a game from the users beaten games.
|
|
|
|
**Parameters:**
|
|
|
|
*Note: If no parameter is supplied, the latest beat game is deleted.*
|
|
|
|
- *Optional*
|
|
- `beatgamenumber` - The number of the beat game entry to delete.
|
|
|
|
## /deleteplannedgame
|
|
|
|
Deletes a game from the users planned games.
|
|
|
|
**Parametes:**
|
|
- *Optional*
|
|
- `currentgamenumber` - The number of the current game entry to delete.
|
|
|
|
## /deleteplayinggame
|
|
|
|
Deletes a game from the users currently playing games.
|
|
|
|
**Parametes:**
|
|
- *Optional*
|
|
- `currentgamenumber` - The number of the current game entry to delete.
|
|
|
|
## /estimatedfinishdate
|
|
|
|
Get an estimated date as to when a user will finish the 100 games challenge.
|
|
|
|
**Parametes:**
|
|
- *Optional*
|
|
- `user` - The username of a user to check.
|
|
|
|
## /gamedetails
|
|
|
|
Get the details of a game from the IGDB database.
|
|
|
|
**Parameters:**
|
|
|
|
*Note: Only one parameter is required.*
|
|
|
|
- **Required**
|
|
- `gamename` - The name of the game.
|
|
- `gameid` - The IGDB game ID.
|
|
|
|
## /globalbeatlist
|
|
|
|
Show a list of all games beaten for the 100 games challenge in chronological order.
|
|
|
|
## /info
|
|
|
|
Get info on the bot.
|
|
|
|
## /leaderboard
|
|
|
|
Shows the leaderboard for the 100 Game Challenge.
|
|
|
|
## /plangame
|
|
|
|
Log a planned game into a list of planned games.
|
|
|
|
**Parameters:**
|
|
|
|
*Note: One parameter is required.*
|
|
|
|
- **Required**
|
|
- `gamename` - The name of the game.
|
|
- `gameid` - The IGDB game ID.
|
|
|
|
## /plannedgames
|
|
|
|
Show a list of games the user has planned.
|
|
|
|
**Parameters:**
|
|
|
|
- *Optional*
|
|
- `user` - The username of a user to check.
|
|
|
|
## /och
|
|
|
|
Responds "*och*".
|
|
|
|
## /randomgame
|
|
|
|
Get a random game from the IGDB database.
|
|
|
|
**Parameters:**
|
|
|
|
- *Optional*
|
|
- `madness` - Remove restrictions on the games the bot can search for.
|
|
|
|
## /randomplannedgame
|
|
|
|
Get a random planned game from the list of a users planned games.
|
|
|
|
**Parameters:**
|
|
|
|
- *Optional*
|
|
- `user` - The username of a user to check.
|
|
|
|
## /recentbeat
|
|
|
|
Get the most recent game a given user has beaten.
|
|
|
|
**Parameters:**
|
|
|
|
- *Optional*
|
|
- `user` - The username of a user to check.
|
|
|
|
## /recentplanned
|
|
|
|
Get the most recent game a given user has planned.
|
|
|
|
**Parameters:**
|
|
|
|
- *Optional*
|
|
- `user` - The username of a user to check.
|
|
|
|
## /recentplaying
|
|
|
|
Get the most recent game a given user has started playing.
|
|
|
|
**Parameters:**
|
|
|
|
- *Optional*
|
|
- `user` - The username of a user to check.
|
|
|
|
## /register
|
|
|
|
Manually registers the user into the 100 Games Challenge.
|
|
|
|
## /searchgames
|
|
|
|
Searches the IGDB database for a list of matching games.
|
|
|
|
**Parameters:**
|
|
|
|
- **Required**
|
|
- `gamename` - The name of the game.
|
|
|
|
## /startplaying
|
|
|
|
Log a game into a list of currently playing games.
|
|
|
|
**Parameters:**
|
|
|
|
*Note: One parameter is required.*
|
|
|
|
- **Required**
|
|
- `gamename` - The name of the game.
|
|
- `gameid` - The IGDB game ID.
|
|
|
|
## /user
|
|
|
|
Get the users info for the 100 Game Challenge
|
|
|
|
**Parameters:**
|
|
|
|
- *Optional*
|
|
- `user` - The username of a user to check. |