Skip to content

A discord bot for announcing RPG games with automated sign up

License

Notifications You must be signed in to change notification settings

Solysh/rpg-schedule

 
 

Repository files navigation

RPG Schedule

A discord bot for posting game announcements for RPGs. Features include:

  • Web interface for posting and editing game announcements
  • Automated or manual sign ups and automated waitlisting
  • Automated rescheduling (daily, weekly, biweekly, or monthly)
  • Automated reminders
  • RSS Feed

Note: Games are automatically pruned 48 - 72 hours after the scheduled time. Or you can delete them manually.

Screenshots

Inviting the discord bot

You can invite the discord bot to your server with the following link:

https://www.rpg-schedule.com/

Command List

Command                                                     Default                   Description
General Commands
!schedule Displays the help menu
!schedule help Displays the help menu
General Configuration
!schedule configuration Get the bot configuration
!schedule role role name All Roles Assign a role as a prerequisite for posting games
!schedule manager-role role name Server Admins Assign a role to allow managing all server games
!schedule password password disabled Configure a password for posting games
!schedule password Remove the password
!schedule lang en en (English) Set the bot's language.
Bot Configuration
!schedule embeds on/off on Use discord embeds for announcements
!schedule embed-color color #2196f3 Set a discord embed color. Can be a color name like red or a hexadecimal color like #2196f3
!schedule embed-user-tags on/off off Include user tags in announcement embeds (Can occasionally glitch)
!schedule embed-user-tags-above on/off on Add mentions above the embed. Unlike user tags inside the embed, user tags outside the embed will trigger a notification and highlight the post.
!schedule emoji-sign-up ➕ Set the emoji used for automated sign up
!schedule emoji-drop-out ➖ Set the emoji used for automated sign up
!schedule toggle-drop-out Off Enable/disable the ability for players to drop out
!schedule prefix-char ? ! Set the prefix character for sending bot commands
Game Configuration
!schedule add-channel #channel-name first text channel Add a channel where games are posted (recommended)
!schedule remove-channel #channel-name Remove a channel where games are posted
!schedule pruning on/off off Automatically delete old game announcements. As noted above, games over 48 hours past their scheduled date are automatically pruned from the database. However, by default the announcements are not.
!schedule private-reminders Off Toggle whether the game reminders are sent to private messages.
!schedule reschedule-mode repost Available modes:
  • repost - Creates a new announcement post
  • update - Updates the original announcement post
Usage
!schedule link Retrieve the link for posting games

Rescheduling

Here's how rescheduling works:

You enter: 3/20 (Fri) 9am, Reschedule: Weekly, Friday

  • First announcement says 3/20 (Fri) 9am
  • Next announcement says 3/27 (Fri) 9am
  • Next announcement says 4/3 (Fri) 9am

You enter 3/25 (Wed) 9am, Reschedule: Weekly, Friday

  • First announcement says 3/25 (Wed) 9am
  • Next announcement says 3/27 (Fri) 9am
  • Next announcement says 4/3 (Fri) 9am

The first announcement is always on the date you entered. Any following announcements will be based on the day of the week selected.

Each next announcement will be posted X hours after the date/time of the current announcement, where X is the duration of the game. If no duration is entered, it defaults to 0 hours.

How to Develop the Bot/API Layer

  • install git, node, heroku-cli, and mongodb server
  • Run npm install
  • Set up a discord bot application with permissions and a token
    • permissions:
      • send messages
      • manage messages
      • embed links
      • read message history
      • add reactions
    • OAuth2 redirect
      • http://localhost:5000/login
        • guilds
        • identify
  • Copy .env template to .devenv and fill out the values
  • Create a file called dev (no extension) with the following content:
    require('dotenv').config({ path: './.devenv' });
    require('./app/index.js');
  • Start mongodb
  • Run npm run dev

How to Develop the UI Layer

Visit the UI Repository for more information.

About the bot

The discord bot is deployed with Heroku as a Node.js and discord.js application and MongoDB for data storage. When an update is pushed to this repository, the update is automatically deployed to Heroku.

Discord Server Discord Change Log

Donate: Patreon | PayPal | Cash App | My Website

About

A discord bot for announcing RPG games with automated sign up

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 67.0%
  • TypeScript 31.9%
  • Other 1.1%