File Details
Dragon Care - 1.0.1.jar
- R
- May 20, 2026
- 2.26 MB
- 66
- 1.21.1
- NeoForge
File Name
Ice and Fire - Dragon Care-1.0.1.jar
Supported Versions
- 1.21.1
Curse Maven Snippet
[Hotfix] Sound System Stabilization (OpenAL Crash Fix)
English
🔴 Fixed
- Client Crash on Startup / No Audio Devices: Fixed a critical client-side crash (
No ALCapabilities instance has been set) caused by raw LWJGL/OpenAL buffers being initialized before Minecraft's sound engine had finished loading asynchronously, or if the user's system lacked active audio devices. - Sound Engine Reload Crash (F3+T): Resolved a bug where reloading resource packs or changing audio devices invalidated existing OpenAL buffers and sources, causing subsequent ticks to reference dead memory addresses and crash the client.
🛠️ Technical Implementation
- Added an
isOpenALReady()safety check utilizingAL.getCapabilities() != nullto guard low-levelAL10calls withinGeigerSoundPlayer. - Added a
reset()method to safely discard invalid voice and buffer configurations. - Hooked into NeoForge's client-side
SoundEngineLoadEventinAshSensorSoundHandlerto automatically reset the geiger player on sound system reload, forcing graceful re-allocation of buffers in the new OpenAL context.
Русский
🔴 Исправлено
- Краш клиента при запуске / отсутствии аудиоустройств: Исправлено критическое падение игры (
No ALCapabilities instance has been set), возникавшее из-за попытки инициализации сырых OpenAL-буферов счетчика Гейгера до завершения асинхронной загрузки звукового движка Minecraft, либо при отсутствии активных аудиоустройств в системе пользователя. - Краш при перезагрузке звука (F3+T): Устранена ошибка, при которой перезагрузка ресурс-паков или смена аудиоустройства инвалидировали старые OpenAL буферы и источники, приводя к падениям на последующих тиках из-за обращения к несуществующим ID в памяти.
🛠️ Техническая реализация
- Добавлена безопасная проверка
isOpenALReady()с использованиемAL.getCapabilities() != nullдля защиты всех низкоуровневых вызововAL10вGeigerSoundPlayer. - Реализован метод
reset()для безопасного сброса недействительных ID источников и буферов. - Реализована подписка на событие NeoForge
SoundEngineLoadEventвAshSensorSoundHandler, которая автоматически сбрасывает состояние плеера при перезагрузке звуковой системы, обеспечивая бесшовное создание буферов в новом контексте OpenAL на следующем тике.