stoneharry

Untitled

May 24th, 2012
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.44 KB | None | 0 0
  1.  
  2. package PvP;
  3.  
  4. import java.util.HashMap;
  5. import java.util.logging.Logger;
  6. import org.bukkit.ChatColor;
  7. import org.bukkit.command.Command;
  8. import org.bukkit.command.CommandSender;
  9. import org.bukkit.entity.LivingEntity;
  10. import org.bukkit.entity.Player;
  11. import org.bukkit.entity.ThrownPotion;
  12. import org.bukkit.event.EventHandler;
  13. import org.bukkit.event.Listener;
  14. import org.bukkit.event.entity.EntityDamageByEntityEvent;
  15. import org.bukkit.event.entity.EntityDamageEvent;
  16. import org.bukkit.event.entity.PotionSplashEvent;
  17. import org.bukkit.event.player.PlayerLoginEvent;
  18. import org.bukkit.plugin.java.JavaPlugin;
  19.  
  20. /**
  21.  *
  22.  * @author Harry
  23.  */
  24. public class pvpmain extends JavaPlugin implements Listener
  25. {
  26.    
  27.     public static HashMap<String, Long> names;
  28.    
  29.     public void onEnable() {
  30.         names = new HashMap<String, Long>();
  31.         Logger.getLogger("Minecraft").info("[StonedPvP] Stoneharry's PvP System Enabled.");
  32.         getServer().getPluginManager().registerEvents(this, this);
  33.     }
  34.  
  35.     public void onDisable() {
  36.         names.clear();
  37.         Logger.getLogger("Minecraft").info("[AntiPvP] Stoneharry's PvP System Disabled.");
  38.     }
  39.    
  40.     @EventHandler
  41.     public void OnPlayerDamage(EntityDamageEvent event)
  42.     {
  43.         if (event.isCancelled())
  44.             return;
  45.        
  46.         if ((event.getEntity() instanceof Player))
  47.         {
  48.             if ((event instanceof EntityDamageByEntityEvent))
  49.             {
  50.                 Player plr = (Player)event.getEntity();
  51.                 EntityDamageByEntityEvent edbye = (EntityDamageByEntityEvent)event;
  52.                 if (edbye.getDamager() instanceof Player)
  53.                 {
  54.                     Player damager = (Player)edbye.getDamager();
  55.                     if (names.containsKey(damager.getName()))
  56.                     {
  57.                         if (names.containsKey(plr.getName()))
  58.                         {
  59.                             String damage = String.valueOf(event.getDamage());
  60.                             plr.sendMessage(ChatColor.RED + "You took " + damage + " from " + damager.getName() + "'s attack!");
  61.                             damager.sendMessage(ChatColor.RED + "You dealt " + damage + " from to " + plr.getName() + "!");
  62.                             names.put(plr.getName(), System.currentTimeMillis());
  63.                         }
  64.                         else
  65.                         {
  66.                             damager.sendMessage(ChatColor.AQUA + "[ChaoticUnited] " + ChatColor.RED + "Your target does not have PvP enabled.");
  67.                             event.setCancelled(true);
  68.                         }
  69.                     }
  70.                     else
  71.                     {
  72.                         damager.sendMessage(ChatColor.AQUA + "[ChaoticUnited] " + ChatColor.RED + "You do not have PvP enabled. To turn it on, do: /pvp");  
  73.                         event.setCancelled(true);                      
  74.                     }
  75.                 }
  76.             }
  77.         }
  78.     }
  79.    
  80.     @EventHandler
  81.     public void PotionHit(PotionSplashEvent event)
  82.     {
  83.         if (event.isCancelled())
  84.             return;
  85.  
  86.         ThrownPotion potion = event.getPotion();
  87.         if ((potion.getShooter() instanceof Player))
  88.         {
  89.             Player damager = (Player)potion.getShooter();
  90.             for (LivingEntity entity : event.getAffectedEntities())
  91.             {
  92.                 if ((!(entity instanceof Player)) || (((Player)entity).equals(damager)))
  93.                         continue;
  94.                    
  95.                 Player plr = (Player)entity;
  96.                 if (!names.containsKey(plr.getName()))
  97.                     event.setCancelled(true);
  98.                
  99.             }
  100.         }
  101.     }
  102.    
  103.     @EventHandler
  104.     public void OnPlayerLogin(PlayerLoginEvent event)
  105.     {
  106.         String name = event.getPlayer().getName();
  107.         if (names.containsKey(name))
  108.         {
  109.             long time = names.get(name);
  110.             int result = (int)(System.currentTimeMillis()-time);
  111.             if (result > 60000)
  112.             {
  113.                 event.getPlayer().damage(1000);
  114.                 event.getPlayer().sendMessage(ChatColor.RED + "You were killed for logging out in PvP!");
  115.                 names.remove(name);
  116.             }
  117.         }
  118.     }
  119.    
  120.     @EventHandler
  121.     public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args)
  122.     {
  123.         if(cmd.getName().equalsIgnoreCase("pvp"))
  124.         {
  125.             String name = sender.getName();
  126.             if (names.containsKey(name))
  127.             {
  128.                 long time = names.get(name);
  129.                 int result = (int)(System.currentTimeMillis()-time);
  130.                 if (result < 30000)
  131.                 {
  132.                     names.remove(name);
  133.                     sender.sendMessage(ChatColor.AQUA + "[ChaoticUnited] " + ChatColor.RED + "PvP is now disabled.");
  134.                 }
  135.                 else
  136.                 {
  137.                     sender.sendMessage(ChatColor.RED + "You must wait " + ChatColor.AQUA + String.valueOf(30-(result/1000)) + ChatColor.RED + " more seconds before you can disable PvP!");
  138.                 }
  139.             }
  140.             else
  141.             {
  142.                 names.put(name, System.currentTimeMillis());
  143.                 sender.sendMessage(ChatColor.AQUA + "[ChaoticUnited] " + ChatColor.RED + "PvP is now enabled.");
  144.             }
  145.             return true;
  146.         }
  147.         return false;
  148.     }
  149. }
Advertisement
Add Comment
Please, Sign In to add comment