package de.tobiyas.racesandclasses.saving.serializer;
import java.util.Collection;
import java.util.Set;
import java.util.UUID;
import de.tobiyas.racesandclasses.saving.PlayerSavingData;
public interface PlayerDataSerializer {
public static final String RACE_PATH = "race";
public static final String CLASS_PATH = "class";
public static final String HOTKEY_PATH = "hotkeys";
public static final String SKILL_TREE_PATH = "skilltree";
public static final String UUID_PATH = "id";
public static final String LAST_NAME_PATH = "lastname";
public static final String LAST_PLAYED_PATH = "lastplayed";
public static final String GOD_MODE_PATH = "god";
public static final String LEVEL_PATH = "level";
public static final String EXP_PATH = "exp";
/**
* Saves the Data.
* @param data to save.
*/
public void saveData(PlayerSavingData data);
/**
* Loadss the Player data.
* @param id to load.
* @param callback to call.
*/
public void loadData(UUID id, PlayerDataLoadedCallback callback);
/**
* Bulk-Loads data.
* @param ids to load
* @param callback to call after got data.
*/
public void bulkLoadData(final Set<UUID> ids, final PlayerDataLoadedCallback callback);
/**
* Bulk-Loads data.
* @param ids to load
* @param callback to call after got data.
*
* @return returns the Bulk-Loaded Data.
*/
public Collection<PlayerSavingData> bulkLoadDataNow(Set<UUID> ids);
/**
* Loadss the Player data.
* @param id to load.
* @param callback to call.
*/
public PlayerSavingData loadDataNow(UUID id);
/**
* Returns all IDs present.
* @return all present IDs.
*/
public Set<UUID> getAllIDsPresent();
/**
* Shuts down the Serializer.
*/
public void shutdown();
/**
* If the Serializer is useable.
* @return true if useable.
*/
public boolean isFunctional();
interface PlayerDataLoadedCallback {
/**
* The Data got loaded.
* @param data that was loaded.
*/
public void playerDataLoaded(PlayerSavingData data);
}
enum DataSerializerType {
YAML,
DATABASE,
DISABLED
}
}