本帖最后由 白可乐 于 2022-9-9 01:01 编辑
RT
复制代码设置以后,方块变了,但是方向不对
服务端: 1.16.5 catserver
自行解决: 就用这个,然后把自己的强迫症去掉就好了
RT
- @EventHandler
- public void onPlayerInteract(PlayerInteractEvent event){
- Block block = event.getClickedBlock();
- BlockData blockData = block.getBlockData();
- Material material = blockData.getMaterial();
- Location location = event.getClickedBlock().getLocation();
- location.getBlock().setType(Material.AIR);
- location.getBlock().setType(material);
- location.getBlock().setBlockData(blockData);
- }
服务端: 1.16.5 catserver
自行解决: 就用这个,然后把自己的强迫症去掉就好了
本帖最后由 tcejorPoiK 于 2022-9-7 10:12 编辑
楼主你这个是为了实现什么,把方块用同材质的方块替换一遍..?
能否详细说明一下使用场景,光看给出的代码看不出什么问题
私聊补充:楼主是1.16.5 catserver,需要操作的对象是mod方块,后来的人可以参考一下,我是无能为力了
楼主你这个是为了实现什么,把方块用同材质的方块替换一遍..?
能否详细说明一下使用场景,光看给出的代码看不出什么问题
私聊补充:楼主是1.16.5 catserver,需要操作的对象是mod方块,后来的人可以参考一下,我是无能为力了
tcejorPoiK 发表于 2022-9-7 08:12
楼主你这个是为了实现什么,把方块用同材质的方块替换一遍..?
能否详细说明一下使用场景,光看给出的代码看 ...
是的,把方块用同一个材质进行替换,然后,方向还是原来方块的方向,怎么弄?
使用过WorldEdit 方块朝向 可能是由子id控制的 反馈到代码里 应该是BlockData进行控制的 建议放置不同朝向方块 输出BlockData中的字段 进行观察 然后再通过设置不同的BlockData 查看是否可以改变玩家朝向 再对玩家朝向方块的方向 进行不同的BlockData替换 就可以做到了。
白可乐 发表于 2022-9-7 09:49
是的,把方块用同一个材质进行替换,然后,方向还是原来方块的方向,怎么弄? ...
我这用完全相同的代码测试没有任何问题,paper1.19.2
不知道你实现这个功能的目的是什么,替换一遍方块不等于没做任何操作吗
782963325 发表于 2022-9-7 10:01
使用过WorldEdit 方块朝向 可能是由子id控制的 反馈到代码里 应该是BlockData进行控制的 建议放置不同朝向 ...
笔误 第二行 查看是否可以改变玩家朝向 应该是 改变方块朝向 233
- Block block = event.getClickedBlock();
- //这里clone一下试试
- BlockData blockData = block.getBlockData().clone();
- Material material = blockData.getMaterial();
- Location location = event.getClickedBlock().getLocation();
- location.getBlock().setType(Material.AIR);
- location.getBlock().setType(material);
- location.getBlock().setBlockData(blockData);
本帖最后由 SumCraft 于 2022-9-7 10:12 编辑
复制代码
编辑了,这个方法是错误的
- BlockFace getFace(Block block)
- Gets the face relation of this block compared to the given block.
- For example:
- Block current = world.getBlockAt(100, 100, 100);
- Block target = world.getBlockAt(100, 101, 100);
- current.getFace(target) == BlockFace.Up;
-
- If the given block is not connected to this block, null may be returned
- 参数:
- block - Block to compare against this block
- 返回:
- BlockFace of this block which has the requested block, or null
编辑了,这个方法是错误的
还是会改变方向
白可乐 发表于 2022-9-7 10:12
还是会改变方向
- public void onPlayerInteract(PlayerInteractEvent event) {
- Block block = event.getClickedBlock();
- BlockData blockData = block.getBlockData().clone();
- Material material = blockData.getMaterial();
- Location location = event.getClickedBlock().getLocation();
- location.getBlock().setType(Material.AIR);
- location.getBlock().setType(material);
- location.getBlock().setBlockData(blockData);
- BlockData blockData1 = location.getBlock().getBlockData();
- if (blockData1 instanceof Directional) {
- Directional blockData11 = (Directional) blockData1;
- blockData11.setFacing(BlockFace.UP);
- }
- }
哪如果是这样 方块会不会朝上呢