Skip to content

NorseBot is a multipurpose discord bot written in TypeScript with uses in ticket management, moderation, fun, and streamer integrations. This bot is in development for Northern Kentucky University Esports.

License

Notifications You must be signed in to change notification settings

literallyjustroy/norse-bot

Repository files navigation

NorseBot Logo

NorseBot

NorseBot is a multipurpose discord bot with uses in ticket management, moderation, fun, and streamer integrations. Click the button below to invite NorseBot to your own discord server.

Commands

The default prefix is '!', however, this can be set to any prefix desired. Use !help to get a full list of commands, or !help COMMAND_NAME_HERE to get information about a specific command/feature.

Help Page 1 Help Page 2
Help1 Help2

Applications

NorseBot lets you to create applications that allow members of your discord server to apply for roles.

Create an Application

First create an application for your discord members to apply to with !app new.

Application Creation

Set a channel to review submitted applications in

Next set the reviewing channel with !app reviewchannel #CHANNEL_MENTION_HERE. This is the channel where submitted applications will reside. You will be able to either accept or decline their role request, and they will be messaged regarding the update.

Application Review

Set a channel to place the application message

Next set the application channel with !app applychannel #CHANNEL_MENTION_HERE. Users will be able to react in this channel to fill out the applications you create.

Applications Preview

Tickets

Discord users can create a ticket by entering !ticket create TICKET_TITLE_HERE in any text channel (This message is removed by NorseBot after a short delay). The first time a user creates a ticket a new Category will be setup with a ticket-logs channel. This ticket-logs channel will save the messages from a ticket once it is closed.

Ticket example

Ticket permissions

By default, the only people who can see the ticket channel created are administrators and the person who opened the ticket. If you want other users to be able to see tickets the moment they are created, modify the Tickets category permissions to include additional roles/users.

Streaming

NorseBot lets you set up streaming notifications for members with a certain role. This requires the member has their twitch integrated with their discord; the notification will show up in the channel once discord recognizes they are streaming.

Streaming example

Set a streaming notification channel

First set the notification channel with !stream channel #CHANNEL_MENTION_HERE. This is the channel where NorseBot will post links to streams when members with the streaming role start streaming.

Streaming Preview

Set a streamer role

Finally, set the stream role with !stream role @ROLE_MENTION_HERE. When users with this role start streaming, NorseBot will post a link to their stream in the streaming notification channel set previously.

Hosting this bot (For developers)

You can also host this bot in your own NodeJS Environment. When on Linux, using PM2 is highly recommended.

  1. Clone this repository
  2. Install NodeJS (at least v12)
  3. Navigate to the project root directory
  4. Install dependencies: npm install using cmd prompt/terminal
  5. Define the environment variable BOT_TOKEN (containing your Build-A-Bot token)
  6. Define the environment variable DB_LOGIN_URL (Example: DB_LOGIN_URL=mongodb+srv://USER:PASS@norsebot.mongodb.net) (urlencode USER/PASS on linux)
  7. Define the environment variable DB_NAME (name of the database, like dev, prod, etc.)
  8. If you would like to use the get random image command, define the envionronment variable UNSPLASH_TOKEN and include an Unsplash Developer Token.
  9. Run npm start in cmd prompt/terminal

Testing / Development

  • Run npm dev to run the bot without compiling it into JavaScript (slightly more memory intensive)
  • Run npm test in cmd prompt/terminal for unit testing

About

NorseBot is a multipurpose discord bot written in TypeScript with uses in ticket management, moderation, fun, and streamer integrations. This bot is in development for Northern Kentucky University Esports.

Topics

Resources

License

Stars

Watchers

Forks