use of net.minecraft.server.v1_16_R1.IBlockData in project Citizens2 by CitizensDev.
the class PlayerPathfinderNormal method b.
@Override
public PathPoint b() {
int var0;
BlockPosition var1;
if (this.e() && this.b.isInWater()) {
var0 = MathHelper.floor(this.b.getBoundingBox().minY);
var1 = new MutableBlockPosition(this.b.locX, var0, this.b.locZ);
for (IBlockData var2 = this.a.getType(var1); var2.getBlock() == Blocks.WATER || var2.p() == FluidTypes.WATER.a(false); var2 = this.a.getType(var1)) {
++var0;
((MutableBlockPosition) var1).c(this.b.locX, var0, this.b.locZ);
}
--var0;
} else if (this.b.onGround) {
var0 = MathHelper.floor(this.b.getBoundingBox().minY + 0.5D);
} else {
for (var1 = new BlockPosition(this.b); (this.a.getType(var1).isAir() || this.a.getType(var1).a(this.a, var1, PathMode.LAND)) && var1.getY() > 0; var1 = var1.down()) {
}
var0 = var1.up().getY();
}
var1 = new BlockPosition(this.b);
PathType var2 = this.a(this.b, var1.getX(), var0, var1.getZ());
if (this.b.a(var2) < 0.0F) {
Set var3 = Sets.newHashSet();
var3.add(new BlockPosition(this.b.getBoundingBox().minX, var0, this.b.getBoundingBox().minZ));
var3.add(new BlockPosition(this.b.getBoundingBox().minX, var0, this.b.getBoundingBox().maxZ));
var3.add(new BlockPosition(this.b.getBoundingBox().maxX, var0, this.b.getBoundingBox().minZ));
var3.add(new BlockPosition(this.b.getBoundingBox().maxX, var0, this.b.getBoundingBox().maxZ));
Iterator var5 = var3.iterator();
while (var5.hasNext()) {
BlockPosition var4 = (BlockPosition) var5.next();
PathType var6 = this.a(this.b, var4);
if (this.b.a(var6) >= 0.0F) {
return this.a(var4.getX(), var4.getY(), var4.getZ());
}
}
}
return this.a(var1.getX(), var0, var1.getZ());
}
use of net.minecraft.server.v1_16_R1.IBlockData in project Citizens2 by CitizensDev.
the class PlayerPathfinderNormal method b.
protected PathType b(IBlockAccess var0, int var1, int var2, int var3) {
BlockPosition var4 = new BlockPosition(var1, var2, var3);
IBlockData var5 = var0.getType(var4);
Block var6 = var5.getBlock();
Material var7 = var5.getMaterial();
if (var5.isAir()) {
return PathType.OPEN;
} else if (!var6.a(TagsBlock.TRAPDOORS) && var6 != Blocks.LILY_PAD) {
if (var6 == Blocks.FIRE) {
return PathType.DAMAGE_FIRE;
} else if (var6 == Blocks.CACTUS) {
return PathType.DAMAGE_CACTUS;
} else if (var6 == Blocks.SWEET_BERRY_BUSH) {
return PathType.DAMAGE_OTHER;
} else if (var6 instanceof BlockDoor && var7 == Material.WOOD && !(Boolean) var5.get(BlockDoor.OPEN)) {
return PathType.DOOR_WOOD_CLOSED;
} else if (var6 instanceof BlockDoor && var7 == Material.ORE && !(Boolean) var5.get(BlockDoor.OPEN)) {
return PathType.DOOR_IRON_CLOSED;
} else if (var6 instanceof BlockDoor && var5.get(BlockDoor.OPEN)) {
return PathType.DOOR_OPEN;
} else if (var6 instanceof BlockMinecartTrackAbstract) {
return PathType.RAIL;
} else if (var6 instanceof BlockLeaves) {
return PathType.LEAVES;
} else if (!var6.a(TagsBlock.FENCES) && !var6.a(TagsBlock.WALLS) && (!(var6 instanceof BlockFenceGate) || var5.get(BlockFenceGate.OPEN))) {
Fluid var8 = var0.getFluid(var4);
if (var8.a(TagsFluid.WATER)) {
return PathType.WATER;
} else if (var8.a(TagsFluid.LAVA)) {
return PathType.LAVA;
} else {
return var5.a(var0, var4, PathMode.LAND) ? PathType.OPEN : PathType.BLOCKED;
}
} else {
return PathType.FENCE;
}
} else {
return PathType.TRAPDOOR;
}
}
use of net.minecraft.server.v1_16_R1.IBlockData in project RoseStacker by Rosewood-Development.
the class StackedSpawnerTileImpl method updateTile.
private void updateTile() {
World level = this.a();
if (level != null) {
level.b(this.blockPos, this.blockEntity);
IBlockData var1 = this.a().getType(this.b());
this.a().notify(this.blockPos, var1, var1, 3);
}
}
use of net.minecraft.server.v1_16_R1.IBlockData in project RoseStacker by Rosewood-Development.
the class StackedSpawnerTileImpl method updateTile.
private void updateTile() {
World level = this.a();
if (level != null) {
level.b(this.blockPos, this.blockEntity);
IBlockData var1 = this.a().getType(this.b());
this.a().notify(this.blockPos, var1, var1, 3);
}
}
use of net.minecraft.server.v1_16_R1.IBlockData in project SSB-OneBlock by BG-Software-LLC.
the class NMSAdapter_v1_8_R3 method simulateToolBreak.
@Override
public void simulateToolBreak(Player bukkitPlayer, org.bukkit.block.Block bukkitBlock) {
EntityPlayer entityPlayer = ((CraftPlayer) bukkitPlayer).getHandle();
ItemStack itemStack = entityPlayer.bZ();
WorldServer worldServer = ((CraftWorld) bukkitBlock.getWorld()).getHandle();
BlockPosition blockPosition = new BlockPosition(bukkitBlock.getX(), bukkitBlock.getY(), bukkitBlock.getZ());
IBlockData blockData = worldServer.getType(blockPosition);
itemStack.a(worldServer, blockData.getBlock(), blockPosition, entityPlayer);
if (itemStack.count == 0)
entityPlayer.ca();
}
Aggregations