Tags
Creators
Details
Licensed LGPL-3.0-or-later
Published 5 months ago
Updated 2 months ago
All versions
1.0.3
Release
Dragon Care - 1.0.3 - 1.20.1v4 months ago 4,623
Uploaded by
Compatibility
Minecraft: Java Edition
1.20.1
Platforms
Forge
NeoForge
Supported environments
Client and server
Changes
English Changelog
🐛 Bug Fixes
- Dragon Phone: Fixed a texture I accidentally broke in one of the patches, preventing it from switching to "ON" when activated. The 'overrides' block in the item model was accidentally removed—the predicate was registered, but there was nothing to switch to.
- Crafting Recipes: Fixed all 22 crafting recipes being silently ignored by the game. Recipe result blocks used the NeoForge 1.21 format (
"id") instead of the Forge 1.20.1 format ("item"), causing the recipe deserializer to discard them.
🔒 Critical Fixes
- Dragon Data Loss: Fixed a critical issue where
cleanupStaleEntrieswas deleting bond level, dirt, and family data for dragons in unloaded chunks every 5 minutes. This meant your pet dragon at base would silently lose its bond while you explored far away. Data cleanup now only triggers on dragon death (LivingDeathEvent), which is safe since Ice and Fire dragons cannot resurrect. - Brush Exploit: Fixed an exploit where a crafted network packet could bypass dirt level validation, granting unlimited bond points. The server now clamps
newDirtLevelto[0, oldDirtLevel].
🛠️ Optimizations & Memory Leak Fixes (Technical Details)
- Thread Safety Fix:
ClientDirtCachenow usesConcurrentHashMapinstead ofHashMap. The cache was being accessed simultaneously from the network thread and the render thread, which could cause visual glitches or crashes under load. - Restored Guild Spawn Multiplier: The
GUILD_SPAWN_MULTIPLIERconfig setting was previously being ignored. It now correctly controls the Dragon Hunter Guild spawn frequency. - Item Cooldown Parity: Added per-minute stale cooldown cleanup for items (Dragon Blood Syringe, Scale Shears, Painkillers), bringing 1.20.1 behavior in line with 1.21.1.
Русский список изменений
🐛 Исправление багов
- Драконий телефон: Исправлена текстура, которую я случайно сломал в одном из патчей, и она не переключалась на «ВКЛ» при активации. В модели предмета случайно удалён блок
overrides— предикат регистрировался, но переключаться было не на что. - Крафты: Исправлена проблема, из-за которой все 22 рецепта крафта молча игнорировались игрой. Блоки результатов использовали формат NeoForge 1.21 (
"id") вместо формата Forge 1.20.1 ("item"), из-за чего десериализатор рецептов их отбрасывал.
🔒 Критические исправления
- Потеря данных дракона: Исправлена критическая проблема, из-за которой
cleanupStaleEntriesкаждые 5 минут удалял уровень привязанности, грязь и данные о семье у драконов в выгруженных чанках. Это означало, что ваш питомец на базе молча терял привязанность, пока вы исследовали мир. Теперь очистка данных срабатывает только при гибели дракона (LivingDeathEvent), что безопасно — драконы Ice and Fire не воскресают. - Эксплойт щётки: Исправлена уязвимость, позволявшая с помощью поддельного сетевого пакета обойти валидацию уровня грязи и получить неограниченные очки привязанности. Сервер теперь зажимает
newDirtLevelв диапазон[0, oldDirtLevel].
🛠️ Оптимизация и исправление утечек памяти (Технические детали)
- Исправление потокобезопасности:
ClientDirtCacheтеперь используетConcurrentHashMapвместоHashMap. Кеш одновременно читался из сетевого потока и потока рендеринга, что могло приводить к визуальным артефактам или вылетам под нагрузкой. - Восстановлен множитель спавна гильдий: Настройка
GUILD_SPAWN_MULTIPLIERранее игнорировалась. Теперь она корректно управляет частотой генерации Гильдии охотников на драконов. - Паритет кулдаунов: Добавлена ежеминутная очистка устаревших кулдаунов предметов (Шприц для крови, Ножницы, Обезболивающее), приводя поведение 1.20.1 в соответствие с 1.21.1.
Optional dependencies
Any compatible version
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:Hlm7REws:IQBVVmJ2"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:Hlm7REws:IQBVVmJ2"
}

