SPIGOT-5310: Add Chunk.contains

This commit is contained in:
md_5 2019-09-08 11:39:08 +10:00
parent 7ef2b20d0b
commit 9aa743049f

View file

@ -25,7 +25,9 @@ import org.bukkit.ChunkSnapshot;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.block.BlockState; import org.bukkit.block.BlockState;
import org.bukkit.block.data.BlockData;
import org.bukkit.craftbukkit.block.CraftBlock; import org.bukkit.craftbukkit.block.CraftBlock;
import org.bukkit.craftbukkit.block.data.CraftBlockData;
import org.bukkit.craftbukkit.util.CraftMagicNumbers; import org.bukkit.craftbukkit.util.CraftMagicNumbers;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
@ -211,6 +213,20 @@ public class CraftChunk implements Chunk {
getHandle().b(ticks); getHandle().b(ticks);
} }
@Override
public boolean contains(BlockData block) {
Preconditions.checkArgument(block != null, "Block cannot be null");
IBlockData nms = ((CraftBlockData) block).getState();
for (ChunkSection section : getHandle().getSections()) {
if (section != null && section.getBlocks().a(nms)) {
return true;
}
}
return false;
}
@Override @Override
public ChunkSnapshot getChunkSnapshot() { public ChunkSnapshot getChunkSnapshot() {
return getChunkSnapshot(true, false, false); return getChunkSnapshot(true, false, false);