@gabizou
I was reading this thread, which is basically the same issue as mine. Why would Warp need to implement DataSerializable? If I print out my WarpData#toContainer, I get:
MemoryDataContainer{map={ContentVersion=1, WARP=Warp [position=null, name=home, world=world, x=205.55, y=64.0, z=230.7, groups=null]}}
which seems to be working fine. Granted, I do get this exception:
[17:07:28] [Server thread/ERROR] [FML]: A TileEntity type net.minecraft.tileentity.TileEntitySign has throw an exception trying to write state. It will not persist. Report this to the mod author
java.lang.IllegalArgumentException: Unable to translate object to NBTBase!
at org.spongepowered.common.util.persistence.NbtTranslator.getBaseFromObject(NbtTranslator.java:166) ~[NbtTranslator.class:1.8-1577-3.1.0-BETA-1025]
at org.spongepowered.common.util.persistence.NbtTranslator.getBaseFromObject(NbtTranslator.java:152) ~[NbtTranslator.class:1.8-1577-3.1.0-BETA-1025]
at org.spongepowered.common.util.persistence.NbtTranslator.containerToCompound(NbtTranslator.java:91) ~[NbtTranslator.class:1.8-1577-3.1.0-BETA-1025]
at org.spongepowered.common.util.persistence.NbtTranslator.containerToCompound(NbtTranslator.java:72) ~[NbtTranslator.class:1.8-1577-3.1.0-BETA-1025]
at org.spongepowered.common.util.persistence.NbtTranslator.translateData(NbtTranslator.java:285) ~[NbtTranslator.class:1.8-1577-3.1.0-BETA-1025]
at net.minecraft.tileentity.TileEntity.writeToNbt(TileEntity.java:234) ~[bcm.class:?]
at net.minecraft.tileentity.TileEntity.onWriteToNBT(TileEntity.java:178) ~[bcm.class:?]
at net.minecraft.tileentity.TileEntity.func_145841_b(TileEntity.java) ~[bcm.class:?]
at net.minecraft.tileentity.TileEntitySign.func_145841_b(TileEntitySign.java:35) ~[bdj.class:?]
at net.minecraft.world.chunk.storage.AnvilChunkLoader.func_75820_a(AnvilChunkLoader.java:382) [bfy.class:?]
at net.minecraft.world.chunk.storage.AnvilChunkLoader.func_75816_a(AnvilChunkLoader.java:183) [bfy.class:?]
at net.minecraft.world.gen.ChunkProviderServer.func_73242_b(ChunkProviderServer.java:246) [qs.class:?]
at net.minecraft.world.gen.ChunkProviderServer.func_73151_a(ChunkProviderServer.java:305) [qs.class:?]
at net.minecraft.world.WorldServer.func_73044_a(WorldServer.java:938) [qt.class:?]
at net.minecraft.server.MinecraftServer.func_71267_a(MinecraftServer.java:363) [MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:621) [MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:478) [MinecraftServer.class:?]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_45-internal]
If I do have Warp implement DataSerializable, how do I construct a DataContainer? Do I need a Key for each property of the Warp (name, x,y,z coords, etc.)?