BS CustomJukebox

Fully-featured Paper 1.21+ jukebox plugin with custom music discs, disc fragments, GUI support, and WorldGuard/GriefPrevention integration.

File Details

CustomJukebox-1.2.0.jar

  • R
  • Dec 14, 2025
  • 368.51 KB
  • 5
  • 1.21.10+9

File Name

CustomJukebox-1.2.0.jar

Supported Versions

  • 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.2.0] - 2025-12-13

### Added
- **Playback Range System**: Control who hears custom music with range parameters
  - `/cjb play <disc> [loop] [global|world|<radius>]`
  - **global**: All players on the server hear the music
  - **world**: Only players in the same world
  - **Custom radius**: Specify exact block radius (e.g., `50`, `100`, `200`)
  - Perfect for server-wide events, world-specific ambiance, or localized music zones

- **Volume Restart Feature**: `/cjb volume <value> restart`
  - Apply volume changes to already playing songs instantly
  - Automatically restarts all active playbacks with new volume
  - No need to manually stop and restart songs anymore

- **PlaybackRange Model**: New enum system for managing playback ranges
  - Clean API for future range-based features
  - Supports NORMAL, GLOBAL, WORLD, and CUSTOM_RADIUS types
  - Automatic parsing from command parameters

### Changed
- Extended PlaybackManager with range-aware sound distribution
- Enhanced JukeboxPlayback model to track playback range
- Loop functionality now preserves range settings across restarts
- Updated all command usages to include new parameters

### Added (Features)
- Smart player detection based on range type
- Efficient range checking for different playback scopes
- Range information displayed in playback success messages

### Updated (Translations)
- All 4 languages updated with new range-related messages (DE, EN, ES, IT)
- New messages: `playback-range-info`, `playback-invalid-range`, `volume-restarted`
- Updated command usage strings for all languages

### Technical
- New `PlaybackRange` class for type-safe range management
- Added `restartAllPlaybacks()` method to PlaybackManager
- Extended `shouldPlayerHearPlayback()` with range logic
- Improved playback session management