Unofficial site, not affiliated with modrinth.com.What is this?
Плагины/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.

436
2

BS CustomJukebox 3.0.0

release6 мая 2026 г.

[3.0.0] - 2026-05-02

Added

  • Public API Events: New event system for companion plugins
    • DiscPlaybackStartEvent — Cancellable event fired when a disc starts playing. Exposes disc, location, and mutable listener set.
    • DiscPlaybackStopEvent — Fired when playback stops, with StopReason enum (MANUAL, DURATION_END, BLOCK_BREAK, PLUGIN).
    • DiscRegisteredEvent — Fired when a new disc is created via GUI or config.
    • DiscRemovedEvent — Fired when a disc is removed, includes a snapshot of the deleted disc.
  • API method: CustomJukeboxAPI.getPluginDataFolder() — Allows companion plugins to locate disc sound files.

Changed

  • PlaybackManager: Now fires DiscPlaybackStartEvent before playing sounds (allows cancellation and listener modification) and DiscPlaybackStopEvent on stop.
  • DiscManager: Now fires DiscRegisteredEvent on disc creation and DiscRemovedEvent on disc deletion.

Technical

  • New package: de.boondocksulfur.customjukebox.api.events with 4 event classes
  • All events follow standard Bukkit event patterns (HandlerList, static getHandlerList)
  • Zero behavior change for existing users — events are no-ops without listeners
  • Foundation for the new BS-CustomJukebox Bedrock Extension

BS CustomJukebox 2.2.1

release4 мая 2026 г.

[2.2.1] - 2026-05-03

Fixed

  • UpdateChecker: Now filters by game version via Modrinth API so users only see updates compatible with their Minecraft version. Prevents cross-version update notifications (e.g., 26.1 updates shown to 1.21.x servers).

BS CustomJukebox 2.2.0

release2 мая 2026 г.

[2.2.0] - 2026-05-02

Added

  • Public API Events: New event system for companion plugins
    • DiscPlaybackStartEvent — Cancellable event fired when a disc starts playing. Exposes disc, location, and mutable listener set.
    • DiscPlaybackStopEvent — Fired when playback stops, with StopReason enum (MANUAL, DURATION_END, BLOCK_BREAK, PLUGIN).
    • DiscRegisteredEvent — Fired when a new disc is created via GUI or config.
    • DiscRemovedEvent — Fired when a disc is removed, includes a snapshot of the deleted disc.
  • API method: CustomJukeboxAPI.getPluginDataFolder() — Allows companion plugins to locate disc sound files.

Changed

  • PlaybackManager: Now fires DiscPlaybackStartEvent before playing sounds (allows cancellation and listener modification) and DiscPlaybackStopEvent on stop.
  • DiscManager: Now fires DiscRegisteredEvent on disc creation and DiscRemovedEvent on disc deletion.

Technical

  • New package: de.boondocksulfur.customjukebox.api.events with 4 event classes
  • All events follow standard Bukkit event patterns (HandlerList, static getHandlerList)
  • Zero behavior change for existing users — events are no-ops without listeners
  • Foundation for the new BS-CustomJukebox Bedrock Extension

BS CustomJukebox 2.1.6

release1 мая 2026 г.

[2.1.6] - 2026-05-01

Fixed

  • Critical: sound/soundKey field mismatch — Discs created or edited via GUI wrote "soundKey" to disc.json, but the loader only read "sound". After a reload, the custom sound was silently lost.

    • saveDiscToConfig() and updateDiscField() now consistently write "sound" (the official field name)
    • parseDiscFromJson() now reads "sound" with "soundKey" as backward-compatible fallback
    • DiscEditorGUIv2 now passes "sound" instead of "soundKey" to updateDiscField()
    • Existing disc.json files with "soundKey" entries will be read correctly (no manual migration needed)
  • ParrotDanceListener NPE: Added null-check for getWorld() before calling getNearbyEntities(). Prevents crash when jukebox is in an unloaded world.

  • JukeboxPlayback thread-safety: Changed internal listeners set from HashSet to ConcurrentHashMap.newKeySet(). Prevents potential ConcurrentModificationException when players join/leave during playback.

  • Config values without bounds validation: All numeric config getters now clamp to valid ranges:

    • volume: 0.0–4.0
    • creeper-drop-chance / loot-chance: 0.0–1.0
    • max-loot-discs / fragments-per-disc: 1–64
    • jukebox-hearing-radius: 1–512
    • dance-radius: 1–32

Removed

  • ColorUtil class deleted: Deprecated since v2.1.0, internally fully replaced by AdventureUtil. No remaining usages in plugin code. Removed unused import from DiscEditorGUIv2.

Changed

  • README overhauled: Resource Pack documentation
    • Replaced misleading pack_format: 34 for "Minecraft 1.21.x" with accurate per-version format table
    • Added modern min_format / max_format examples for Minecraft 1.21.9, 1.21.10, and 1.21.11
    • Added GitHub URL warning (don't use /blob/ URLs for server resource packs)
    • Added ZIP structure documentation (correct vs incorrect root layout)
    • Added troubleshooting checklist for "Resource Pack hash is outdated" error
  • Example resource pack updated: pack.mcmeta now uses min_format: [69, 0] / max_format: [75, 0] (compatible with MC 1.21.9–1.21.11)
  • Example resource pack README fixed:
    • Added note that template does not include real .ogg files
    • Replaced outdated supported_formats reference with min_format/max_format explanation
    • Unified sound key examples to consistently use music_disc. prefix
    • Fixed incorrect config.yml reference → server.properties as resource-pack-sha1

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

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

Minecraft: Java Edition

26.1.x1.21.x

Платформы

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

Сервер

Детали

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