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

95 lines
2.2 KiB
Java
Raw Normal View History

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;
import org.bukkit.Location;
2017-05-20 23:52:52 +02:00
import us.tastybento.bskyblock.BSkyBlock;
import us.tastybento.bskyblock.database.objects.Island;
2017-05-20 23:09:53 +02:00
public class IslandsManager {
2017-05-20 23:52:52 +02:00
private BSkyBlock plugin;
2017-05-21 08:03:17 +02:00
private BSBDatabase database;
2017-05-20 23:09:53 +02:00
private HashMap<Location, Island> islands;
private Island spawn;
// Metrics data
private int metrics_createdcount = 0;
2017-05-20 23:52:52 +02:00
public IslandsManager(BSkyBlock plugin){
2017-05-20 23:09:53 +02:00
this.plugin = plugin;
2017-05-21 08:03:17 +02:00
database = BSBDatabase.getDatabase();
2017-05-20 23:09:53 +02:00
islands = new HashMap<Location, Island>();
spawn = null;
}
public void load(){
//TODO
}
public void save(boolean async){
if(async){
plugin.getServer().getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
for(Entry<Location, Island> entry : islands.entrySet()){
database.saveIslandData(entry.getValue());
}
}
});
} else {
for(Entry<Location, Island> entry : islands.entrySet()){
database.saveIslandData(entry.getValue());
}
}
}
public void shutdown(){
save(false);
islands.clear();
}
public int getCount(){
return islands.size();
}
public boolean isIsland(Location location){
return islands.get(location) != null;
}
public Island getIsland(Location location){
return islands.get(location);
}
public Island getIsland(UUID uuid){
return plugin.getPlayers().getPlayer(uuid).getIsland();
}
public void createIsland(Location location){
//TODO
}
public void deleteIsland(Location location){
//TODO
}
public Island getSpawn(){
return spawn;
}
// Metrics-related methods //
public int metrics_getCreatedCount(){
return metrics_createdcount;
}
public void metrics_setCreatedCount(int count){
this.metrics_createdcount = count;
}
}