持久数据容器不保存到块

Persistent Data Container not saving to the block

我正在尝试为可重置生存的料斗创建自定义数据。我知道有一个 PersistantDataContainer 来存储自定义元数据。我得到一个带有事件的块,然后将其投射到漏斗实例(当然在投射前令人震惊)。当我尝试将一些数据设置到实例时,一旦方法结束并且漏斗实例被删除,数据就会丢失。有什么方法可以将数据保存到实际的漏斗块中,并在重置后获取它?

Hopper hopper = (Hopper) block.getState();
private final NamespacedKey KEY_SPEED = new NamespacedKey("me.exerosis", "speed");
if (!hopper.getPersistentDataContainer().has(KEY_SPEED, PersistentDataType.INTEGER))
{
    Bukkit.broadcastMessage("new");
    hopper.getPersistentDataContainer().set(KEY_SPEED, PersistentDataType.INTEGER, 1);
}

每次在同一个块上调用它但广播不同的事件“new”意味着它没有保存数据。

您需要致电BlockState#update

hopper.update();