Crow08 / discord-uberbot

The UberBot is fully charged with music bot goodness! A feature rich bot for playing music and only that.
MIT License
52 stars 14 forks source link
discord discord-bot discord-js discord-music-bot mongodb music music-bot nodejs soundcloud spotify youtube

Discord-UberBot

version dependencies Known Vulnerabilities license
The UberBot is fully charged with music bot goodness! A feature rich bot for playing music and only that.


Remarkable Features:

Announcer:

Features


Full Command List

+----------------------------Commands--------------------------+
| Alias:  add, a                                               |
| Usage:  !add <url | query>                                   |
| About:  add a song to the current queue by url or query.     |
+--------------------------------------------------------------+
| Alias:  pladd                                                |
| Usage:  !pladd <pl name> <url | query>                       |
| About:  add a song to the specified playlist by url or       |
|         query.                                               |
+--------------------------------------------------------------+
| Alias:  autopl, apl, auto                                    |
| Usage:  !autopl [<playlist name>|"unset"]                    |
| About:  get or set a playlist name to be the auto playlist.  |
|         (playlist name to set, no parameter to get and       |
|         "unset" to unset).                                   |
+--------------------------------------------------------------+
| Alias:  addsongtopl, as2pl, as2p                             |
| Usage:  !addsongtopl <playlist>                              |
| About:  adds current song to given playlist                  |
+--------------------------------------------------------------+
| Alias:  addqueuetopl, aq2pl, aq2p                            |
| Usage:  !addqueuetopl <playlist>                             |
| About:  adds queue to given playlist                         |
+--------------------------------------------------------------+
| Alias:  clear                                                |
| Usage:  !clear                                               |
| About:  delete all songs from current queue.                 |
+--------------------------------------------------------------+
| Alias:  pldelete                                             |
| Usage:  !pldelete <pl name>                                  |
| About:  deletes a playlist permanently.                      |
+--------------------------------------------------------------+
| Alias:  join                                                 |
| Usage:  !join                                                |
| About:  ask bot nicely to join your channel                  |
+--------------------------------------------------------------+
| Alias:  help, ?, medic                                       |
| Usage:  !help                                                |
| About:  list all implemented commands                        |
+--------------------------------------------------------------+
| Alias:  leave                                                |
| Usage:  !leave                                               |
| About:  leave the current voice channel.                     |
+--------------------------------------------------------------+
| Alias:  pllist, l                                            |
| Usage:  !pllist                                              |
| About:  lists available playlists                            |
+--------------------------------------------------------------+
| Alias:  listsongs, ls                                        |
| Usage:  !listsongs <playlist>                                |
| About:  lists all songs of the specified playlist            |
+--------------------------------------------------------------+
| Alias:  plload                                               |
| Usage:  !plload <pl name>                                    |
| About:  load a playlist replacing the current queue.         |
+--------------------------------------------------------------+
| Alias:  loop                                                 |
| Usage:  !loop [1]                                            |
| About:  toggle loop mode of the queue.                       |
|         add 1 to loop only the current song.                 |
+--------------------------------------------------------------+
| Alias:  plmerge, merge                                       |
| Usage:  !merge <sourcepl> <targetpl>                         |
| About:  copies one playlist into another!                    |
+--------------------------------------------------------------+
| Alias:  nowplaying, np                                       |
| Usage:  !nowplaying                                          |
| About:  returns first song in history (current song)         |
+--------------------------------------------------------------+
| Alias:  pause                                                |
| Usage:  !pause                                               |
| About:  pause current playback.                              |
+--------------------------------------------------------------+
| Alias:  play, p                                              |
| Usage:  !play <url | query>                                  |
| About:  play a song by url or query.                         |
+--------------------------------------------------------------+
| Alias:  playnext, pn                                         |
| Usage:  !playnext <queue position>                           |
| About:  moves song at given position to top                  |
+--------------------------------------------------------------+
| Alias:  preferdsrc, searchsrc, src                           |
| Usage:  !preferdsrc [yt|sc|sp]                               |
| About:  set a source to be the default source for all        |
|         searches.                                            |
|         (valid sources to set are:                           |
|         "yt":youtube,"sc":soundcloud,"sp":spotify.           |
|         no parameter to get current source)                  |
+--------------------------------------------------------------+
| Alias:  remove                                               |
| Usage:  !remove <queue number>                               |
| About:  removes a song from the current queue.               |
+--------------------------------------------------------------+
| Alias:  plremove, plrm                                       |
| Usage:  !plremove <pl name> <song name>                      |
| About:  remove given song from given playlist                |
+--------------------------------------------------------------+
| Alias:  plrename, rename                                     |
| Usage:  !rename <playlist> <new name>                        |
| About:  renames given playlist                               |
+--------------------------------------------------------------+
| Alias:  rename, renamesong, r                                |
| Usage:  !rename <"t"|"a"> <playlist name> <song number>      |
|         <new name>                                           |
| About:  rename title or artist of song.                      |
|         (first parameter "t" for title and "a" for artist.)  |
+--------------------------------------------------------------+
| Alias:  search                                               |
| Usage:  !search <query>                                      |
|         => "cancel" |                                        |
|         ["play"|"add"] <song number> |                       |
|          "pladd" <pl name> <song number>                     |
| About:  search for a song and choose from multiple results.  |
+--------------------------------------------------------------+
| Alias:  plsearch, pls                                        |
| Usage:  !plsearch <pl name> <song name>                      |
| About:  search given song in given playlist                  |
+--------------------------------------------------------------+
| Alias:  seek                                                 |
| Usage:  !seek <number>                                       |
| About:  seek playback position.                              |
+--------------------------------------------------------------+
| Alias:  showhistory, h, history                              |
| Usage:  !showhistory                                         |
| About:  displays all songs from current history.             |
+--------------------------------------------------------------+
| Alias:  showqueue, q, queue                                  |
| Usage:  !showqueue                                           |
| About:  displays all songs from current queue.               |
+--------------------------------------------------------------+
| Alias:  shuffle                                              |
| Usage:  !shuffle                                             |
| About:  shuffle the current queue.                           |
+--------------------------------------------------------------+
| Alias:  skip, s                                              |
| Usage:  !skip                                                |
| About:  skip current song.                                   |
+--------------------------------------------------------------+
| Alias:  start                                                |
| Usage:  !start <pl name>                                     |
| About:  loads a playlist shuffles it and starts playing.     |
+--------------------------------------------------------------+
| Alias:  stop                                                 |
| Usage:  !stop                                                |
| About:  stop current playback.                               |
+--------------------------------------------------------------+
| Alias:  upload                                               |
| Usage:  !upload [<playlist name>]                            |
|         => attach file to the message                        |
|         txt files with a query each row or csv files with 3  |
|         columns per row <query>;<artist>;<title>             |
| About:  add a songs from a file to the queue or to a         |
|         playlist.                                            |
+--------------------------------------------------------------+
| Alias:  volume, vol, v                                       |
| Usage:  !volume <number>                                     |
| About:  sets volume, or returns volume if no parameter given |
+--------------------------------------------------------------+

Installation:

  1. Install node (with npm >= 10) and mongodb on the host computer.
  2. Install git
  3. Run npm install in the project directory.
    (On Windows you may need to install windows build tools first: npm install -g windows-build-tools)
  4. Copy the settings.example.json and rename it to settings.json
  5. Open settings.json and replace the dummy values with your actual credentials:
    discord bot token, YouTube API key, SoundCloud client id and Spotify client id and secret.
  6. Run npm run start in the project directory.
  7. Enjoy your amazing bot!

Hosting

Works great with heroku (free).
The settings and credentials can be set via heroku environment variables.
We recommend to host the DB on an external server like MongoDB Cloud (free).
Add the mongoDB url, username and password to your setting.json