Skip to content

zS1L3NT/ts-discord-reminder

Repository files navigation

Reminder Bot

License Languages Top Language Commit Activity Last commit

Reminder Bot is a Discord bot that can store reminders you want to keep, in the server that you add it too. Reminder bot needs a dedicated text channel to place all reminders into. For every reminder, Reminder bot will update the Due in on the embed to let you know how soon the reminder is due in. Reminder Bot was the first bot among all my Discord Bots to make use of a Bot Cache and Guild Cache system, which lead to the creation of Nova Bot

This is an example of a reminder that Reminder bot stores
Example

Motivation

I build this bot because I wanted my whole class to be able to see all upcoming assignments due from Discord. Furthermore, only one person needs to add and edit reminders so everyone can see the most up-to-date assignment specifications.

Features

  • Discord Commands (Interactivity)
    • Reminders
      • /create - Create a draft
      • /show - Show the current Reminder draft
      • /delete - Delete a Reminder or draft
      • /discard - Discard the Reminder draft
      • /post - Convert a Reminder draft to a Reminder that appears in the reminders channel
      • /title - Change a title of a Reminder or draft
      • /ping-add - Add the users to ping when the reminder is due soon to either a Reminder or draft
      • /ping-remove - Remove the users to ping when the reminder is due soon to either a Reminder or draft
      • /priority - Change the priority (how often the bot pings the users in pinging) of a Reminder or draft
      • /due-date - Change the due date of a Reminder or draft
      • /detail-add - Add a line of details to a Reminder or draft
      • /detail-remove - Remove a line of details from a Reminder or draft
    • Admin
      • /set ping-channel - Set the channel where Reminder bot will ping users about reminders
      • /set reminders-channel - Set the dedicated channel for Reminder bot to post reminders in
      • /refresh reminders-channel - Refresh the reminders channel
  • Reminders and Drafts
    • Add reminders by creating a Reminder draft first, which is a Reminder but with in need of modification.
    • Edit the draft with commands until you're satisfied and use /post to convert the draft to a full Reminder
  • Reminders Channel
    • Reminder bot needs a dedicated text channel to post reminders in. Reminder bot will automatically remove any messages that are irrelevant.
  • Ping Channel
    • Reminder bot will ping users in the ping channel, which can be set with /set ping-channel. Depending on the priority of the reminder, Reminder bot will ping users at different times. These are the times reminder bot will ping about a reminder:
      • High Priority
        • 7 days before the reminder is due
        • 1 day before the reminder is due
        • 12 hours before the reminder is due
        • 2 hours before the reminder is due
        • 1 hour before the reminder is due
        • 30 minutes before the reminder is due
        • The moment the reminder is due
      • Medium Priority
        • 1 day before the reminder is due
        • 2 hours before the reminder is due
        • The moment the reminder is due
      • Low Priority
        • The moment the reminder is due
  • Message Commands
    • Other than Using slash commands, all commands above can also be triggered by messages, where / is replaced by the defined prefix in the server.
    • This defined prefix can only be changed with the /set-prefix command
    • e.g. If the prefix is defined as ., .post will do the same thing as /post
    • Aliases can be set for all message commands to make using message commands easier. .post can have the alias .p

Usage

Copy the .env.example file to .env then fill in the file with the correct project credentials.

$ npm i
$ npm run dev

Built with

  • NodeJS
    • TypeScript
      • @types/deep-equal
      • @types/luxon
      • @types/node
      • ts-node
      • typescript
    • DiscordJS
      • discord.js
    • Prisma
      • @prisma/client
      • prisma
    • Miscellaneous
      • after-every
      • colors
      • deep-equal
      • dotenv
      • luxon
      • no-try
      • nova-bot
      • tracer

About

Discord bot to remind users about upcoming events like a calendar

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages