DamageSource Is Not Null
Попытка исправить "NullPointerException: LivingDeathEvent.getSource() is null"
- Загрузчики
- NeoForgeForge
- Скачиваний на Modrinth
- 283
- Подписчиков на Modrinth
- 1
- версии
- 3
- Обновлён
- 5 марта 20265 мар.
- Опубликован
- в 2026
Коротко о моде
Нужен на сервере; в игре — по желанию
❌ Больше никаких NPE — LivingDeathEvent.getSource() is null
Надоели краши из-за модов, которые передают null DamageSource в конвейер урона или смерти Minecraft? Мод добавляет защитные проверки в несколько распространённых путей обработки урона и смерти, чтобы многие случаи с некорректным DamageSource можно было перехватить до того, как они уронят игру. Он также может выводить полезную информацию в лог, чтобы помочь определить виновный мод.
Ограничение
DamageSource Is Not Null — это защитный мод для смягчения последствий, а не гарантированное универсальное исправление. Однако из-за особенностей модифицированного Minecraft он не может гарантировать защиту в каждом случае. Некоторые моды могут обходить защищённые пути, переопределять ключевые методы или падать раньше, чем этот мод успеет вмешаться. Этот мод лучше всего понимать как слой безопасности, который снижает риск крашей и улучшает диагностику, — а не как обещание, что все такие краши решены.
🆕 Версия 2.0.0
Версия 2.0.0+ значительно улучшает внутреннюю защиту и инструменты отладки. Ключевые улучшения:
- 🛠 Улучшенные команды для тестирования и диагностики проблем с
DamageSource - 🧱 Закрыто несколько лазеек в исходной реализации защиты Эти изменения делают защиту надёжнее в больших сборках модов и помогают авторам сборок легче находить проблемные моды. ⚠ Настоятельно рекомендуется обновиться до 2.0.0. Сейчас 2.0.0 доступна только на 1.20.1 Forge. Улучшения из 2.0.0 будут постепенно перенесены на другие поддерживаемые версии (Forge, Fabric и другие версии Minecraft) со временем.
🛡 Что делает этот мод
Мод внедряет защитные проверки в:
LivingEntity#hurtLivingEntity#dieЕсли мод некорректно вызывает урон или смерть с null DamageSource (чего никогда не должно происходить), этот мод:- Предотвращает многие распространённые краши NullPointerException
- Заменяет некорректный источник запасным generic DamageSource
- Выводит подробные логи, чтобы помочь авторам сборок найти виновника
🚨 Зачем это нужно
Хотя vanilla и NeoForge ожидают, что DamageSource никогда не будет null,
некоторые моды всё ещё некорректно вызывают события и роняют всю игру. Обычно это приводит к ошибкам вроде:
LivingDeathEvent.getSource() is nullЧто убивает серверы и прерывает игру по причинам, не зависящим от игрока. Этот мод служит сетью безопасности во время выполнения для таких ситуаций.⚠ Важные замечания
- ❗ Этот мод не исправляет сломанный мод — он только предотвращает краши.
- ❗ Этот мод — защитный мод для смягчения последствий, а не гарантированное универсальное исправление.
- ⚠ Если вы видите предупреждения в логах, вам всё равно стоит сообщить о них автору мода.
- ✅ Безопасен для использования как на клиенте, так и на выделенных серверах.
- 🧩 Разработан так, чтобы быть лёгким и совместимым с большими сборками модов.
📦 Дружелюбен к сборкам модов
Если вы автор сборки модов или владелец сервера, этот мод может помочь:
- Предотвратить неожиданные простои
- Избежать повреждения миров
- Собрать полезную информацию о крашах, не останавливая игру Думайте о нём как о автоматическом выключателе для некорректных событий урона.
🧪 Окружение
NeoForge
- 1.21.1
Forge
- 1.20.1
- 1.19.2
- 1.18.2
Fabric
- 1.20.1
📜 Лицензия
MIT License — свободно использовать в любой сборке модов.
Частые вопросы
Как установить DamageSource Is Not Null?
Установите NeoForge под свою версию Minecraft, скачайте DamageSource Is Not Null под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть DamageSource Is Not Null?
У DamageSource Is Not Null есть сборки для Minecraft 1.20.1, 1.21.1.
Нужен ли DamageSource Is Not Null на сервере?
Нужен на сервере; в игре — по желанию