• Sounds 1.0.0 Changelog
- Added full legacy compatibility support for Minecraft 1.8.8+.
- Rebuilt the plugin against Spigot API 1.8.8 with Java 8 bytecode.
- Removed api-version from plugin.yml to allow loading on 1.8 servers.
- Updated plugin metadata and version to 1.0.0.
- Registered the /sounds reload command properly.
- Extended internal version detection up to V1_26.
- Improved universal sound resolving for legacy and modern servers.
- Added support for both Bukkit sound enum names and universal-style aliases such as block.note.harp.
- Added safer fallback handling when a sound does not exist on the current server version.
- Fixed missing sound mappings:
- entity.wither.death
- entity.phantom.flap
- item.book.page
- Fixed 1.8 armor equip sound mapping to avoid invalid legacy sound names.
- Fixed async sound playback by scheduling sounds back onto the main server
Sounds v0.0.4 — “More Events, Smarter Mapping” Update
This update expands Sounds into a much more complete event-based sound engine and improves version safety across old and new servers.
New sound events (more coverage)
- Block Break / Block Place support added
- Armor Equip detection added (right-click equip + inventory equip / shift-click)
- Armor Break + Item Break sounds (via durability break event)
- Health Decrease sound when taking damage
- Food Level Change sounds (hunger decrease + optional hunger increase)
Version safety improvements
- Added optional event hooks (reflection-based) so the plugin stays 1.8-safe, but still supports newer events when available (e.g. offhand swap, advancements, new pickup event).
- Improved the universal resolver fallback logic: it now selects the closest compatible mapping for your server version instead of accidentally using very old mappings.
Config & YAML upgrades
- Updated config.yml with the new toggles (block_break, block_place, armor_equip, armor_break, item_break, player_health_decrease, player_food_decrease, player_food_increase)
- Updated sounds.yml with clean defaults for the new events
- Extended sounds_map.yml with new universal keys like block.break, block.place, item.break, player.burp
Fixes
As always: everything is YAML-driven, so you can fully customize what plays, when it plays, and how loud it is — without touching code.
- Fixed a mapping fallback edge case where the resolver could choose the wrong version entry.
Core Changes
- Complete rewrite of the sound engine with cross-version compatibility from Minecraft 1.7 → 1.21.9.
- Added a powerful Universal Sound Resolver that automatically maps old and new sound enums, ensuring every sound works on every version.
- Introduced new sounds_map.yml – the central version-mapping file for all universal sound keys.
- Added universal sound keys (e.g. player.levelup, entity.zombie.hurt, block.stone.hit) instead of hardcoded enum names.
- Updated sounds.yml to use the new structure with key:, volume:, and pitch: fields.
- Added configurable fallback sound (settings.fallback-sound) to ensure no event ever fails silently.
- Enhanced debug mode — now logs the exact universal key, resolved enum, volume, and pitch.
Functionality
- Every common player, inventory, entity, and projectile event now supports sound triggers.
- Works seamlessly across legacy (1.7–1.12) and modern (1.13–1.21+) Spigot/Paper builds.
- Backward-compatible config.yml and sounds.yml migration – your previous setups will still load safely.
- Automatic resource generation for all required YAML files on first startup.
Developer Notes
- The plugin is now future-proof: new versions can simply extend sounds_map.yml without code changes.
- Clear separation between events, universal sound keys, and version mapping improves maintenance and performance.
Stability
- Verified on Spigot 1.8.8, Paper 1.12.2, Paper 1.16.5, and Paper 1.21.1.
- Handles missing keys gracefully with fallback logging.
- 0% NPE risk — all sections validated at runtime.
