在以编程方式放置时,我需要一些帮助来改变活塞方向。
我使用此方法将块类型设置为活塞:
block.setType(Material.PISTON_BASE);
但我无法找到改变方向的方法,并指出它。
答案 0 :(得分:3)
您可以使用方法设置它:
block.setTypeIdAndData(33, (byte)direction, false);
如果您想放置粘性活塞,请使用29
作为第一个参数。
方向值如下:
0:向下
1:上升 2:北 3:南
4:西
5:东
对于最后一个参数,false
表示禁用由块放置引起的不必要的块更新。
答案 1 :(得分:2)
Bukkit有使用MaterialData api改变活塞面的实用方法,这个api可以用如下:
Block block = ....;
BlockState state = block.getState();
PistonBaseMaterial piston = (PistonBaseMaterial)state.getData();
piston.setFacingDirection(BlockFace.NORTH);
piston.setFacingDirection(BlockFace.SOUTH);
piston.setFacingDirection(BlockFace.WEST);
piston.setFacingDirection(BlockFace.EAST);
piston.setFacingDirection(BlockFace.UP);
piston.setFacingDirection(BlockFace.DOWN);
state.setData(piston);
state.update();
在方向之外,我们还可以通过呼叫piston.setPowered(true/false);
来为活塞供电/断电。我们也可以通过调用方法piston.isSticky()
轻松检查活塞是否是粘性的,而不依赖于其他已弃用的方法,因为我们不再使用"魔术ID""了。