From 0895260009ee94cf21a5e126cb2077fad1f54e56 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Thu, 6 May 2021 22:50:05 +0300 Subject: [PATCH] Version change, small portal fix --- gradle.properties | 2 +- .../mixin/common/EndDragonFightMixin.java | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index 379a7bf0..6d354ea3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,7 +8,7 @@ loader_version=0.11.3 # Mod Properties - mod_version = 0.9.5-pre + mod_version = 0.9.6-pre maven_group = ru.betterend archives_base_name = better-end diff --git a/src/main/java/ru/betterend/mixin/common/EndDragonFightMixin.java b/src/main/java/ru/betterend/mixin/common/EndDragonFightMixin.java index 633044d3..43755a47 100644 --- a/src/main/java/ru/betterend/mixin/common/EndDragonFightMixin.java +++ b/src/main/java/ru/betterend/mixin/common/EndDragonFightMixin.java @@ -16,6 +16,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.boss.enderdragon.EndCrystal; +import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.pattern.BlockPattern; import net.minecraft.world.level.dimension.end.DragonRespawnAnimation; import net.minecraft.world.level.dimension.end.EndDragonFight; @@ -70,7 +71,19 @@ public class EndDragonFightMixin { List crystals = Lists.newArrayList(); BlockPos center = GeneratorOptions.getPortalPos().above(5); for (Direction dir : BlocksHelper.HORIZONTAL) { - List crystalList = level.getEntitiesOfClass(EndCrystal.class, new AABB(center.relative(dir, 4))); + BlockPos central = center.relative(dir, 4); + List crystalList = level.getEntitiesOfClass(EndCrystal.class, new AABB(central.below(10).south().west(), central.above(10).north().east())); + + int count = crystalList.size(); + for (int n = 0; n < count; n++) { + EndCrystal crystal = crystalList.get(n); + if (!level.getBlockState(crystal.blockPosition().below()).is(Blocks.BEDROCK)) { + crystalList.remove(n); + count--; + n--; + } + } + if (crystalList.isEmpty()) { info.cancel(); return;