package me.gtacraft.plugins.hub.util;
import me.gtacraft.plugins.hub.GTAHub;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.block.Block;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Created by Connor on 7/8/14. Designed for the GTA-Hub project.
*/
public class GTAUtil {
private static Map<String, Integer> countdowns = new HashMap<>();
public static void initCountdowns() {
Runnable run = new Runnable() {
public void run() {
Map<String, Integer> clone = new HashMap<>();
for (String key : countdowns.keySet())
clone.put(key, countdowns.get(key));
countdowns.clear();
for (String key : clone.keySet()) {
int time = clone.get(key);
if (--time > 0)
countdowns.put(key, time);
}
clone.clear();
}
};
Bukkit.getScheduler().scheduleAsyncRepeatingTask(GTAHub.get(), run, 20l, 20l);
}
public static void addCountdownTask(String key, int time) {
countdowns.put(key, time);
}
public static int getTimeLeft(String key) {
return countdowns.containsKey(key) ? countdowns.get(key) : 0;
}
public static String getRegionName(Location l) {
if(!(Bukkit.getPluginManager().isPluginEnabled("WorldGuard"))){
// Ew.
return "";
}
try {
Class<?> bukkitUtil = GTAHub.wg.getClass().getClassLoader().loadClass("com.sk89q.worldguard.bukkit.BukkitUtil");
Method toVector = bukkitUtil.getMethod("toVector", Block.class);
com.sk89q.worldedit.Vector blockVector = (com.sk89q.worldedit.Vector) toVector.invoke(null, l.getBlock());
List<String> regionSet = GTAHub.wg.getGlobalRegionManager().get(l.getWorld()).getApplicableRegionsIDs(blockVector);
if (regionSet.size() < 1) {
return "";
}
String return_region = "";
int return_priority = -1;
for (String region : regionSet) {
int region_priority = GTAHub.wg.getGlobalRegionManager().get(l.getWorld()).getRegion(region).getPriority();
if(return_region.equalsIgnoreCase("")){
// We need to set SOMETHING.
return_region = GTAHub.wg.getGlobalRegionManager().get(l.getWorld()).getRegion(region).getId();
return_priority = region_priority;
}
if(region_priority > return_priority){
return_region = GTAHub.wg.getGlobalRegionManager().get(l.getWorld()).getRegion(region).getId();
return_priority = region_priority;
}
}
if(return_region.contains("global")){
return_region = "";
}
return return_region;
} catch (Exception e) {
}
return "";
}
}