下面列出了org.bukkit.Axis#org.bukkit.block.data.Orientable 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public void setAxis(Block block, boolean z) {
if (!(block.getBlockData() instanceof Orientable)) {
throw new IllegalArgumentException("Block is not Orientable");
}
Orientable data = (Orientable) block.getBlockData();
data.setAxis(z ? Axis.Z : Axis.X);
block.setBlockData(data, false);
}
private void stripLog(Block b) {
b.getWorld().playSound(b.getLocation(), Sound.ITEM_AXE_STRIP, 1, 1);
Axis axis = ((Orientable) b.getBlockData()).getAxis();
b.setType(Material.valueOf("STRIPPED_" + b.getType().name()));
Orientable orientable = (Orientable) b.getBlockData();
orientable.setAxis(axis);
b.setBlockData(orientable);
}
private UnaryOperator<BlockData> orient(Orientation orientation) {
return blockData -> {
if (blockData instanceof Orientable) {
Orientable orientable = (Orientable) blockData;
switch (orientation) {
case xMajor: orientable.setAxis(Axis.X);
case yMajor: orientable.setAxis(Axis.Z);
case zMajor: orientable.setAxis(Axis.Y);
}
}
return blockData;
};
}