package me.gtacraft.plugins.hub; import com.google.common.collect.Lists; import com.sk89q.worldguard.bukkit.WorldGuardPlugin; import me.gtacraft.plugins.hub.listener.GTACoreListener; import me.gtacraft.plugins.hub.listener.GTAJoinLeaveListener; import me.gtacraft.plugins.hub.special.WaterFountain; import me.gtacraft.plugins.hub.task.ScanLocationTask; import me.gtacraft.plugins.hub.util.GTAUtil; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.plugin.java.JavaPlugin; import java.util.ArrayList; import java.util.HashMap; import java.util.List; /** * Created by Connor on 7/8/14. Designed for the GTA-Hub project. */ public class GTAHub extends JavaPlugin { public static Location spawn; private static GTAHub instance; public static WaterFountain water_fountain; public static volatile HashMap<String, Player> async_player_map = new HashMap<>(); public static WorldGuardPlugin wg; public static GTAHub get() { return instance; } public void onEnable() { instance = this; saveDefaultConfig(); Bukkit.getMessenger().registerOutgoingPluginChannel(this, "BungeeCord"); new GTACoreListener(); GTAJoinLeaveListener temp = new GTAJoinLeaveListener(); GTAUtil.initCountdowns(); String[] spawn = getConfig().getString("spawn").split(","); World wSpawn = Bukkit.getWorld(spawn[0]); double xSpawn = Double.parseDouble(spawn[1]); double ySpawn = Double.parseDouble(spawn[2]); double zSpawn = Double.parseDouble(spawn[3]); float yawSpawn = Float.parseFloat(spawn[4]); float pitchSpawn = Float.parseFloat(spawn[5]); this.spawn = new Location(wSpawn, xSpawn, ySpawn, zSpawn, yawSpawn, pitchSpawn); for (Player p : Bukkit.getOnlinePlayers()) { temp.onPlayerJoin(new PlayerJoinEvent(p, null)); } wg = (WorldGuardPlugin)getServer().getPluginManager().getPlugin("WorldGuard"); ScanLocationTask task = new ScanLocationTask(); for (String add : getConfig().getStringList("servers")) { ScanLocationTask.ports.add(add); } Bukkit.getScheduler().scheduleAsyncRepeatingTask(this, task, 20l, 20l); if (getConfig().contains("fountains")) { List<Location> wfLocs = Lists.newArrayList(); for (String parse : getConfig().getStringList("fountains")) { String[] s = parse.split(","); World world = Bukkit.getWorld(s[0]); int x = Integer.parseInt(s[1]); int y = Integer.parseInt(s[2]); int z = Integer.parseInt(s[3]); wfLocs.add(new Location(world, x, y, z)); } water_fountain = new WaterFountain(wfLocs); Runnable tick = new Runnable() { public void run() { water_fountain.tick(); } }; Bukkit.getScheduler().scheduleSyncRepeatingTask(this, tick, 2l, 2l); } } public void onDisable() { saveDefaultConfig(); } public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if (!(sender instanceof Player)) { sender.sendMessage(ChatColor.RED+"You must be a player to use this command!"); return true; } if (!(sender.isOp())) { sender.sendMessage(ChatColor.RED+"You must be opped to run this command!"); return true; } Player player = (Player)sender; Location standing = player.getLocation(); String toString = standing.getWorld().getName()+","+standing.getBlockX()+","+standing.getBlockY()+","+standing.getBlockZ(); List<String> conf = (getConfig().contains("fountains") ? getConfig().getStringList("fountains") : new ArrayList<String>()); conf.add(toString); getConfig().set("fountains", conf); saveConfig(); player.sendMessage(ChatColor.GREEN+"Water fountain location added!"); return true; } }