suitbot
suitbot copied to clipboard
A lightweight music and general purpose bot with dashboard that uses slash commands and integrations to be as user-friendly as possible!
SuitBot
A lightweight music and general purpose bot with dashboard, that uses slash commands and buttons to be as user-friendly as possible!
Table of Contents
- Invite
- Features
- Commands
- Installation
- Stats
- Licensing
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.
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
andPSID
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 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 main.js
Heroku
Prerequisites
- A Heroku account
Installing
Configuration
Refer to the configuration guide above on how to get the config variables.
Set the variables in config vars under Settings
.
Setting up
Discord
Go to your Discord Application, go to OAuth2
and add http://yourHerokuDomain/callback
to Redirects
.
Domain
Replace the domain in dashboard.js
with the domain of you Heroku app.
If you're using a custom domain, make sure to replace the domains in the function forceDomain()
as well.
Database
In your Heroku app, go to Resources
and click on Heroku Postgres
.
Select Dataclips
, create a Dataclip and give it a title.
Paste the following command and hit Save & Run
:
BEGIN;
set transaction read write;
CREATE TABLE servers (
id varchar(30) UNIQUE NOT NULL,
locale varchar(5) NOT NULL
);
commit;
Delete the Dataclip when it's done. (Click the two-arrow-symbol next to Save & Run
)
Deploying
Deploying on Heroku automatically deploys all commands globally. Make sure to test new commands locally before you deploy.
Stats
Size
Code
GitHub
Dashboard
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.