持久数据容器不保存到块
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();
我正在尝试为可重置生存的料斗创建自定义数据。我知道有一个 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();