Git Product home page Git Product logo

literallyjustroy / norse-bot Goto Github PK

View Code? Open in Web Editor NEW
5.0 1.0 0.0 439 KB

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: MIT License

TypeScript 100.00%
discord-js discord-bot discord typescript nodejs ticket streaming-notifications bot ticket-management ticket-permissions

norse-bot's Introduction

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:[email protected]) (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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.