File Details
CustomJukebox-1.3.0.jar
- R
- Jan 1, 2026
- 198.26 KB
- 13
- 1.21.11+11
File Name
CustomJukebox-1.3.0.jar
Supported Versions
- 1.21.11
- 1.21.10
- 1.21.9
- 1.21.8
- 1.21.7
- 1.21.6
- 1.21.5
- 1.21.4
- 1.21.3
- 1.21.2
- 1.21.1
- 1.21
## [1.3.0] - 2025-12-31
### Added
- **Public API for Plugin Developers**: New `CustomJukeboxAPI` class 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.json` with display name and description
- Assign discs to categories using `"category"` field
- Filter discs by category via API
- Example categories: Ambient, Epic, Nature
- **Playlist System**: Group discs for sequential playback with automatic queue management
- Create playlists in `disc.json` with list of disc IDs OR in-game with commands/GUI
- Commands: `/cjb playlist list|info|play|create|delete|add|remove|rename|edit` for 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
- **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
- **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
- No more manual JSON editing for most operations!
- **Advanced Color System**: Full support for modern Minecraft color codes
- **HEX Colors**: Use `&#RRGGBB` or `#RRGGBB` format (e.g., `&#FF5555` for 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
- **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 `ColorUtil` class handles all color processing
- Better user guidance in all wizards and editors
- **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
- **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: `PlaylistSubcommand` with 9 actions (list/info/play/create/delete/add/remove/rename/edit)
- **New GUIs**:
- `AdminGUI` - Main admin panel with navigation to all management functions
- `DiscCreationWizard` - 7-step chat wizard for disc creation with validation
- `DiscEditorGUIv2` - 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 interface
- `CategoryCreationWizard` - 3-step chat wizard for category creation
- `CategoryEditorGUI` - Visual category editor with chat input for text fields
- Extended `GuiSubcommand` with 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
- **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)
- 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)

