Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
ForgotTheColon committed Jan 3, 2025
1 parent 02498a9 commit a7f0ee6
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import net.minecraft.world.level.biome.Biome;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.levelgen.Heightmap;
import net.minecraft.world.level.material.FluidState;
import org.dimdev.dimdoors.DimensionalDoors;

Expand Down Expand Up @@ -101,4 +102,11 @@ public static Location fromNbt(CompoundTag nbt) {
new BlockPos(pos[0], pos[1], pos[2])
);
}

public static BlockPos getHeightmapPosSafe(ServerLevel level, Heightmap.Types heightmapType, BlockPos pos) {
if (!level.isLoaded(pos)){
level.getChunkAt(pos);
}
return level.getHeightmapPos(heightmapType, pos);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -72,15 +72,15 @@ public boolean receiveEntity(Entity entity, Vec3 relativePos, Rotations relative
if (DimensionalDoors.getWorld(targetWorldResourceKey) != null) {
LOGGER.log(Level.INFO, "Sending player from limbo to the exit dimension, good luck!");
var level = DimensionalDoors.getWorld(targetWorldResourceKey);
destLoc = new Location(level, level.getHeightmapPos(Heightmap.Types.WORLD_SURFACE, entity.blockPosition()));
destLoc = new Location(level, Location.getHeightmapPosSafe(level, Heightmap.Types.WORLD_SURFACE, entity.blockPosition()));
} else {
LOGGER.log(Level.INFO, "Target dimension defined in config does not exist. Use /forge dimensions for a list!");
LOGGER.log(Level.INFO, "Sending player from limbo to worldspawn, good luck!");
destLoc = new Location(DimensionalDoors.getServer().overworld(), DimensionalDoors.getServer().overworld().getHeightmapPos(Heightmap.Types.WORLD_SURFACE, DimensionalDoors.getServer().overworld().getSharedSpawnPos()));
destLoc = new Location(DimensionalDoors.getServer().overworld(), Location.getHeightmapPosSafe(DimensionalDoors.getServer().overworld(), Heightmap.Types.WORLD_SURFACE, DimensionalDoors.getServer().overworld().getSharedSpawnPos()));
}
} else {
LOGGER.log(Level.INFO, "sending player from limbo to worldspawn, good luck!");
destLoc = new Location(DimensionalDoors.getServer().overworld(), DimensionalDoors.getServer().overworld().getHeightmapPos(Heightmap.Types.WORLD_SURFACE, DimensionalDoors.getServer().overworld().getSharedSpawnPos()));
destLoc = new Location(DimensionalDoors.getServer().overworld(), Location.getHeightmapPosSafe(DimensionalDoors.getServer().overworld(), Heightmap.Types.WORLD_SURFACE, DimensionalDoors.getServer().overworld().getSharedSpawnPos()));
}


Expand Down

0 comments on commit a7f0ee6

Please sign in to comment.