Posted April 22, 20178 yr I have a custom WorldSavedData class but marking it dirty won't save it. Where I edit values and mark it dirty: @SubscribeEvent public void entityDeath(LivingDeathEvent ev) { EntityLivingBase e = ev.getEntityLiving(); if(!e.world.isRemote) { if(e instanceof EntityWolf) { WorldSavedDataMod data = WorldSavedDataMod.get(e.world); data.isDragonSlain = true; data.markDirty(); ... } } } My WorldSavedData: package com.kain.slippworld; import net.minecraft.nbt.*; import net.minecraft.world.*; import net.minecraft.world.storage.*; public class WorldSavedDataMod extends WorldSavedData { public static final String NAME = Reference.NAME + "_WorldData"; public boolean isDragonSlain = false; public WorldSavedDataMod() { super(NAME); } @Override public void readFromNBT(NBTTagCompound nbt) { isDragonSlain = nbt.getBoolean(Reference.DRAGON_SLAIN_TAG); } @Override public NBTTagCompound writeToNBT(NBTTagCompound nbt) { nbt.setBoolean(Reference.DRAGON_SLAIN_TAG, isDragonSlain); return nbt; } public static WorldSavedDataMod get(World w) { MapStorage s = w.getMapStorage(); WorldSavedDataMod d = (WorldSavedDataMod) s.getOrLoadData(WorldSavedDataMod.class, NAME); if(d == null) { d = new WorldSavedDataMod(); s.setData(NAME, d); } return d; } public void save(World w) { w.getMapStorage().setData(NAME, this); } } When I kill a wolf it sets the boolean to true and it stays true, but when I exit the world and rejoin it's false. Kain
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.