Продажа SoundAddition [v1.0.8.0]

Нет прав для покупки ( 15,00 $ (≈₽1 214,60) )
A bug-fix and quality update. Existing configs are upgraded automatically on the first start: your values are kept, new options are added with comments, and the old file is saved as config.yml.1.0.0.bak.

Bug fixes​

  • Rain ambient sounds now play. The weather check only looked at a player’s personal weather (/pweather), so ambient sounds with weather: [rain] never played during normal server rain. The world’s storm is now used, and personal weather still takes priority when it is set.
  • Equip sounds via the inventory now play. Moving an item into the hotbar or off-hand with the mouse never triggered its equip sound, because the plugin checked the wrong inventory.
  • No more sounds on cancelled actions. Crafting, inventory, pickup, drop, equip, eating and sneak sounds no longer play when another plugin cancels the action, for example a locked recipe, a protected region, or clicks inside custom menus such as shops and crafting-table GUIs.
  • The resource pack no longer removes other plugins’ packs. It used to be sent with replace: true, which unloaded every pack the player already had (CraftEngine, ItemsAdder, Nexo and others) two seconds after joining. It is now added alongside them.
  • Resource pack messages only react to SoundAddition’s own pack. Players no longer get a “pack loaded” or “pack failed” message, a kick, or a statistics entry for packs sent by other plugins.
  • The crafting sound radius is now respected. global_settings.sound_radius in recipe-sound.yml was ignored, and crafting sounds were always heard within 12 blocks. If your file still has the default sound_radius: 28, crafting sounds now carry to 28 blocks, as documented.
  • No more race on /sa reload. With async_ambient_processing: true, reloading could change the ambient sound list while the async task was reading it, which could cause a ConcurrentModificationException. Reloads now swap in a complete new list in one step.

Settings that now work​

These options were already in config.yml but had no effect. They are now implemented and documented in the config:
  • performance.max_concurrent_sounds: the maximum number of sounds the plugin starts per server tick (0 = no limit). This protects the server from sound spam such as mass crafting.
  • performance.max_sound_distance: an upper limit for every system’s sound_radius (0 = no limit).
  • performance.cache_cleanup_interval: how often, in seconds, per-player caches of players who left are cleared and statistics are saved (minimum 30).
  • sound_systems.<system>.config_file: each system loads its sounds from the file named here. A missing file is created from the default one.
  • plugin_settings.language: en or ru. This controls the plugin’s own messages: commands, help, statistics and the kick message.
  • plugin_settings.enabled and plugin_settings.debug_mode. The debug mode prints the loaded configuration on start and on /sa reload.
  • debug.log_all_sounds: logs every played sound (system, sound, location, how many players heard it).
  • debug.log_ambient_conditions: logs each player’s ambient context (world, biome, level, time, weather, structures) and which ambient sounds matched. Use it to find out why an ambient sound does not play.
  • debug.save_sound_statistics: counts played sounds per system and per sound. The counts are shown in /sa stats and saved to stats.yml.
  • config_version: older configs are now upgraded automatically, as described at the top.

New features​

  • Sound categories (volume sliders).Each sound system plays in its own Minecraft sound category, so players can turn it down with their own volume sliders: sound_systems.<system>.category. Defaults:
    • crafting: blocks;
    • inventory, equipment and sneak: players;
    • ambient: ambient.
      Before this update, every sound except ambient sounds played under “Master Volume”.
  • Automatic resource pack SHA-1. When sha1_hash is empty and auto_hash: true (the default), the plugin downloads the pack once in the background on start and on /sa reload, and computes its SHA-1. The hash is printed to the console so you can paste it into the config. Players who join while the hash is still being computed wait up to 15 seconds for it. The “missing hash” warning is now printed once instead of on every join.
  • Configurable kick message. resource_pack.auto_download.messages.kick sets the kick message shown when a forced pack is declined. If it is empty, a built-in message in the configured language is used. All resource pack messages (sending, success, declined, failed, force_message, kick) are now listed in the default config.
  • Better /sa stats. Shows the state of each system and, when statistics are on, how many sounds each system played and the most played sounds.

Other​

  • /sa info no longer prints “Website: null”.
  • Removed an outdated built-in fallback resource pack URL. The URL now always comes from config.yml.
  • The jar version is now taken from the build, so plugin.yml and the file name always match.
Добавлена поддрежка версии 26.3
Добавлен терминал для оплаты картами РФ
Тестовая ветка может быть выдана покупателям:

Больше новых звуков пещер, эмбиент для джунглей, микро-скримеры листвой, добавлено больше ночных звуков.
Еще больше звуков для различных биомов!
Added missing Terralith biomes:
  • terralith:alpha_islands
  • terralith:amethyst_canyon
  • terralith:amethyst_rainforest
  • terralith:blooming_plateau
  • terralith:cold_shrubland
  • terralith:desert_oasis
  • terralith:desert_spires
  • terralith:forested_highlands
  • terralith:granite_cliffs
  • terralith:gravel_desert
  • terralith:highlands
  • terralith:jungle_mountains
  • terralith:lush_valley
  • terralith:mirage_isles
  • terralith:savanna_slopes
  • terralith:shield
  • terralith:shrubland
  • terralith:skylands_autumn
  • terralith:skylands_spring
  • terralith:skylands_summer
  • terralith:skylands_winter
  • terralith:stony_spires
  • terralith:temperate_highlands
  • terralith:tropical_jungle
  • terralith:valley_clearing
  • terralith:volcanic_crater
  • terralith:warped_mesa
  • terralith:white_mesa
  • terralith:windswept_spires
  • terralith:warm_river

You need delete or update ambient-sounds.yml!

🔴 Критические исправления​

Ресурс-пак теперь отправляется игрокам на 1.21.11+ Плагин использовал устаревший API, который перестал работать на новых версиях Paper. Полностью переписан на новый API. Теперь гарантированно работает на Paper 1.20.3, 1.21, 1.21.1, 1.21.4 и выше.

Параметр force_download теперь реально работает Ранее настройка force_download: true в конфиге технически никогда не передавалась серверу — из-за ошибки в коде. Теперь исправлено: игроки с force: true не смогут отклонить пак.

Сообщения игрокам теперь показывают цвета Все сообщения плагина (success, declined, failed и т.д.) отображались без форматирования — цветовые коды &a, &c и т.д. вырезались вместо конвертации. Исправлено.


🟡 Важные улучшения​

Утечка памяти при выходе игроков Внутренние таблицы кулдаунов эмбиент-звуков накапливались за время работы сервера и никогда не очищались. Теперь данные игрока удаляются сразу при его выходе.

Безопасность при параллельном /reload При использовании /soundaddition reload во время активной обработки эмбиент-звуков мог возникнуть ConcurrentModificationException. Исправлено через защитное копирование данных.


⚡ Производительность​

Реальная асинхронная обработка эмбиент-звуков Опция async_ambient_processing: true теперь действительно работает асинхронно. Реализован трёхфазный пайплайн:

  • Фаза 1 (main thread) — сбор данных об игроках (локация, биом, структуры)
  • Фаза 2 (async thread) — логика сопоставления биомов и условий воспроизведения
  • Фаза 3 (main thread) — воспроизведение звука
На серверах с большим числом игроков и сложными условиями эмбиент-звуков это снижает нагрузку на главный поток.
ВерхНиз