/suitbot

A lightweight music and general purpose bot with dashboard that uses slash commands and integrations to be as user-friendly as possible!

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

logo

Invite Discord License

This repository has been archived in favor of the newer and improved, but slightly stripped down version Kalliope.

SuitBot

A lightweight music and general purpose bot with dashboard, that uses slash commands and buttons to be as user-friendly as possible!

Dashboard Progress Board Discord Server

Table of Contents

Invite

Disclaimer: The bot is still in development, so expect some bugs or features that might not work 100% yet. Please report any bugs or suggestions via the respective commands.

Invite

Features

  • Slash commands

    • Use commands directly integrated in Discord
    • No more guessing with variables
    • Quick overview of all commands
  • Music

    • Supports many sources (YouTube, Spotify, Bandcamp, SoundCloud, Twitch, Vimeo or any other HTTP source)
    • Supports playlists and livestreams
    • Interactive Web Dashboard
    • Pause, Skip, Remove, Volume and more commands
  • Language support

    • Supports multiple languages
    • Change the language for your server using /language
    • Add your own language by contacting me on the Discord server
  • Activities

    • Create invites for Discord Activities
    • YouTube Together and a lot of fun minigames
    • Have fun with everyone in your voice channel
  • Basic Moderation

    • Info commands (User, Server, Avatar)
    • Kick, Ban, Move, Slowmode and more commands
    • Permission check on commands

Commands

SuitBot uses slash commands to integrate itself into the server. You can easily access its commands directly by typing / in your chat window.

Show all commands

General

Command Description
/activity Creates a Discord activity.
/dashboard Sends a link to the dashboard.
/help Replies with help on how to use this bot.
/info Shows info about the bot.
/invite Sends an invite link for the bot.
/language Changes the bots language.
/ping Replies with the current latency.
/serverinfo Shows info about the server.
/userinfo Shows info about a user.

Music

Command Description
/clear Clears the queue.
/filter Sets filter modes for the player.
/lyrics Shows the lyrics of the currently playing song.
/nowplaying Shows the currently playing song.
/pause Pauses playback.
/play Searches and plays a song or playlist from YouTube or Spotify.
/previous Plays the previous track.
/queue Displays the queue.
/remove Removes the specified track from the queue.
/repeat Sets the current repeat mode.
/resume Resumes playback.
/search Searches five songs from YouTube and lets you select one to play.
/seek Skips to the specified point in the current track.
/shuffle Shuffles the queue.
/skip Skips the current track or to a specified point in the queue.
/stop Stops playback.
/volume Sets the volume of the music player.

Moderation

Command Description
/ban Bans a user.
/kick Kicks a user.
/move Moves the mentioned user to the specified channel.
/moveall Moves all users from the first channel to the second channel.
/purge Clears a specified amount of messages.
/slowmode Sets the rate limit of the current channel.

Feedback

Command Description
/bugreport Reports a bug to the developer.
/github Sends a link to the repo of this bot.
/suggestion Sends a suggestion to the developer.

Installation

It is not recommended to try and install SuitBot yourself.
The bot is not designed to be easily installable and requires many complicated steps to set up.

If you want a self-hostable bot, keep looking around GitHub for better alternatives!

If you nevertheless decide to try and host a custom version of SuitBot yourself keep on reading.

Installation

Local Installation

Prerequisites

  • Node.js v16.x
  • FFmpeg v4.4
  • Java v13.x

Installing

git clone https://github.com/MeridianGH/suitbot.git
cd suitbot
npm install

Configuration

Rename config_example.json to config.json and replace the placeholders inside with your info:

  • A Discord Bot Token (Guide)
  • Your Application ID which you can find the the General Information tab in your Discord application.
  • Your Client Secret which is under OAuth2 in your Discord application.
  • The Guild ID of the server in which you want to test the bot. To get this ID, activate Developer Mode in Discord's options and right-click your server.
  • Your User ID of your Discord account which will be your Admin-Account for the bot. Right-click yourself with Developer Mode activated.
  • Get your YouTube keys like described in this Guide. Once you have PAPISID and PSID set them in the config.
  • Create a Genius API application here, generate an access token and paste it here. Can be an empty string.

Setting up

Discord

Go to your Discord Application, go to OAuth2 and add http://localhost/callback to Redirects.

Domain

Replace the domain in dashboard.js with your domain.
If you want to redirect from HTTP to HTTPS, make sure to replace the domains in the function forceDomain() as well.

Database

Install PostgreSQL and create a database suitbot. If you choose to name it differently, set the database URL in database.js.

Create a table using the following command:

CREATE TABLE servers (
  id varchar(30) UNIQUE NOT NULL,
  locale varchar(5) NOT NULL
);

Deploying

Use node deploy-commands.js to update and add commands in the guild you specified and node deploy-commands.js global to update the commands globally.
Guild commands are refreshed instantly while global commands can take up to an hour.

Start the bot with

node .


To start the bot for production use one of these specific for your platform

npm run start:win
npm run start:unix

Stats

Size

Lines of code GitHub repo size

Code

GitHub top language GitHub language count
CodeFactor Libraries.io
discord.js erelajs

GitHub

GitHub issues GitHub pull requests
GitHub last commit GitHub commit activity
GitHub Repo stars GitHub watchers

Dashboard

Website

Licensing

If you want to host your own version of SuitBot, with or without modifications to the source code or plan to use any part of this source code, you must disclose the source and reference this repository/license.

License