package uk.co.wehavecookies56.kk.common.capability; import net.minecraft.nbt.NBTBase; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumFacing; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.capabilities.Capability.IStorage; public class FirstTimeJoinCapability { public interface IFirstTimeJoin { boolean getFirstTimeJoin(); int getPosX(); int getPosY(); int getPosZ(); void setFirstTimeJoin(boolean bool); void setPosX(int posX); void setPosY(int posY); void setPosZ(int posZ); } public static class Storage implements IStorage<IFirstTimeJoin> { @Override public NBTBase writeNBT(Capability<IFirstTimeJoin> capability, IFirstTimeJoin instance, EnumFacing side) { NBTTagCompound properties = new NBTTagCompound(); properties.setBoolean("FirstTimeJoin", instance.getFirstTimeJoin()); properties.setInteger("posX", instance.getPosX()); properties.setInteger("posY", instance.getPosY()); properties.setInteger("posZ", instance.getPosZ()); return properties; } @Override public void readNBT(Capability<IFirstTimeJoin> capability, IFirstTimeJoin instance, EnumFacing side, NBTBase nbt) { NBTTagCompound properties = (NBTTagCompound) nbt; instance.setFirstTimeJoin(properties.getBoolean("FirstTimeJoin")); instance.setPosX(properties.getInteger("posX")); instance.setPosY(properties.getInteger("posY")); instance.setPosZ(properties.getInteger("posZ")); } } public static class Default implements IFirstTimeJoin { private boolean firstTimeJoin = false; private int x = 0, y = 64, z = 0; @Override public boolean getFirstTimeJoin() { return this.firstTimeJoin; } @Override public void setFirstTimeJoin(boolean bool) { this.firstTimeJoin = bool; } @Override public int getPosX() { return x; } @Override public int getPosY() { return y; } @Override public int getPosZ() { return z; } @Override public void setPosX(int posX) { this.x = posX; } @Override public void setPosY(int posY) { this.y = posY; } @Override public void setPosZ(int posZ) { this.z = posZ; } } }