diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000..cb70bcab6 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog - Deeper and Darker + +## [1.3.6] - 2026-02-09 + +### English +- **Fixed**: Game crash when teleporting to the dimension or generating fossils in Crystallized Amber blocks (NoSuchElementException). + +### Français +- **Corrigé** : Plantage du jeu lors de la téléportation vers la dimension ou de la génération de fossiles dans les blocs d'ambre cristallisé (NoSuchElementException). diff --git a/README.md b/README.md index c7284ea59..06bce4cb2 100644 --- a/README.md +++ b/README.md @@ -21,3 +21,5 @@ gradlew build ``` Build files are located in the project's `build/libs` folder. +--- +**Latest Version: 1.3.6** (Fixed Crystallized Amber crash) diff --git a/gradle.properties b/gradle.properties index cdfb8096e..b03e9bcad 100644 --- a/gradle.properties +++ b/gradle.properties @@ -18,8 +18,8 @@ emi_version=1.1.22 mod_id=deeperdarker mod_name=Deeper and Darker mod_license=AGPL-3.0 -mod_version=1.3.5 +mod_version=1.3.6 mod_group_id=com.kyanite.deeperdarker mod_authors=Kyanite Team -mod_credits=NewJumperr, nitro_dynamite18, angxdd, pr_ib, JustJussi, Rotch_Gwylt, DanielArtist +mod_credits=NewJumperr, nitro_dynamite18, angxdd, pr_ib, JustJussi, Rotch_Gwylt, DanielArtist, vyrriox mod_description=A Minecraft mod featuring new blocks, items, armor, and hidden mysteries to complement the Deep Dark. diff --git a/src/main/java/com/kyanite/deeperdarker/content/blocks/entity/CrystallizedAmberBlockEntity.java b/src/main/java/com/kyanite/deeperdarker/content/blocks/entity/CrystallizedAmberBlockEntity.java index 488ebe49d..cd35fc367 100644 --- a/src/main/java/com/kyanite/deeperdarker/content/blocks/entity/CrystallizedAmberBlockEntity.java +++ b/src/main/java/com/kyanite/deeperdarker/content/blocks/entity/CrystallizedAmberBlockEntity.java @@ -31,19 +31,23 @@ public CrystallizedAmberBlockEntity(BlockPos pos, BlockState blockState) { } public void generateFossil(ServerLevel level, BlockPos pos) { - if(fossilizedEntity || !loot.isEmpty()) return; + if (fossilizedEntity || !loot.isEmpty()) + return; RandomSource random = new XoroshiroRandomSource(pos.asLong()); fossilizedEntity = random.nextFloat() < 0.2f; - if(!fossilizedEntity) { + if (!fossilizedEntity) { LootTable table = level.getServer().reloadableRegistries().getLootTable(DDChestLoot.CRYSTALLIZED_AMBER); LootParams lootParams = new LootParams.Builder(level) .withParameter(LootContextParams.ORIGIN, this.getBlockPos().getCenter()) .withParameter(LootContextParams.BLOCK_ENTITY, this) .create(LootContextParamSets.CHEST); List list = table.getRandomItems(lootParams); - - this.loot = list.getFirst(); + if (!list.isEmpty()) { + this.loot = list.getFirst(); + } else { + fossilizedEntity = true; + } } this.setChanged(); @@ -74,8 +78,10 @@ public CompoundTag getUpdateTag(HolderLookup.Provider registries) { @Override protected void loadAdditional(CompoundTag tag, HolderLookup.Provider registries) { super.loadAdditional(tag, registries); - if(tag.contains("item")) this.loot = ItemStack.parseOptional(registries, tag.getCompound("item")); - if(tag.contains("leech")) this.fossilizedEntity = tag.getBoolean("leech"); + if (tag.contains("item")) + this.loot = ItemStack.parseOptional(registries, tag.getCompound("item")); + if (tag.contains("leech")) + this.fossilizedEntity = tag.getBoolean("leech"); } @Override