package me.gtacraft.plugins.barannouncer;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.HashMap;
import java.util.List;
/**
* Created by Connor on 7/9/14. Designed for the GTA-BarAnnouncer project.
*/
public class BarAnnouncer extends JavaPlugin implements Listener {
public void onEnable() {
saveDefaultConfig();
getServer().getPluginManager().registerEvents(this, this);
final List<String> announce = getConfig().getStringList("announcements");
Runnable tick = new Runnable() {
int pos = 0;
public void run() {
if (++pos >= announce.size())
pos = 0;
String s = ChatColor.translateAlternateColorCodes('&', announce.get(pos));
float percent = ((float)pos/(float)announce.size());
for (Player p : async_player_map.values()) {
StatusBarAPI.setStatusBar(p, s.replace("{PLAYER}", p.getName()), percent);
}
}
};
int delay = getConfig().getInt("delay");
Bukkit.getScheduler().scheduleAsyncRepeatingTask(this, tick, delay, delay);
}
public void onDisable() {
saveDefaultConfig();
}
public static volatile HashMap<String, Player> async_player_map = new HashMap<>();
@EventHandler
public void onJoin(PlayerJoinEvent event) {
async_player_map.put(event.getPlayer().getName(), event.getPlayer());
}
@EventHandler
public void onQuit(PlayerQuitEvent event) throws Exception {
async_player_map.remove(event.getPlayer().getName());
StatusBarAPI.removeStatusBar(event.getPlayer());
}
}