▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Плагины/BS CustomJukebox
BS CustomJukebox

BS CustomJukebox

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

350
2

BS CustomJukebox 2.1.5

release18 апреля 2026 г.

[2.1.5] - 2026-04-18

Fixed

  • Permission system completely overhauled: Players were incorrectly blocked in areas without explicit WorldGuard flags

    • customjukebox.use is now actually checked (previously only defined but never used)
    • WorldGuard now only checks for explicit use deny - Areas without the flag allow jukeboxes
    • Specific error messages instead of generic “no-permission” (Region/Claim/Permission separated)
    • New permission customjukebox.bypass.protection to bypass WorldGuard/GriefPrevention (default: OP)
  • Various bug fixes: Fixed several potential crashes and race conditions

    • Thread safety for the playlist queue (synchronized methods)
    • Safer file saving with Files.move() instead of delete+rename (prevents data loss on Windows)
    • Null checks for metadata access, WorldGuard locations, and Adventure API colors
    • ArrayIndexOutOfBounds protection in the Disc Editor for corrupt states
    • UpdateChecker: JSON null safety and resource leak fix
  • Minor improvements:

    • Mute state is now persisted in config.json (survives server restart)
    • Location-based HashMap key replaced with string key (more reliable cooldown)
    • Tab completion now shows subcommands even with empty input
    • Category validation in the Creation Wizard (warning for non-existent categories)
    • More efficient item distribution (a stack instead of a loop)
    • Plugin tasks are now properly terminated on onDisable

Changed

  • Paper API 1.21.11: Plugin now compiles and runs against Paper 1.21.11
  • Resource Pack updated: pack_format set to 75 (1.21.11), sound namespace corrected
  • Default Configs: version field added to config.json and disc.json
  • README: Detailed permissions documentation with tables and descriptions

Added

  • Permission customjukebox.bypass.protection (default: OP, included in customjukebox.admin)
  • New error messages in all 4 languages: no-permission-jukebox, no-permission-region, no-permission-claim

BS CustomJukebox 2.1.4

release14 апреля 2026 г.

[2.1.4] - 2026-04-14

Fixed

  • False update notification: Fixed plugin incorrectly showing "Update to 2.1.3 available" despite already running 2.1.3
    • Gradle's processResources did not track the project version as an explicit task input
    • Added inputs.property("version", project.version) to ensure version changes always trigger resource re-processing

BS CustomJukebox 2.1.3

release11 апреля 2026 г.

[2.1.3] - 2026-04-11

Fixed

  • Message formatting: All chat messages now use MessageUtil with Adventure API

    • Replaced all raw sender.sendMessage(String) / player.sendMessage(String) calls
    • Replaced hardcoded section sign color codes with ampersand codes
    • Affects all commands, listeners, and GUI components
  • Error handling: Replaced all printStackTrace() calls with proper Logger.log() usage

    • CJBCommand, ConfigManager, DiscManager, IntegrationManager
  • Give/Fragment command bug: Fixed commands giving items even with invalid amount input

    • Added missing return after NumberFormatException in GiveSubcommand and FragmentSubcommand
  • Vanilla sound overlap: Fixed volume fluctuations during custom disc playback

    • Added jukebox.stopPlaying() to stop server-side vanilla playback
    • Prevents Jukebox block entity from periodically re-triggering vanilla sound
    • Applied to both manual disc insertion and GUI-based insertion

BS CustomJukebox 2.1.2

release29 марта 2026 г.

[2.1.2] - 2026-03-29

Fixed

  • Message formatting: Fixed color codes showing as garbled text on Paper 1.21+ servers

  • Critical: Wrong disc playing after quick switch: Added comprehensive fix for race conditions

    • Implemented 500ms cooldown between disc changes to prevent race conditions
    • Added triple-verification system to ensure correct disc identification
    • Re-identify disc after insertion to catch quick swaps
    • Stop any existing playback immediately on new disc insertion
    • Added final verification before playback starts
  • Critical: Playlist skip race condition: Fixed tracks being skipped in playlists

    • Added peekNext() method for safe preview without index advancement
    • Eliminated race conditions in playlist progression logic
    • Ensured thread-safe playlist queue operations
  • Critical: Data loss on disc save: Implemented atomic file operations

    • Write to temporary file first, then atomic rename
    • Automatic backup restoration on save failure
    • Added getLatestBackup() recovery mechanism
    • Prevents disc.json corruption on write failures
  • Memory leak with player UUIDs: Fixed players remaining in listener lists

    • Added PlayerQuitEvent handler to clean up UUIDs
    • Implemented removePlayerFromAllPlaybacks() method
    • Prevents memory accumulation over time
  • HTML entities in display texts: Fixed & showing instead of color codes

    • Added unescapeHtmlEntities() method in DiscManager
    • Properly decodes HTML entities when loading from JSON
    • Backup decoder in JukeboxListener for compatibility
  • Vanilla sound stop mechanism: Improved reliability

    • Increased attempts from 2 to 4 (at 1, 5, 10, 20 ticks)
    • Optimized performance with squared distance calculations
    • Added chunk-based pre-filtering for efficiency
  • Folia support issues: Fixed fallback problems

    • Better error messages instead of silent fallback
    • Improved API change detection
    • Warns admins about compatibility issues
  • Mute state not persistent: Now saves across reloads

    • Added loadMuteState() and saveMuteState() methods
    • Mute state stored in config.json
    • Survives plugin reloads and server restarts

Security

  • Thread-safety improvements: Migrated to ConcurrentHashMap

    • All GUI classes now use thread-safe collections
    • Prevents ConcurrentModificationException
    • Better multi-threaded performance
  • Permission checks in GUIs: Added runtime permission validation

    • GUI handlers now verify permissions on every click
    • Prevents exploitation when permissions change during use
    • Immediate closure if permissions are revoked

Performance

  • Location cloning optimization: Reduced unnecessary object creation

    • Added getJukeboxLocationClone() for explicit cloning
    • Internal methods use reference for performance
    • Documented when cloning is necessary
  • Input validation: Added comprehensive parameter checking

    • CustomDisc constructor validates all inputs
    • Throws IllegalArgumentException for invalid values
    • Prevents creation of invalid disc objects

Technical

  • Fixed missing imports in JukeboxListener
  • Updated all GUI classes for thread-safety
  • Enhanced debug logging for troubleshooting
  • Improved error recovery mechanisms

BS CustomJukebox 2.1.1

release21 февраля 2026 г.

Нет описания изменений

Совместимость

Minecraft: Java Edition

1.21.x

Платформы

Поддерживаемые окружения

Сервер

Детали

Лицензия:MIT
Опубликован:4 месяца назад
Обновлён:2 дня назад
Главная