Tags
Creators
Details
1.3.0
Compatibility
Changes
[1.3.0] - 2025-12-31
Added
-
Public API for Plugin Developers: New
CustomJukeboxAPIclass allows other plugins to interact with CustomJukebox- Access to all discs, fragments, categories, and playlists
- Playback control methods
- Configuration access
- Integration checks (WorldGuard, GriefPrevention)
- Full JavaDoc documentation
-
Disc Categories System: Organize discs by theme or genre
- Define categories in
disc.jsonwith display name and description - Assign discs to categories using
"category"field - Filter discs by category via API
- Example categories: Ambient, Epic, Nature
- Define categories in
-
Playlist System: Group discs for sequential playback with automatic queue management
- Create playlists in
disc.jsonwith list of disc IDs OR in-game with commands/GUI - Commands:
/cjb playlist list|info|play|create|delete|add|remove|rename|editfor full control - In-Game Management: Create and edit playlists without touching config files
- GUI Editor: Visual playlist editor with click-to-add/remove interface
- Integrated into Admin GUI for centralized management
- Automatic progression: Plays next disc when current finishes
- Loop support: Endless playlist playback with
/cjb playlist play <name> loop - Queue management: Tracks current position and handles transitions
- Auto-save: All changes instantly saved to
disc.json - Perfect for events, ambient music, or themed collections
- Create playlists in
-
Admin GUI System: Comprehensive in-game administration interface
- Main Admin Panel: Accessible via
/cjb gui(Admin button at bottom for OPs) - Disc Creation Wizard: 7-step chat wizard for creating new discs
- Step-by-step guidance through all fields (ID, name, author, sound, duration, category, model data)
- Input validation at each step (ID format, sound key syntax, numeric values)
- Shows existing categories during creation
- Summary preview before final creation
- Auto-save to
disc.json
- Disc Editor: Hybrid GUI/Chat system for editing existing discs
- GUI Selectors for numeric values:
- Duration selector with presets (30s, 60s, 90s... up to 600s) + custom input
- Custom Model Data selector (1-20) + custom input
- Category selector showing all categories + create new option
- Chat Input for text fields (Display Name, Author, Sound Key)
- All changes auto-save immediately
- Delete confirmation dialog for safety
- GUI Selectors for numeric values:
- Playlist Management: Full playlist CRUD operations via GUI
- Create new playlists (chat-based for now)
- Edit playlists with visual disc selector (click to add/remove)
- Delete playlists with confirmation
- Live status indicators (โ In playlist)
- Category Management: Organize discs by categories
- Category Creation Wizard: 3-step chat wizard for creating categories
- ID input with validation (lowercase, no spaces)
- Display Name with full color support (legacy, HEX, gradients)
- Optional description field
- Summary confirmation before creation
- Category Editor GUI: Visual editor for existing categories
- Edit display name with advanced color support
- Edit description with color codes
- Live preview of changes
- Auto-save to
disc.json
- Create and delete categories
- View disc count per category
- Easy category assignment via selector in disc editor
- Category Creation Wizard: 3-step chat wizard for creating categories
- No more manual JSON editing for most operations!
- Main Admin Panel: Accessible via
-
Advanced Color System: Full support for modern Minecraft color codes
- HEX Colors: Use
&#RRGGBBor#RRGGBBformat (e.g.,&#FF5555for red) - Gradient Support: Create color gradients with
<gradient:#START:#END>text</gradient>- Example:
<gradient:#FF0000:#0000FF>Epic Soundtrack</gradient>creates red-to-blue gradient - Automatically interpolates colors across each character
- Example:
- Legacy Codes: Still supports standard codes (
&a,&b,&c, etc.) - Formatting: Bold (
&l), italic (&o), underline (&n), strikethrough (&m) - Works Everywhere: Display names, authors, descriptions, categories, lore
- New
ColorUtilclass handles all color processing - Better user guidance in all wizards and editors
- HEX Colors: Use
-
bStats Metrics Integration: Anonymous plugin statistics
- Track plugin usage and feature adoption
- Custom charts for language, integrations, and feature usage
- Helps improve plugin development
- Fully privacy-respecting (configurable via bStats)
-
PlaceholderAPI Support: 15+ placeholders for use in other plugins
%customjukebox_version%- Plugin version%customjukebox_total_discs%- Total number of custom discs%customjukebox_hand_disc_name%- Name of disc in main hand%customjukebox_hand_disc_author%- Author of disc in hand%customjukebox_volume%- Current playback volume- And many more! See API documentation for full list
-
Configurable Jukebox Hearing Radius: New config option
playback.jukebox-hearing-radius- Default: 64 blocks
- Controls how far players can see disc title/actionbar when disc is inserted
- Separate from sound playback radius (controlled by volume)
Changed
-
Improved Tab-Completion: Commands now suggest disc display names in addition to IDs
- Works for
/cjb give,/cjb info,/cjb play,/cjb fragment - Automatically strips color codes for better matching
- More user-friendly for admins
- Works for
-
Enhanced CustomDisc Model: Added category field support
- Discs can now be assigned to categories
- Backwards compatible (category is optional)
-
Updated Dependencies:
- Added bStats 3.1.0
- Added PlaceholderAPI 2.11.6 (soft-dependency)
Fixed
-
Color Codes in Author Field: Author field now properly supports color codes
- Previously, color codes in author field were not processed
- Now supports legacy codes (
&a-&f), HEX colors (&#FF5555), and gradients - Resolves user report about non-working color codes in author field
-
Update Checker Version Comparison: Fixed false "update available" notifications
- Previously used string comparison instead of semantic versioning
- Would incorrectly show "1.0.1" as newer than "1.3.0"
- Now properly compares versions numerically (1.3.0 > 1.0.1)
- Added support for development versions (shows "development version" message)
- Handles version suffixes like "-SNAPSHOT" correctly
-
Category Management TODOs: Completed all category management features
- Category creation wizard now fully implemented (previously TODO)
- Category editor GUI now fully functional (previously TODO)
- All category operations work seamlessly through Admin GUI
Technical
- New model classes:
DiscCategory,DiscPlaylist - Extended DiscManager with full CRUD methods for discs, playlists, and categories
- Added PlaybackManager queue system for automatic disc progression
- New command:
PlaylistSubcommandwith 9 actions (list/info/play/create/delete/add/remove/rename/edit) - New GUIs:
AdminGUI- Main admin panel with navigation to all management functionsDiscCreationWizard- 7-step chat wizard for disc creation with validationDiscEditorGUIv2- Hybrid GUI/Chat editor with selector menus- Duration selector with preset values
- Custom Model Data selector (1-20)
- Category selector with create option
PlaylistEditorGUI- Visual playlist editor with click-to-add/remove interfaceCategoryCreationWizard- 3-step chat wizard for category creationCategoryEditorGUI- Visual category editor with chat input for text fields- Extended
GuiSubcommandwith admin button integration
- New Utilities:
ColorUtil- Advanced color processing with HEX and gradient support- Replaces basic
ChatColor.translateAlternateColorCodes()throughout plugin - Supports legacy codes, HEX colors, and gradients
- Used by all managers and GUIs for consistent color handling
- Replaces basic
- Enhanced UpdateChecker:
- Semantic versioning comparison with
compareVersions()method - Proper handling of version parts (major.minor.patch)
- Support for version suffixes (e.g., "-SNAPSHOT")
- Three-way comparison (older/equal/newer)
- Semantic versioning comparison with
- Auto-save system: All changes persist to disc.json immediately
- Wizard pattern for guided multi-step processes
- Selector pattern for numeric value selection with presets
- Added PlaceholderAPIExpansion for PAPI integration
- Improved modular architecture for future extensions
- All new features fully documented with JavaDoc
Commands Added
/cjb playlist list- List all available playlists/cjb playlist info <playlist>- Show playlist details and track list/cjb playlist play <playlist> [loop]- Play playlist with optional looping/cjb playlist create <id> [display name]- Create new playlist in-game/cjb playlist delete <playlist>- Delete existing playlist/cjb playlist add <playlist> <disc>- Add disc to playlist/cjb playlist remove <playlist> <disc>- Remove disc from playlist/cjb playlist rename <old-id> <new-id>- Rename playlist ID/cjb playlist edit <playlist>- Open GUI editor for playlist management
Permissions Added
customjukebox.playlist- Allows managing and playing playlists (default: op)
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:SFWdW3tI:ICdWXQfS"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:SFWdW3tI:ICdWXQfS"
}

