Advertisement
Guest User

Untitled

a guest
Mar 31st, 2013
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 11.71 KB | None | 0 0
  1. package com.gmail.filoghost.healthbar;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. import java.io.InputStreamReader;
  7. import java.io.Reader;
  8. import java.net.MalformedURLException;
  9. import java.net.URL;
  10. import java.net.URLConnection;
  11. import java.util.ArrayList;
  12. import java.util.Collection;
  13. import java.util.List;
  14.  
  15. import net.minecraft.server.v1_5_R2.Scoreboard;
  16. import net.minecraft.server.v1_5_R2.ScoreboardTeam;
  17. import net.minecraft.server.v1_5_R2.World;
  18. import org.bukkit.craftbukkit.v1_5_R2.CraftWorld;
  19.  
  20.  
  21.  
  22. import org.bukkit.Bukkit;
  23. import org.bukkit.Location;
  24. import org.bukkit.command.Command;
  25. import org.bukkit.command.CommandSender;
  26. import org.bukkit.configuration.file.FileConfiguration;
  27. import org.bukkit.entity.Player;
  28. import org.bukkit.plugin.java.JavaPlugin;
  29. import org.bukkit.scheduler.BukkitScheduler;
  30.  
  31. import com.gmail.filoghost.healthbar.metrics.Metrics;
  32.  
  33.  
  34. public class Main extends JavaPlugin {
  35.     public static Main main;
  36.    
  37.     @Override
  38.     public void onEnable() {
  39.         main = this;
  40.        
  41.         saveDefaultConfig();
  42.        
  43.         saveConfig();
  44.         FileConfiguration config = getConfig();
  45.         //fix missing entries
  46.         checkDefaultConfigs(config);
  47.        
  48.         getServer().getPluginManager().registerEvents(new DefaultListener(), this);
  49.         //Choose to alter death messages
  50.         try {
  51.             if (config.getBoolean("send-metrics")) {
  52.                 try {
  53.                     Metrics metrics = new Metrics(this);
  54.                     metrics.start();
  55.                 } catch (IOException e) {System.out.println("[HealthBar] Failed to submit stats");}
  56.             }
  57.             if (config.getBoolean("fix-death-messages")) {
  58.                 getServer().getPluginManager().registerEvents(new DeathListener(), this);
  59.             }
  60.             if (config.getBoolean("player-bars.enable")) {
  61.                 removeHealthTeams();
  62.                 create20Teams();
  63.             }
  64.         }
  65.         catch (Exception e) {
  66.             System.out.println(e);
  67.             getServer().getConsoleSender().sendMessage("§c[Health Bar] Failed to load configs, read the exception§r");
  68.         }
  69.        
  70.         if (config.getBoolean("update-notification")) {
  71.             try { checkForUpdates(); } catch (Exception e) {}
  72.         }
  73.  
  74. //end of onEnable
  75.     }
  76.  
  77.     public void onDisable() {
  78.         removeHealthTeams();
  79.         getServer().getScheduler().cancelAllTasks();
  80.         System.out.println("Health Display disabled.");
  81.     }
  82.    
  83.    
  84.     private void checkDefaultConfigs(FileConfiguration config) {       
  85.        
  86.         if (!config.isSet("player-bars.enable")) {config.set("player-bars.enable", true);}
  87.         if (!config.isSet("player-bars.display-style")) {config.set("player-bars.display-style", 1);}
  88.         if (!config.isSet("player-bars.text-mode")) {config.set("player-bars.text-mode", false);}
  89.        
  90.         if (!config.isSet("mob-bars.enable")) {config.set("mob-bars.enable", true);}
  91.         if (!config.isSet("mob-bars.text-mode")) {config.set("mob-bars.text-mode", false);}
  92.        
  93.         if (!config.isSet("fix-death-messages")) {config.set("fix-death-messages", true);}
  94.         if (!config.isSet("update-notification")) {config.set("update-notification", true);}
  95.         if (!config.isSet("send-metrics")) {config.set("send-metrics", true);}
  96.         saveConfig();
  97.     }
  98.    
  99.     @SuppressWarnings("unchecked")
  100.     private void removeHealthTeams() {
  101.         World mcWorld = ((CraftWorld)Bukkit.getWorlds().get(0)).getHandle();
  102.         for (ScoreboardTeam team : (ScoreboardTeam[])mcWorld.getScoreboard().getTeams().toArray(new ScoreboardTeam[mcWorld.getScoreboard().getTeams().size()])) {
  103.             if (team.getName().contains("Health")) {
  104.                 mcWorld.getScoreboard().removeTeam(team);
  105.             }
  106.         }
  107.     }
  108.    
  109.     private void create20Teams() {
  110.         Scoreboard sb = (((CraftWorld)Bukkit.getWorlds().get(0)).getHandle()).getScoreboard();
  111.         if (getConfig().getBoolean("player-bars.text-mode")) {
  112.             sb.createTeam("Health0"); sb.getTeam("Health0").setSuffix("");
  113.             sb.createTeam("Health1"); sb.getTeam("Health1").setSuffix(" - §c1§r/§a20");
  114.             sb.createTeam("Health2"); sb.getTeam("Health2").setSuffix(" - §c2§r/§a20");
  115.             sb.createTeam("Health3"); sb.getTeam("Health3").setSuffix(" - §c3§r/§a20");
  116.             sb.createTeam("Health4"); sb.getTeam("Health4").setSuffix(" - §c4§r/§a20");
  117.             sb.createTeam("Health5"); sb.getTeam("Health5").setSuffix(" - §e5§r/§a20");
  118.             sb.createTeam("Health6"); sb.getTeam("Health6").setSuffix(" - §e6§r/§a20");
  119.             sb.createTeam("Health7"); sb.getTeam("Health7").setSuffix(" - §e7§r/§a20");
  120.             sb.createTeam("Health8"); sb.getTeam("Health8").setSuffix(" - §e8§r/§a20");
  121.             sb.createTeam("Health9"); sb.getTeam("Health9").setSuffix(" - §e9§r/§a20");
  122.             sb.createTeam("Health10"); sb.getTeam("Health10").setSuffix(" - §e10§r/§a20");
  123.             sb.createTeam("Health11"); sb.getTeam("Health11").setSuffix(" - §a11§r/§a20");
  124.             sb.createTeam("Health12"); sb.getTeam("Health12").setSuffix(" - §a12§r/§a20");
  125.             sb.createTeam("Health13"); sb.getTeam("Health13").setSuffix(" - §a13§r/§a20");
  126.             sb.createTeam("Health14"); sb.getTeam("Health14").setSuffix(" - §a14§r/§a20");
  127.             sb.createTeam("Health15"); sb.getTeam("Health15").setSuffix(" - §a15§r/§a20");
  128.             sb.createTeam("Health16"); sb.getTeam("Health16").setSuffix(" - §a16§r/§a20");
  129.             sb.createTeam("Health17"); sb.getTeam("Health17").setSuffix(" - §a17§r/§a20");
  130.             sb.createTeam("Health18"); sb.getTeam("Health18").setSuffix(" - §a18§r/§a20");
  131.             sb.createTeam("Health19"); sb.getTeam("Health19").setSuffix(" - §a19§r/§a20");
  132.             sb.createTeam("Health20"); sb.getTeam("Health20").setSuffix(" - §a20§r/§a20");
  133.             return;
  134.         }
  135.         if (getConfig().getInt("player-bars.display-style") == 2) {
  136.             sb.createTeam("Health0"); sb.getTeam("Health0").setSuffix("");
  137.             sb.createTeam("Health1"); sb.getTeam("Health1").setSuffix(" §cI§8IIIIIIIII");
  138.             sb.createTeam("Health2"); sb.getTeam("Health2").setSuffix(" §cI§8IIIIIIIII");
  139.             sb.createTeam("Health3"); sb.getTeam("Health3").setSuffix(" §cII§8IIIIIIII");
  140.             sb.createTeam("Health4"); sb.getTeam("Health4").setSuffix(" §cII§8IIIIIIII");
  141.             sb.createTeam("Health5"); sb.getTeam("Health5").setSuffix(" §eIII§8IIIIIII");
  142.             sb.createTeam("Health6"); sb.getTeam("Health6").setSuffix(" §eIII§8IIIIIII");
  143.             sb.createTeam("Health7"); sb.getTeam("Health7").setSuffix(" §eIIII§8IIIIII");
  144.             sb.createTeam("Health8"); sb.getTeam("Health8").setSuffix(" §eIIII§8IIIIII");
  145.             sb.createTeam("Health9"); sb.getTeam("Health9").setSuffix(" §eIIIII§8IIIII");
  146.             sb.createTeam("Health10"); sb.getTeam("Health10").setSuffix(" §eIIIII§8IIIII");
  147.             sb.createTeam("Health11"); sb.getTeam("Health11").setSuffix(" §aIIIIII§8IIII");
  148.             sb.createTeam("Health12"); sb.getTeam("Health12").setSuffix(" §aIIIIII§8IIII");
  149.             sb.createTeam("Health13"); sb.getTeam("Health13").setSuffix(" §aIIIIIII§8III");
  150.             sb.createTeam("Health14"); sb.getTeam("Health14").setSuffix(" §aIIIIIII§8III");
  151.             sb.createTeam("Health15"); sb.getTeam("Health15").setSuffix(" §aIIIIIIII§8II");
  152.             sb.createTeam("Health16"); sb.getTeam("Health16").setSuffix(" §aIIIIIIII§8II");
  153.             sb.createTeam("Health17"); sb.getTeam("Health17").setSuffix(" §aIIIIIIIII§8I");
  154.             sb.createTeam("Health18"); sb.getTeam("Health18").setSuffix(" §aIIIIIIIII§8I");
  155.             sb.createTeam("Health19"); sb.getTeam("Health19").setSuffix(" §aIIIIIIIIII");
  156.             sb.createTeam("Health20"); sb.getTeam("Health20").setSuffix(" §aIIIIIIIIII");
  157.             return;
  158.         }
  159.         if (getConfig().getInt("player-bars.display-style") == 3) {
  160.             sb.createTeam("Health0"); sb.getTeam("Health0").setSuffix("");
  161.             sb.createTeam("Health1"); sb.getTeam("Health1").setSuffix(" §c▌");
  162.             sb.createTeam("Health2"); sb.getTeam("Health2").setSuffix(" §c█");
  163.             sb.createTeam("Health3"); sb.getTeam("Health3").setSuffix(" §c█▌");
  164.             sb.createTeam("Health4"); sb.getTeam("Health4").setSuffix(" §c██");
  165.             sb.createTeam("Health5"); sb.getTeam("Health5").setSuffix(" §e██▌");
  166.             sb.createTeam("Health6"); sb.getTeam("Health6").setSuffix(" §e███");
  167.             sb.createTeam("Health7"); sb.getTeam("Health7").setSuffix(" §e███▌");
  168.             sb.createTeam("Health8"); sb.getTeam("Health8").setSuffix(" §e████");
  169.             sb.createTeam("Health9"); sb.getTeam("Health9").setSuffix(" §e████▌");
  170.             sb.createTeam("Health10"); sb.getTeam("Health10").setSuffix(" §e█████");
  171.             sb.createTeam("Health11"); sb.getTeam("Health11").setSuffix(" §a█████▌");
  172.             sb.createTeam("Health12"); sb.getTeam("Health12").setSuffix(" §a██████");
  173.             sb.createTeam("Health13"); sb.getTeam("Health13").setSuffix(" §a██████▌");
  174.             sb.createTeam("Health14"); sb.getTeam("Health14").setSuffix(" §a███████");
  175.             sb.createTeam("Health15"); sb.getTeam("Health15").setSuffix(" §a███████▌");
  176.             sb.createTeam("Health16"); sb.getTeam("Health16").setSuffix(" §a████████");
  177.             sb.createTeam("Health17"); sb.getTeam("Health17").setSuffix(" §a████████▌");
  178.             sb.createTeam("Health18"); sb.getTeam("Health18").setSuffix(" §a█████████");
  179.             sb.createTeam("Health19"); sb.getTeam("Health19").setSuffix(" §a█████████▌");
  180.             sb.createTeam("Health20"); sb.getTeam("Health20").setSuffix(" §a██████████");
  181.             return;
  182.         }
  183.         sb.createTeam("Health0"); sb.getTeam("Health0").setSuffix("");
  184.         sb.createTeam("Health1"); sb.getTeam("Health1").setSuffix(" §c|§8|||||||||");
  185.         sb.createTeam("Health2"); sb.getTeam("Health2").setSuffix(" §c|§8|||||||||");
  186.         sb.createTeam("Health3"); sb.getTeam("Health3").setSuffix(" §c||§8||||||||");
  187.         sb.createTeam("Health4"); sb.getTeam("Health4").setSuffix(" §c||§8||||||||");
  188.         sb.createTeam("Health5"); sb.getTeam("Health5").setSuffix(" §e|||§8|||||||");
  189.         sb.createTeam("Health6"); sb.getTeam("Health6").setSuffix(" §e|||§8|||||||");
  190.         sb.createTeam("Health7"); sb.getTeam("Health7").setSuffix(" §e||||§8||||||");
  191.         sb.createTeam("Health8"); sb.getTeam("Health8").setSuffix(" §e||||§8||||||");
  192.         sb.createTeam("Health9"); sb.getTeam("Health9").setSuffix(" §e|||||§8|||||");
  193.         sb.createTeam("Health10"); sb.getTeam("Health10").setSuffix(" §e|||||§8|||||");
  194.         sb.createTeam("Health11"); sb.getTeam("Health11").setSuffix(" §a||||||§8||||");
  195.         sb.createTeam("Health12"); sb.getTeam("Health12").setSuffix(" §a||||||§8||||");
  196.         sb.createTeam("Health13"); sb.getTeam("Health13").setSuffix(" §a|||||||§8|||");
  197.         sb.createTeam("Health14"); sb.getTeam("Health14").setSuffix(" §a|||||||§8|||");
  198.         sb.createTeam("Health15"); sb.getTeam("Health15").setSuffix(" §a||||||||§8||");
  199.         sb.createTeam("Health16"); sb.getTeam("Health16").setSuffix(" §a||||||||§8||");
  200.         sb.createTeam("Health17"); sb.getTeam("Health17").setSuffix(" §a|||||||||§8|");
  201.         sb.createTeam("Health18"); sb.getTeam("Health18").setSuffix(" §a|||||||||§8|");
  202.         sb.createTeam("Health19"); sb.getTeam("Health19").setSuffix(" §a||||||||||");
  203.         sb.createTeam("Health20"); sb.getTeam("Health20").setSuffix(" §a||||||||||");
  204.         return;
  205.     }
  206.    
  207.     private void checkForUpdates() {
  208.         Thread thread = new Thread(new Runnable() {
  209.             public void run() {
  210.                 try {
  211.                     URLConnection url = new URL("http://mcwild.altervista.org/version.html").openConnection();
  212.                     url.setConnectTimeout(5000);
  213.                     url.setReadTimeout(8000);
  214.                     BufferedReader in = new BufferedReader(new InputStreamReader(url.getInputStream()));
  215.            
  216.                     final String version = in.readLine();
  217.                     if (!(version.equals(getDescription().getVersion())))
  218.                         Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(main, new Runnable() {
  219.                             public void run() {
  220.                                 getServer().getConsoleSender().sendMessage("§a[HealthBar] Found an update: " + version + "   (Your version: " + getDescription().getVersion() + ")");
  221.                                 getServer().getConsoleSender().sendMessage("§a[HealthBar] Download it at §fbit.ly/health-bar §a(bukkitDev)");
  222.                             }
  223.                         });
  224.                        
  225.                     in.close();
  226.                 } catch (Exception e) {}
  227.             }
  228.         });
  229.         thread.start();
  230.     }
  231.    
  232. //end of the class
  233. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement