ReyMagos
Тег-бомбастер
- 412
- 7
- 121
У меня есть ентити в которой я записываю nbt
Но при создании ентити появляется ошибка (см. крашлог). Вроде бы это из-за того что до появления ентити nbt ещё нет и прочитать его не получается. Глянул мобов - что-то не нашёл инита nbt заранее. Может есть какой то способ, кроме
Java:
@Override
public void readEntityFromNBT(NBTTagCompound compound) {
super.readEntityFromNBT(compound);
this.setProfession(compound.getInteger("profession"));
NBTTagList list = compound.getTagList("offers", 10);
for (int i = 0; i < list.tagCount(); i++) {
NBTTagCompound tag = list.getCompoundTagAt(i);
String name = Lists.newArrayList(tag.getKeySet()).get(0);
EntityPlayer player = this.world.getPlayerEntityByName(name);
MerchantRecipeList recipes = new MerchantRecipeList((NBTTagCompound)tag.getTag(name));
this.recipes.put(player, recipes);
}
}
Java:
@Override
public void writeEntityToNBT(NBTTagCompound compound) {
super.writeEntityToNBT(compound);
compound.setInteger("profession", this.getProfession());
NBTTagList recipes = new NBTTagList();
for (Map.Entry<EntityPlayer, MerchantRecipeList> entry: this.recipes.entrySet()) {
NBTTagCompound tag = new NBTTagCompound();
EntityPlayer player = entry.getKey();
MerchantRecipeList list = entry.getValue();
if (list != null) tag.setTag(player.getDisplayNameString(), list.getRecipiesAsTags());
recipes.appendTag(tag);
}
compound.setTag("offers", recipes);
}
if (!compound.hasKey("key")) compound.setInteger(*...*)
. Просто не хочется писать такое в READ nbt.- Краш-лог
-
[10:38:52] [Server thread/ERROR] [FML]: An Entity type redmod.entities.dwarf.EntityDwarf has thrown an exception trying to write state. It will not persist. Report this to the mod author
net.minecraft.util.ReportedException: Saving entity NBT
at net.minecraft.entity.Entity.writeToNBT(Entity.java:1985) ~[Entity.class:?]
at net.minecraft.entity.Entity.writeToNBTOptional(Entity.java:1867) ~[Entity.class:?]
at net.minecraft.world.chunk.storage.AnvilChunkLoader.writeChunkToNBT(AnvilChunkLoader.java:393) [AnvilChunkLoader.class:?]
at net.minecraft.world.chunk.storage.AnvilChunkLoader.saveChunk(AnvilChunkLoader.java:185) [AnvilChunkLoader.class:?]
at net.minecraft.world.gen.ChunkProviderServer.saveChunkData(ChunkProviderServer.java:214) [ChunkProviderServer.class:?]
at net.minecraft.world.gen.ChunkProviderServer.saveChunks(ChunkProviderServer.java:242) [ChunkProviderServer.class:?]
at net.minecraft.world.WorldServer.saveAllChunks(WorldServer.java:1061) [WorldServer.class:?]
at net.minecraft.server.MinecraftServer.saveAllWorlds(MinecraftServer.java:468) [MinecraftServer.class:?]
at net.minecraft.server.integrated.IntegratedServer.saveAllWorlds(IntegratedServer.java:274) [IntegratedServer.class:?]
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:177) [IntegratedServer.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:590) [MinecraftServer.class:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_171]
Caused by: java.lang.NullPointerException
at net.minecraft.network.datasync.EntityDataManager.get(EntityDataManager.java:149) ~[EntityDataManager.class:?]
at redmod.entities.dwarf.EntityDwarf.getProfession(EntityDwarf.java:219) ~[EntityDwarf.class:?]
at redmod.entities.dwarf.EntityDwarf.writeEntityToNBT(EntityDwarf.java:85) ~[EntityDwarf.class:?]
at net.minecraft.entity.Entity.writeToNBT(Entity.java:1956) ~[Entity.class:?]
... 11 more
Краш-лог:
[10:38:52] [Server thread/ERROR] [FML]: An Entity type redmod.entities.dwarf.EntityDwarf has thrown an exception trying to write state. It will not persist. Report this to the mod author
net.minecraft.util.ReportedException: Saving entity NBT
at net.minecraft.entity.Entity.writeToNBT(Entity.java:1985) ~[Entity.class:?]
at net.minecraft.entity.Entity.writeToNBTOptional(Entity.java:1867) ~[Entity.class:?]
at net.minecraft.world.chunk.storage.AnvilChunkLoader.writeChunkToNBT(AnvilChunkLoader.java:393) [AnvilChunkLoader.class:?]
at net.minecraft.world.chunk.storage.AnvilChunkLoader.saveChunk(AnvilChunkLoader.java:185) [AnvilChunkLoader.class:?]
at net.minecraft.world.gen.ChunkProviderServer.saveChunkData(ChunkProviderServer.java:214) [ChunkProviderServer.class:?]
at net.minecraft.world.gen.ChunkProviderServer.saveChunks(ChunkProviderServer.java:242) [ChunkProviderServer.class:?]
at net.minecraft.world.WorldServer.saveAllChunks(WorldServer.java:1061) [WorldServer.class:?]
at net.minecraft.server.MinecraftServer.saveAllWorlds(MinecraftServer.java:468) [MinecraftServer.class:?]
at net.minecraft.server.integrated.IntegratedServer.saveAllWorlds(IntegratedServer.java:274) [IntegratedServer.class:?]
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:177) [IntegratedServer.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:590) [MinecraftServer.class:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_171]
Caused by: java.lang.NullPointerException
at net.minecraft.network.datasync.EntityDataManager.get(EntityDataManager.java:149) ~[EntityDataManager.class:?]
at redmod.entities.dwarf.EntityDwarf.getProfession(EntityDwarf.java:219) ~[EntityDwarf.class:?]
at redmod.entities.dwarf.EntityDwarf.writeEntityToNBT(EntityDwarf.java:85) ~[EntityDwarf.class:?]
at net.minecraft.entity.Entity.writeToNBT(Entity.java:1956) ~[Entity.class:?]
... 11 more
Последнее редактирование: