This is a fork of JMusicBot, created to reverse unwanted changes first introduced in upstream pull request #1486. This PR, which was first included in release version 0.4.0, makes the bot completely exit if it's run in an "unsupported manner", namely on a public or verified bot. This can cause many problems, especially if the bot is set to auto start in a systemd service, since default behavior will cause systemd to automatically restart it endlessly, causing the bot to contact the Discord API thousands of times in a short time period, further causing Discord to reset the bot token due to potential abuse.
With this fork, instead of completely exiting the bot, it just throws an error, letting the user know that the behavior their bot is running under is unsupported, and that they shouldn't report bugs caused by said unsupported behavior. I believe the user should be free to run the bot however they like, even in the unlikely event that it might introduce undesired behavior.
The only changes made in this fork are to modify the changes made in the aforementioned PR, and to redirect update checks and relevant URLs to this repository. I aim to keep this fork up to date with the latest upstream release. If at least 24 hours have passed since the latest upstream release and this fork hasn't been updated accordingly, please notify me by opening an issue in this fork or contacting me otherwise.
The original code is completely copyright to jagrosh and the JMusicBot contributors, as per the Apache License.
This fork contains a modified version of Craumix's Dockerfile, as permitted by the MIT license.
Download Dockerfile
, docker-entrypoint.sh
, and config.txt
from the docker
folder in this repository. Edit the config.txt to add your token and owner ID, as well as any other changes you want to make, then build the image by running docker build -t jmusicbot .
To make config changes or update the bot, redownload the files and build the image as explained above, then delete the old image and container with docker image prune
.
Run the bot with docker run --rm jmusicbot
. To run it in the background, use docker run -itd --rm --name jmusicbot jmusicbot
.
A cross-platform Discord music bot with a clean interface, and that is easy to set up and run yourself!
- Easy to run (just make sure Java is installed, and run!)
- Fast loading of songs
- No external keys needed (besides a Discord Bot token)
- Smooth playback
- Server-specific setup for the "DJ" role that can moderate the music
- Clean and beautiful menus
- Supports many sites, including Youtube, Soundcloud, and more
- Supports many online radio/streams
- Supports local files
- Playlist support (both web/youtube, and local)
JMusicBot supports all sources and formats supported by lavaplayer:
- YouTube
- SoundCloud
- Bandcamp
- Vimeo
- Twitch streams
- Local files
- HTTP URLs
- MP3
- FLAC
- WAV
- Matroska/WebM (AAC, Opus or Vorbis codecs)
- MP4/M4A (AAC codec)
- OGG streams (Opus, Vorbis and FLAC codecs)
- AAC streams
- Stream playlists (M3U and PLS)
Please see the Setup Page to run this bot yourself!
Please read the Issues List before suggesting a feature. If you have a question, need troubleshooting help, or want to brainstorm a new feature, please start a Discussion. If you'd like to suggest a feature or report a reproducible bug, please open an Issue on this repository. If you like this bot, be sure to add a star to the libraries that make this possible: JDA and lavaplayer!
This bot (and the source code here) might not be easy to edit for inexperienced programmers. The main purpose of having the source public is to show the capabilities of the libraries, to allow others to understand how the bot works, and to allow those knowledgeable about java, JDA, and Discord bot development to contribute. There are many requirements and dependencies required to edit and compile it, and there will not be support provided for people looking to make changes on their own. Instead, consider making a feature request (see the above section). If you choose to make edits, please do so in accordance with the Apache 2.0 License.