- Баллы
- 61
- Имя в Minecraft
- KanKaH
Стоит задача записать тег "energy" с каким-либо числовым значением.
Попробовал сделать так:
public static void saveEnergyDataToNBT(Entity entity, int energy) {
net.minecraft.server.v1_11_R1.Entity nmsEntity = ((CraftEntity) entity).getHandle();
NBTTagCompound nbttagcompound = new NBTTagCompound();
nmsEntity.c(nbttagcompound);
nbttagcompound.setInt("energy", 55555);
((EntityLiving) nmsEntity).a(nbttagcompound);
}
Но оно не сохраняет ничего, это понятно если получить NBT из entity еще раз, уже после сохранения.
Так же попробовал решение, предложенное во втором комментарии тут https://bukkit.org/threads/entity-nbt-tags-manipulation.135199/, но мало того, что оно тоже не сохраняет, но кроме этого оно не смогло получить все данные.
UPD. Как оказалось метод прекрасно работал, я мог изменять и добавлять ванильные теги, НО никакие кастомные теги в Entity не сохраняются, их можно хранить только в предметах.
Попробовал сделать так:
public static void saveEnergyDataToNBT(Entity entity, int energy) {
net.minecraft.server.v1_11_R1.Entity nmsEntity = ((CraftEntity) entity).getHandle();
NBTTagCompound nbttagcompound = new NBTTagCompound();
nmsEntity.c(nbttagcompound);
nbttagcompound.setInt("energy", 55555);
((EntityLiving) nmsEntity).a(nbttagcompound);
}
Но оно не сохраняет ничего, это понятно если получить NBT из entity еще раз, уже после сохранения.
Так же попробовал решение, предложенное во втором комментарии тут https://bukkit.org/threads/entity-nbt-tags-manipulation.135199/, но мало того, что оно тоже не сохраняет, но кроме этого оно не смогло получить все данные.
UPD. Как оказалось метод прекрасно работал, я мог изменять и добавлять ванильные теги, НО никакие кастомные теги в Entity не сохраняются, их можно хранить только в предметах.
Последнее редактирование: