rt
就像QuickShop那种
感谢大佬
就像QuickShop那种
感谢大佬
本帖最后由 结冰的离季 于 2021-7-24 12:32 编辑
从QS学来的,在1.16.5测试可用,此方法为强制设置,告示牌会替换原来的位置的方块注意材质必须为WALL_SIGN
复制代码
从QS学来的,在1.16.5测试可用,此方法为强制设置,告示牌会替换原来的位置的方块注意材质必须为WALL_SIGN
- /**
- * 参数
- * container 箱子方块
- * material 告示牌材质
- *
- */
- public final void processWaterLoggedSign(Block container,Material material) {
- BlockData blockdata = container.getBlockData(); //获取方块数据
- if(!(blockdata instanceof Directional))return; //不具有方向属性
- BlockFace chestFace = ((Directional)blockdata).getFacing(); //获取箱子正面
- Block signBlock = container.getRelative(chestFace); //获取牌子位置
- boolean signIsWatered = signBlock.getType() == Material.WATER; //如果是1.13以上还要记录是否有水
- //设置告示牌材质,注意可能需要在plugin.yml设置api 版本才能使用
- //箱子上的告示牌都是WALL_SIGN
- signBlock.setType(material);
-
- BlockState signBlockState = signBlock.getState();
- BlockData signBlockData = signBlockState.getBlockData(); //获取数据
- if (signIsWatered && signBlockData instanceof Waterlogged) { //1.13以上如果有水设置含水
- ((Waterlogged)signBlockData).setWaterlogged(true);
- }
- if (signBlockData instanceof WallSign) {
- BlockFace bf = container.getFace(signBlock); //获取牌子朝向
- if (bf != null) {
- ((WallSign)signBlockData).setFacing(bf); //设置牌子朝向
- signBlockState.setBlockData(signBlockData);
- }
- }
- signBlockState.update(true); //更新告示牌状态
- }
我直呼好家伙awa
本帖最后由 widayn 于 2021-7-24 12:20 编辑
感谢回复。。但是复制后发现13行的facing是未定义的。。我自己改成了chestFace然后运行会报错。。错误如下:
复制代码
是我改错了还是调用方式有问题,感谢大佬
结冰的离季 发表于 2021-7-23 21:11
从QS学来的,在1.16.5测试可用,此方法为强制设置,告示牌会替换原来的位置的方块注意材质必须为WALL_SIGN
...
感谢回复。。但是复制后发现13行的facing是未定义的。。我自己改成了chestFace然后运行会报错。。错误如下:
- java.lang.IllegalStateException: Asynchronous block remove!
是我改错了还是调用方式有问题,感谢大佬

本帖最后由 结冰的离季 于 2021-7-24 12:43 编辑
应该是chestFace,我写错了
这个代码不能在异步线程使用
widayn 发表于 2021-7-24 12:13
感谢回复。。但是复制后发现13行的facing是未定义的。。我自己改成了chestFace然后运行会报错。。错误如下 ...
应该是chestFace,我写错了
这个代码不能在异步线程使用