【问题标题】:fabric replace blocks in world creates ghost blocks世界中的织物替换块创建幽灵块
【发布时间】:2021-10-07 01:16:30
【问题描述】:
上下文

我正在编写一个结构模型,需要替换世界上的方块。

代码

目前我使用World#setBlockState(pos, state)

BlockPos pos = new BlockPos(x, y, z);
BlockState state = Blocks.STONE.getDefaultState();
world.setBlockState(pos, state);
问题

这似乎可行,但是如果我右键单击替换的块,它们会变回原来的块

我也试过这个Block.replace(world.getBlockState(pos), state, world, pos),但它重现了同样的情况。

目前,该模组只能在客户端使用minecraft-1.17.1

问题

这是因为客户端无法以这种方式修改世界吗?

如果不是,可能是什么问题,我该如何解决?

【问题讨论】:

    标签: java minecraft minecraft-fabric


    【解决方案1】:

    正如您提到的,它位于客户端。所以,你可以改变一切,它只会是视觉的。

    它在右键单击时替换了块,因为服务器发送了世界上存在的真实块(而不是视觉块)。

    如果您想做这样的事情,可能会很困难。所有在服务器上手动放置块的客户端都是作弊的,因为他们正在制作基本 Minecraft 中不允许的东西。

    但是,也许有可能:

    1. 使用event更改将要放置的块,而不是放置默认的然后再更改,可以直接在服务器上更改。

    2. 运行命令更改块,例如/setblockwiki

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-15
      • 2014-01-13
      • 1970-01-01
      • 1970-01-01
      • 2018-03-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多