Added a way to get the spawn position of a world

This commit is contained in:
Matthew Miller 2018-12-21 17:05:30 +10:00
parent c949b07df1
commit ea30578781
6 changed files with 29 additions and 2 deletions

View File

@ -404,6 +404,11 @@ public class BukkitWorld extends AbstractWorld {
}
}
@Override
public BlockVector3 getSpawnPosition() {
return BukkitAdapter.asBlockVector(getWorld().getSpawnLocation());
}
@Override
public void simulateBlockMine(BlockVector3 pt) {
getWorld().getBlockAt(pt.getBlockX(), pt.getBlockY(), pt.getBlockZ()).breakNaturally();

View File

@ -125,6 +125,11 @@ public class NullWorld extends AbstractWorld {
public void setWeather(WeatherType weatherType, long duration) {
}
@Override
public BlockVector3 getSpawnPosition() {
return BlockVector3.ZERO;
}
@Override
public BlockState getBlock(BlockVector3 position) {
return BlockTypes.AIR.getDefaultState();

View File

@ -246,6 +246,13 @@ public interface World extends Extent {
*/
void setWeather(WeatherType weatherType, long duration);
/**
* Gets the spawn position of this world.
*
* @return The spawn position
*/
BlockVector3 getSpawnPosition();
@Override
boolean equals(Object other);

View File

@ -54,8 +54,8 @@ final class ForgeAdapter {
return Vector3.at(vector.x, vector.y, vector.z);
}
public static Vector3 adapt(BlockPos pos) {
return Vector3.at(pos.getX(), pos.getY(), pos.getZ());
public static BlockVector3 adapt(BlockPos pos) {
return BlockVector3.at(pos.getX(), pos.getY(), pos.getZ());
}
public static Vec3d toVec3(BlockVector3 vector) {

View File

@ -467,6 +467,11 @@ public class ForgeWorld extends AbstractWorld {
}
}
@Override
public BlockVector3 getSpawnPosition() {
return ForgeAdapter.adapt(getWorld().getSpawnPoint());
}
@Override
public BlockState getBlock(BlockVector3 position) {
World world = getWorld();

View File

@ -320,6 +320,11 @@ public abstract class SpongeWorld extends AbstractWorld {
getWorld().setWeather(Sponge.getRegistry().getType(Weather.class, weatherType.getId()).get(), duration);
}
@Override
public BlockVector3 getSpawnPosition() {
return SpongeAdapter.asBlockVector(getWorld().getSpawnLocation());
}
/**
* Thrown when the reference to the world is lost.
*/