Tags
Creators
Details
1.0-SNAPSHOT
Compatibility
Changes
๐ต MusicPlay v1.1.0-SNAPSHOT - Playlists & Universal Audio Update
โ ๏ธ Beta / Snapshot Warning:
This release (v1.1.0-SNAPSHOT) is a preview / snapshot version. Version 1.1 is currently under active development and may contain bugs or instability. Use it with caution and report any issues you encounter!
A major update for MusicPlay 1.1, taking server-side music to a whole new level! No more limitations to the OGG format only, no more generic track names like custom.track_1, and no more manual track switching. The plugin now features personal playlists, auto-play, universal audio conversion via FFmpeg, full localization support, and an improved built-in HTTP engine.
๐ง MusicPlay 1.1 Snapshot - turn your server into a full-fledged streaming audio player without a single client-side mod!
๐ Key Features in Version 1.1
1. ๐ผ Support for Any Audio Format via FFmpeg (MP3, WAV, FLAC, M4A...)
- In version 1.0, only raw
.oggfiles were supported. - In version 1.1, automatic conversion has been added! If FFmpeg is installed on your server, you can insert direct links to MP3, WAV, FLAC, M4A, AAC, and other audio formats.
- The plugin converts tracks on the fly into OGG Vorbis Mono (192 kbps) - the standard required for proper playback in the Minecraft engine.
- Forced Mono Audio: Minecraft's sound engine only applies 3D spatial positioning to mono audio files. Stereo files played equally loud in both headphones regardless of distance. Now, 3D spatial sound from jukeboxes works perfectly!
2. ๐ Personal Playlists
- Every player now gets their own personal playlist with a capacity of up to 45 tracks!
- Easy management directly from the player GUI (
/music play-> "๐ Playlist" button):- Right-Click a track in the global library to add it to your playlist.
- Shift + Left-Click a track in the playlist menu to remove it.
- "โถ Play Playlist" Button - starts playback of your saved collection.
- Playlists are saved to disk and persist across server restarts.
3. โญ๏ธ Smart Auto-Play & Track Looping
- No need to manually walk up to the jukebox to play the next song anymore!
- The plugin automatically reads the actual duration of the audio file and runs a lightweight timer.
- When a song finishes:
- In library mode, the next track in order starts automatically.
- In playlist mode, tracks play sequentially and loop seamlessly.
4. ๐ค Real Track Titles from Metadata (Vorbis Comments)
- Forget uninformative names like
minecraft:custom.track_5. - The built-in OGG Vorbis header parser extracts the original
TITLEtag directly from the file metadata. - Actual track names are now displayed across all menus, item descriptions, and chat messages.
5. ๐ Full Localization File (lang.yml)
- All plugin messages and UI text have been moved to
plugins/MusicPlay/lang.yml. - Customize menu titles, item lore, tooltips, and chat messages in any language.
- Supports dynamic placeholders:
{title},{max},{url},{path},{error},{current},{total}.
6. ๐๏ธ Individual Resource Pack Autodownload Management
- Players with slow internet connections or custom resource packs can control pack loading themselves:
/music skiprp- disable automatic resource pack downloading on join./music loadrp- re-enable automatic resource pack downloading./music linkrp- get a direct link for manual resource pack installation.
7. ๐จ Custom Music Disc Texture Support
- The plugin automatically generates a template texture at
plugins/MusicPlay/textures/custom_disc.png. - Server admins can replace this PNG file with their own 16x16 texture, run
/music pack, and custom music discs will receive a unique visual style in-game!
8. ๐ ๏ธ Core Refactoring & Optimization
- Architecture completely rewritten using modular Kotlin services (
PlaybackService,PlaylistService,ResourcePackService,LangService,TrackService). - Advanced HTTP downloader with automatic redirect handling (301, 302, 307, 308), URL sanitization, and support for popular platforms (Dropbox, GitHub Releases, direct CDNs).
- Prevented thread leaks on server reloads.
๐น๏ธ How to Use
For Players:
- Insert a disc into a jukebox and press Shift + Right-Click (or type
/music play). - In the main menu, click "Track Library":
- Left-Click to play the song immediately on the jukebox.
- Right-Click to add the song to your personal playlist.
- Open "๐ Playlist":
- Click "โถ Play Playlist" - your tracks will start playing in sequence and loop automatically.
- To remove a track from your selection, press Shift + Left-Click.
For Server Administrators:
- FFmpeg Setup (for MP3, WAV, FLAC, etc. conversion):
- Ensure
ffmpegis installed on your server machine and accessible via console/PATH. - If FFmpeg is missing, uploading non-OGG formats will show an error prompt, but direct
.oggfiles will continue to work without external utilities.
- Ensure
- Uploading a Track:
- Type
/music uploadand send the direct link in chat. - The plugin will download the audio, convert it to mono OGG, read metadata, automatically rebuild
musicpack.zip, and notify players.
- Type
๐ง Commands & Permissions
| Command | Description | Permission |
|---|---|---|
/music play (or /m play) |
Open the GUI player | โ |
/music disk [sound] |
Give yourself a custom music disc | musicplay.disk |
/music upload |
Upload a new track via direct link from chat | musicplay.upload |
/music pack |
Force rebuild the resource pack | musicplay.upload |
/music tracks |
List all available sound keys | โ |
/music linkrp |
Get a direct link to the resource pack | โ |
/music skiprp |
Disable automatic resource pack loading for yourself | โ |
/music loadrp |
Enable automatic resource pack loading for yourself | โ |
/music help |
Show command help | โ |
โ๏ธ Technical Requirements (v1.1)
- Server Engine: Paper 1.21+ / Purpur / Folia
- Java Version: JDK 21+
- Optional: System
ffmpeginstallation for automatic conversion of non-OGG audio formats. - Port: One open TCP port for the resource pack HTTP server (default
25604)
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:vWJgRZXs:j1opc6NJ"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:vWJgRZXs:j1opc6NJ"
}

