Advertisement
Chiddix

MultiKillListener

Mar 2nd, 2014
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.20 KB | None | 0 0
  1. package me.rabrg.combatcounter.listener;
  2.  
  3. import me.rabrg.combatcounter.CombatCounter;
  4.  
  5. import org.bukkit.ChatColor;
  6. import org.bukkit.entity.EntityType;
  7. import org.bukkit.entity.Player;
  8. import org.bukkit.event.EventHandler;
  9. import org.bukkit.event.EventPriority;
  10. import org.bukkit.event.Listener;
  11. import org.bukkit.event.entity.EntityDeathEvent;
  12. import org.bukkit.metadata.FixedMetadataValue;
  13.  
  14. public final class MultiKillListener implements Listener {
  15.  
  16.     private final CombatCounter combatCounter;
  17.  
  18.     public MultiKillListener(final CombatCounter combatCounter) {
  19.         this.combatCounter = combatCounter;
  20.     }
  21.  
  22.     @EventHandler(priority = EventPriority.MONITOR)
  23.     public void onEntityDeathEvent(final EntityDeathEvent event) {
  24.         if (event.getEntityType() == EntityType.PLAYER) {
  25.             final Player killer = event.getEntity().getKiller();
  26.             if (killer != null) {
  27.                 if (killer.hasMetadata("multi-kill.time") && System.currentTimeMillis() - killer.getMetadata("multi-kill.time").get(0).asLong() < 3000) { // TODO: config
  28.                     final int count = killer.getMetadata("multi-kill.count").get(0).asInt() + 1;
  29.                     killer.setMetadata("multi-kill.count", new FixedMetadataValue(combatCounter, count));
  30.                     combatCounter.getServer().broadcastMessage(getMessage(killer.getName(), count));
  31.                 } else {
  32.                     killer.setMetadata("multi-kill.count", new FixedMetadataValue(combatCounter, 1));
  33.                 }
  34.                 killer.setMetadata("multi-kill.time", new FixedMetadataValue(combatCounter, System.currentTimeMillis()));
  35.             }
  36.         }
  37.     }
  38.  
  39.     private String getMessage(final String name, final int count) {
  40.         final StringBuffer message = new StringBuffer().append(ChatColor.RED + name + ChatColor.WHITE + " has gotten a " + ChatColor.LIGHT_PURPLE); // TODO: config
  41.         switch (count) {
  42.         case 2:
  43.             message.append("double kill");
  44.             break;
  45.         case 3:
  46.             message.append("multi kill");
  47.             break;
  48.         case 4:
  49.             message.append("mega kill");
  50.             break;
  51.         case 5:
  52.             message.append("ultra kill");
  53.             break;
  54.         case 6:
  55.             message.append("monster kill");
  56.             break;
  57.         case 7:
  58.             message.append("ludicrous kill");
  59.             break;
  60.         default:
  61.             message.append("HOLY SH**T");
  62.             break;
  63.         }
  64.         return message.append(ChatColor.WHITE + "!").toString();
  65.     }
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement