Minestom(我的世界)水桶放置

Minestom (Minecraft) water bucket placing

我正在使用 minestom 创建一个 Minecraft 服务器,这是一个服务器构建库,它没有代码,你必须自己制作所有东西。所以我试图让它让玩家可以放置水,但有时它不起作用。如果我掉落并放置它,那么有时它会被放置在客户端而不是服务器端,当它被放置在服务器端时,它会在聊天中说“放置块”。

        globalEventHandler.addListener(PlayerUseItemOnBlockEvent.class, event -> {
            final Player player = event.getPlayer();
            if (event.getItemStack().getMaterial() != Material.WATER_BUCKET) {
                return;
            }

            if (player.getInstance().getBlock(new Vec(event.getPosition().x(),
                    event.getPosition().y(),
                    event.getPosition().z())) == Block.IRON_BLOCK
                    && event.getBlockFace().normalY() == 1) {

                Point placedPos = event.getPosition();
                placedPos.withX(placedPos.x() + event.getBlockFace().normalX());
                placedPos.withY(placedPos.y() + event.getBlockFace().normalY());
                placedPos.withZ(placedPos.z() + event.getBlockFace().normalZ());

                player.getInstance().setBlock(placedPos, Block.WATER);

                player.sendMessage("placed water");
            }

            player.getInventory().update();
        });

视频 - 忽略平台消失,我知道如何修复但还没有修复的错误,但也只有在服务器端放置水时才会发生 https://youtu.be/njH58gbXPlE

我相信 look vector 是下一个 tick 放置水的 look vector,但是服务器还没有得到这个新的 look vector 所以它使用旧的