
BS CustomJukebox
Fully-featured Paper 1.21+ jukebox plugin with custom music discs, disc fragments, GUI support, and WorldGuard/GriefPrevention integration.
Список изменений
[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)
