package forestry.api.mail;

import net.minecraft.nbt.NBTTagCompound;
import forestry.api.core.INBTTagable;

public class MailAddress implements INBTTagable {
	private String type;
	private String identifier;

	private MailAddress() {
	}

	public MailAddress(String identifier) {
		this(identifier, "player");
	}

	public MailAddress(String identifier, String type) {
		this.identifier = identifier;
		this.type = type;
	}

	public String getType() {
		return type;
	}

	public String getIdentifier() {
		return identifier;
	}

	public boolean isPlayer() {
		return "player".equals(type);
	}

	@Override
	public void readFromNBT(NBTTagCompound nbttagcompound) {
		if(nbttagcompound.hasKey("TP"))
			type = nbttagcompound.getString("TP");
		else
			type = nbttagcompound.getShort("TYP") == 0 ? "player" : "trader";
		identifier = nbttagcompound.getString("ID");
	}

	@Override
	public void writeToNBT(NBTTagCompound nbttagcompound) {
		nbttagcompound.setString("TP", type);
		nbttagcompound.setString("ID", identifier);
	}

	public static MailAddress loadFromNBT(NBTTagCompound nbttagcompound) {
		MailAddress address = new MailAddress();
		address.readFromNBT(nbttagcompound);
		return address;
	}
}