2017-05-20 23:52:52 +02:00
|
|
|
package us.tastybento.bskyblock.database;
|
2017-05-20 23:09:53 +02:00
|
|
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
import java.util.Map.Entry;
|
|
|
|
import java.util.UUID;
|
|
|
|
|
2017-05-20 23:52:52 +02:00
|
|
|
import us.tastybento.bskyblock.BSkyBlock;
|
2017-05-20 23:57:36 +02:00
|
|
|
import us.tastybento.bskyblock.database.objects.APlayer;
|
2017-05-20 23:09:53 +02:00
|
|
|
|
|
|
|
public class PlayersManager{
|
|
|
|
|
2017-05-20 23:52:52 +02:00
|
|
|
private BSkyBlock plugin;
|
2017-05-20 23:09:53 +02:00
|
|
|
private ASBDatabase database;
|
|
|
|
|
2017-05-20 23:57:36 +02:00
|
|
|
private HashMap<UUID, APlayer> players;
|
2017-05-20 23:09:53 +02:00
|
|
|
|
2017-05-20 23:52:52 +02:00
|
|
|
public PlayersManager(BSkyBlock plugin){
|
2017-05-20 23:09:53 +02:00
|
|
|
this.plugin = plugin;
|
|
|
|
database = ASBDatabase.getDatabase();
|
2017-05-20 23:57:36 +02:00
|
|
|
players = new HashMap<UUID, APlayer>();
|
2017-05-20 23:09:53 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public void load(){
|
|
|
|
//TODO
|
|
|
|
}
|
|
|
|
|
|
|
|
public void save(boolean async){
|
|
|
|
if(async){
|
|
|
|
plugin.getServer().getScheduler().runTaskAsynchronously(plugin, new Runnable() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void run() {
|
2017-05-20 23:57:36 +02:00
|
|
|
for(Entry<UUID, APlayer> entry : players.entrySet()){
|
2017-05-20 23:09:53 +02:00
|
|
|
database.savePlayerData(entry.getValue());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
} else {
|
2017-05-20 23:57:36 +02:00
|
|
|
for(Entry<UUID, APlayer> entry : players.entrySet()){
|
2017-05-20 23:09:53 +02:00
|
|
|
database.savePlayerData(entry.getValue());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public void shutdown(){
|
|
|
|
save(false);
|
|
|
|
players.clear();
|
|
|
|
}
|
|
|
|
|
2017-05-20 23:57:36 +02:00
|
|
|
public APlayer getPlayer(UUID uuid){
|
2017-05-20 23:09:53 +02:00
|
|
|
return players.get(uuid);
|
|
|
|
}
|
|
|
|
}
|