MCPcopy Index your code
hub / github.com/jagrosh/MusicBot

github.com/jagrosh/MusicBot @0.4.3 sqlite

repository ↗ · DeepWiki ↗ · release 0.4.3 ↗
465 symbols 1,480 edges 71 files 82 documented · 18%
README

JMusicBot

Downloads Stars Release License Discord

CircleCI Build and Test CodeFactor

A cross-platform Discord music bot with a clean interface, and that is easy to set up and run yourself!

Setup

Features

  • 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)

Supported sources and formats

JMusicBot supports all sources and formats supported by lavaplayer:

Sources

  • YouTube
  • SoundCloud
  • Bandcamp
  • Vimeo
  • Twitch streams
  • Local files
  • HTTP URLs

Formats

  • 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)

Example

Loading Example...

Setup

Please see the Setup Page to run this bot yourself!

Questions/Suggestions/Bug Reports

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!

Editing

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.

Extension points exported contracts — how you extend this code

Queueable (Interface)
@author John Grosh [4 implementers]
src/main/java/com/jagrosh/jmusicbot/queue/Queueable.java
QueueSupplier (Interface)
@author Wolfgang Schwendtbauer
src/main/java/com/jagrosh/jmusicbot/queue/QueueSupplier.java

Core symbols most depended-on inside this repo

append
called by 116
src/main/java/com/jagrosh/jmusicbot/gui/TextAreaOutputStream.java
getConfig
called by 78
src/main/java/com/jagrosh/jmusicbot/Bot.java
get
called by 54
src/main/java/com/jagrosh/jmusicbot/queue/AbstractQueue.java
size
called by 51
src/main/java/com/jagrosh/jmusicbot/queue/AbstractQueue.java
isEmpty
called by 48
src/main/java/com/jagrosh/jmusicbot/queue/AbstractQueue.java
getError
called by 39
src/main/java/com/jagrosh/jmusicbot/BotConfig.java
getAliases
called by 36
src/main/java/com/jagrosh/jmusicbot/BotConfig.java
getSuccess
called by 34
src/main/java/com/jagrosh/jmusicbot/BotConfig.java

Shape

Method 374
Class 86
Enum 3
Interface 2

Languages

Java100%

Modules by API surface

src/main/java/com/jagrosh/jmusicbot/BotConfig.java39 symbols
src/main/java/com/jagrosh/jmusicbot/playlist/PlaylistLoader.java28 symbols
src/main/java/com/jagrosh/jmusicbot/audio/AudioHandler.java22 symbols
src/main/java/com/jagrosh/jmusicbot/settings/Settings.java21 symbols
src/main/java/com/jagrosh/jmusicbot/commands/owner/PlaylistCmd.java17 symbols
src/main/java/com/jagrosh/jmusicbot/Bot.java16 symbols
src/main/java/com/jagrosh/jmusicbot/queue/AbstractQueue.java15 symbols
src/main/java/com/jagrosh/jmusicbot/commands/music/PlayCmd.java14 symbols
src/main/java/com/jagrosh/jmusicbot/utils/OtherUtil.java12 symbols
src/main/java/com/jagrosh/jmusicbot/gui/TextAreaOutputStream.java12 symbols
src/main/java/com/jagrosh/jmusicbot/commands/owner/SetgameCmd.java12 symbols
src/test/java/com/jagrosh/jmusicbot/TimeUtilTest.java11 symbols

Dependencies from manifests, versioned

ch.qos.logback:logback-classic1.2.13 · 1×
com.dunctebot:sourcemanagers1.9.0 · 1×
com.github.jagrosh:JLyricsmaster-SNAPSHOT · 1×
com.jagrosh:jda-utilities3.0.5 · 1×
dev.arbjerg:lavaplayer2.2.1 · 1×
dev.lavalink.youtube:common1.5.1 · 1×
junit:junit4.13.1 · 1×
net.dv8tion:JDA4.4.1_353 · 1×
org.hamcrest:hamcrest-core1.3 · 1×
org.jsoup:jsoup1.15.3 · 1×

For agents

$ claude mcp add MusicBot \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact