bentobox/src/main/java/us/tastybento/bskyblock/database/ASBDatabase.java

44 lines
1.4 KiB
Java
Executable File

package us.tastybento.bskyblock.database;
import java.util.HashMap;
import java.util.List;
import java.util.UUID;
import us.tastybento.bskyblock.config.Settings;
import us.tastybento.bskyblock.database.flatfile.FlatFileDatabase;
import us.tastybento.bskyblock.database.mysql.MySQLDatabase;
import us.tastybento.bskyblock.database.objects.Island;
import us.tastybento.bskyblock.database.objects.APlayer;
import us.tastybento.bskyblock.database.sqlite.SQLiteDatabase;
public abstract class ASBDatabase {
public static ASBDatabase getDatabase(){
for(DatabaseType type : DatabaseType.values()){
if(type == Settings.databaseType) return type.database;
}
return DatabaseType.FLATFILE.database;
}
public abstract APlayer loadPlayerData(UUID uuid);
public abstract void savePlayerData(APlayer player);
public abstract Island loadIslandData(String location);
public abstract void saveIslandData(Island island);
public abstract HashMap<UUID, List<String>> loadOfflineHistoryMessages();
public abstract void saveOfflineHistoryMessages(HashMap<UUID, List<String>> messages);
public enum DatabaseType{
FLATFILE(new FlatFileDatabase()),
MYSQL(new MySQLDatabase()),
SQLITE(new SQLiteDatabase());
ASBDatabase database;
DatabaseType(ASBDatabase database){
this.database = database;
}
}
}