MC Utils
== AT == public net.minecraft.server.level.ServerChunkCache mainThread public net.minecraft.server.level.ServerLevel chunkSource public org.bukkit.craftbukkit.inventory.CraftItemStack handle public net.minecraft.server.level.ChunkMap getVisibleChunkIfPresent(J)Lnet/minecraft/server/level/ChunkHolder; public net.minecraft.server.level.ServerChunkCache mainThreadProcessor public net.minecraft.server.level.ServerChunkCache$MainThreadExecutor public net.minecraft.world.level.chunk.LevelChunkSection states
This commit is contained in:
@@ -40,6 +40,17 @@ public final class CraftLocation {
|
||||
return new BlockPos(location.getBlockX(), location.getBlockY(), location.getBlockZ());
|
||||
}
|
||||
|
||||
// Paper start
|
||||
public static net.minecraft.core.GlobalPos toGlobalPos(Location location) {
|
||||
return net.minecraft.core.GlobalPos.of(((org.bukkit.craftbukkit.CraftWorld) location.getWorld()).getHandle().dimension(), toBlockPosition(location));
|
||||
}
|
||||
|
||||
public static Location fromGlobalPos(net.minecraft.core.GlobalPos globalPos) {
|
||||
BlockPos pos = globalPos.pos();
|
||||
return new org.bukkit.Location(net.minecraft.server.MinecraftServer.getServer().getLevel(globalPos.dimension()).getWorld(), pos.getX(), pos.getY(), pos.getZ());
|
||||
}
|
||||
// Paper end
|
||||
|
||||
public static Vec3 toVec3D(Location location) {
|
||||
return new Vec3(location.getX(), location.getY(), location.getZ());
|
||||
}
|
||||
|
||||
@@ -56,6 +56,7 @@ import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
import net.minecraft.world.ticks.LevelTickAccess;
|
||||
import net.minecraft.world.ticks.TickPriority;
|
||||
import org.bukkit.event.entity.CreatureSpawnEvent;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public abstract class DelegatedGeneratorAccess implements WorldGenLevel {
|
||||
|
||||
@@ -788,4 +789,25 @@ public abstract class DelegatedGeneratorAccess implements WorldGenLevel {
|
||||
public boolean isFluidAtPosition(BlockPos pos, Predicate<FluidState> state) {
|
||||
return this.handle.isFluidAtPosition(pos, state);
|
||||
}
|
||||
|
||||
// Paper start
|
||||
@Nullable
|
||||
@Override
|
||||
public BlockState getBlockStateIfLoaded(final BlockPos blockposition) {
|
||||
return this.handle.getBlockStateIfLoaded(blockposition);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public FluidState getFluidIfLoaded(final BlockPos blockposition) {
|
||||
return this.handle.getFluidIfLoaded(blockposition);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public ChunkAccess getChunkIfLoadedImmediately(final int x, final int z) {
|
||||
return this.handle.getChunkIfLoadedImmediately(x, z);
|
||||
}
|
||||
// Paper end
|
||||
}
|
||||
|
||||
|
||||
@@ -212,7 +212,23 @@ public class DummyGeneratorAccess implements WorldGenLevel {
|
||||
public FluidState getFluidState(BlockPos pos) {
|
||||
return Fluids.EMPTY.defaultFluidState(); // SPIGOT-6634
|
||||
}
|
||||
// Paper start - if loaded util
|
||||
@javax.annotation.Nullable
|
||||
@Override
|
||||
public ChunkAccess getChunkIfLoadedImmediately(int x, int z) {
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockState getBlockStateIfLoaded(BlockPos blockposition) {
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public FluidState getFluidIfLoaded(BlockPos blockposition) {
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
// Paper end
|
||||
@Override
|
||||
public WorldBorder getWorldBorder() {
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
|
||||
Reference in New Issue
Block a user