stoneharry

Untitled

Aug 15th, 2012
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.53 KB | None | 0 0
  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package main;
  6.  
  7. import java.util.HashMap;
  8. import java.util.Random;
  9. import java.util.logging.Logger;
  10. import org.bukkit.Bukkit;
  11. import org.bukkit.ChatColor;
  12. import org.bukkit.entity.Entity;
  13. import org.bukkit.entity.Player;
  14. import org.bukkit.event.EventHandler;
  15. import org.bukkit.event.Listener;
  16. import org.bukkit.event.player.PlayerJoinEvent;
  17. import org.bukkit.event.player.PlayerQuitEvent;
  18. import org.bukkit.plugin.java.JavaPlugin;
  19. import org.bukkit.event.player.PlayerMoveEvent;
  20.  
  21. /**
  22.  *
  23.  * @author Harry
  24.  */
  25.  
  26. public class zombieMain extends JavaPlugin implements Listener
  27. {
  28.     private static Logger console = null;
  29.     private static HashMap<String, String> humans;
  30.     public static Boolean gameRunning = false;
  31.     private final Boolean debug = false;
  32.    
  33.     public void onDisable()
  34.     {
  35.         humans.clear();
  36.         console.info("[StonedZombie] Stoneharry - Disabled!");
  37.     }
  38.  
  39.     public void onEnable()
  40.     {
  41.         console = Logger.getLogger("Minecraft");
  42.         humans = new HashMap<String, String>();
  43.         getServer().getPluginManager().registerEvents(this, this);
  44.         console.info("[StonedZombie] Stoneharry - Enabled!");
  45.     }
  46.    
  47.     @EventHandler
  48.     public void onPlayerMove(PlayerMoveEvent event)
  49.     {
  50.         if (gameRunning)
  51.         {
  52.             Player plr = event.getPlayer();
  53.            
  54.             for (Entity entity : plr.getNearbyEntities(0.7, 0.7, 0.7))
  55.             {
  56.                 if (entity instanceof Player)
  57.                 {
  58.                    
  59.                     DebugMessage("Found player!", plr);
  60.                    
  61.                     Player target = (Player)entity;
  62.                     if (humans.containsKey(target.getName()) && !humans.containsKey(plr.getName()))
  63.                     {
  64.                         humans.remove(target.getName());
  65.                         target.sendMessage(ChatColor.RED + "[ChaoticUnited] " + ChatColor.AQUA + "You have been infected by " + plr.getName() + "!");
  66.                         plr.sendMessage(ChatColor.RED + "[ChaoticUnited] " + ChatColor.AQUA + "You have infected " + target.getName() + "!");
  67.                         target.setDisplayName("[" + ChatColor.RED + "Zombie" + ChatColor.WHITE + "] " + target.getName());
  68.                         if (humans.isEmpty() && gameRunning)
  69.                         {
  70.                             Bukkit.broadcastMessage(ChatColor.RED + "[ChaoticUnited] " + ChatColor.AQUA + "All humans have been caught! The game will end in 10 seconds...");
  71.                             getServer().getScheduler().scheduleAsyncDelayedTask(this, new Runnable()
  72.                             {
  73.                                public void run()
  74.                                {
  75.                                    gameRunning = false;
  76.                                }
  77.                             }, 200L);
  78.                         }
  79.                         else
  80.                         {
  81.                             Bukkit.broadcastMessage(ChatColor.RED + "[ChaoticUnited] " + ChatColor.AQUA + "There are " + String.valueOf(humans.size()) + " humans remaining!");
  82.                         }
  83.                     }
  84.                 }
  85.             }
  86.             for (String name : humans.values())
  87.             {
  88.                 if (Bukkit.getPlayer(name) == null)
  89.                 {
  90.                    
  91.                     DebugMessage("Removing player for being null", plr);
  92.                    
  93.                     humans.remove(name);
  94.                 }
  95.             }
  96.         }
  97.         else
  98.         {
  99.             Player players[] = Bukkit.getOnlinePlayers();
  100.             if (players.length > 2)
  101.             {
  102.                
  103.                 DebugMessage("Starting game!", event.getPlayer());
  104.                
  105.                  Random ran = new Random();
  106.                  int x = ran.nextInt(players.length - 1);
  107.                  for (int i = 0; i < players.length; i++)
  108.                  {
  109.                      if (i == x)
  110.                      {
  111.                          Bukkit.broadcastMessage(ChatColor.RED + "[ChaoticUnited] " + ChatColor.AQUA + "The game has begun and " + players[i].getName() + " is the first zombie!");
  112.                          players[i].setDisplayName("[" + ChatColor.RED + "Zombie" + ChatColor.WHITE + "] " + players[i].getName());
  113.                      }
  114.                      else
  115.                      {
  116.                          players[i].setDisplayName("[" + ChatColor.GREEN + "Human" + ChatColor.WHITE + "] " + players[i].getName());
  117.                          humans.put(players[i].getName(), players[i].getName());
  118.                      }
  119.                  }
  120.                  gameRunning = true;
  121.             }
  122.         }
  123.     }
  124.    
  125.     @EventHandler
  126.     public void onPlayerJoin(PlayerJoinEvent event)
  127.     {
  128.         if (gameRunning)
  129.         {
  130.             event.getPlayer().sendMessage(ChatColor.RED + "[ChaoticUnited] " + ChatColor.AQUA + "The game is in progress already! You have joined as a Zombie. Catch the humans!");
  131.             event.getPlayer().setDisplayName("[Zombie] " + event.getPlayer().getName());
  132.         }
  133.         event.setJoinMessage(null);
  134.     }
  135.    
  136.     @EventHandler
  137.     public void onPlayerLeave(PlayerQuitEvent event)
  138.     {
  139.         event.setQuitMessage(null);
  140.     }
  141.    
  142.     private void DebugMessage(String message, Player plr)
  143.     {
  144.         if (debug)
  145.         {
  146.             console.info(message);
  147.             plr.sendMessage(message);
  148.         }
  149.     }
  150.    
  151. }
Advertisement
Add Comment
Please, Sign In to add comment