package joshie.progression.player.nbt; import com.google.common.collect.Multimap; import joshie.progression.api.criteria.IRewardProvider; import joshie.progression.handlers.APICache; import joshie.progression.helpers.NBTHelper.IMultimapHelper; import net.minecraft.nbt.NBTTagCompound; import java.util.UUID; public class UnclaimedNBT implements IMultimapHelper<UUID, IRewardProvider> { public static final UnclaimedNBT INSTANCE = new UnclaimedNBT(); public Multimap<UUID, IRewardProvider> map; public IMultimapHelper setMap(Multimap map) { this.map = map; return this; } @Override public Multimap<UUID, IRewardProvider> getMap() { return map; } @Override public UUID readKey(NBTTagCompound tag) { return UUID.fromString(tag.getString("PlayerUUID")); } @Override public void writeKey(NBTTagCompound tag, UUID uuid) { tag.setString("PlayerUUID", uuid.toString()); } @Override public IRewardProvider readValue(NBTTagCompound tag) { UUID uuid = UUID.fromString(tag.getString("RewardUUID")); return APICache.getCache(false).getRewardFromUUID(uuid); } @Override public void writeValue(NBTTagCompound tag, IRewardProvider rewards) { tag.setString("RewardUUID", rewards.getUniqueID().toString()); } }