Advertisement
Guest User

Untitled

a guest
Jul 8th, 2014
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.29 KB | None | 0 0
  1. package com.lenis0012.bukkit.pvp.listeners;
  2.  
  3. import java.util.HashMap;
  4. import java.util.Map;
  5.  
  6. import org.bukkit.Bukkit;
  7. import org.bukkit.ChatColor;
  8. import org.bukkit.entity.Entity;
  9. import org.bukkit.entity.Player;
  10. import org.bukkit.event.EventHandler;
  11. import org.bukkit.event.EventPriority;
  12. import org.bukkit.event.Listener;
  13. import org.bukkit.event.entity.EntityDamageByEntityEvent;
  14. import org.bukkit.event.entity.EntityDeathEvent;
  15.  
  16. import com.lenis0012.bukkit.pvp.PvpLevels;
  17. import com.lenis0012.bukkit.pvp.PvpPlayer;
  18.  
  19. public class EntityListener implements Listener {
  20. private PvpLevels plugin;
  21. private Map<String, String> attackers = new HashMap<String, String>();
  22. private Map<String, String> killer = new HashMap<String, String>();
  23.  
  24. public EntityListener(PvpLevels plugin) {
  25. this.plugin = plugin;
  26. }
  27.  
  28. @EventHandler (priority = EventPriority.MONITOR)
  29. public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
  30. if(event.isCancelled())
  31. return;
  32.  
  33. Entity a = event.getEntity();
  34. Entity b = event.getDamager();
  35.  
  36. if(a instanceof Player && b instanceof Player) {
  37. Player defender = (Player) a;
  38. Player attacker = (Player) b;
  39. this.attackers.put(defender.getName(), attacker.getName());
  40. }
  41. }
  42.  
  43. @EventHandler (priority = EventPriority.MONITOR)
  44. public void onEntityDeath(EntityDeathEvent event) {
  45. Entity entity = event.getEntity();
  46.  
  47. if(entity instanceof Player) {
  48. Player defender = (Player) entity;
  49. String dname = defender.getName();
  50. String aname = this.attackers.get(dname);
  51. Player attacker = aname == null ? null : Bukkit.getPlayer(aname);
  52.  
  53. if(attacker != null && attacker.isOnline()) {
  54. PvpPlayer pp = plugin.getPlayer(attacker);
  55. PvpPlayer dpp = plugin.getPlayer(defender);
  56.  
  57. if(killer.containsKey(aname)) {
  58. String value = killer.get(aname);
  59. String[] data = value.split(";");
  60. int allowed = plugin.getConfig().getInt("settings.kill-session");
  61.  
  62. String cname = data[0];
  63. int current = Integer.valueOf(data[1]);
  64.  
  65. if(dname.equals(cname)) {
  66. if(current >= allowed)
  67. return;
  68. else
  69. killer.put(aname, dname+';'+String.valueOf((current + 1)));
  70. } else
  71. killer.put(aname, dname+';'+'1');
  72. } else {
  73. killer.put(aname, dname+';'+'1');
  74. }
  75.  
  76. int kills = pp.getKills();
  77. int killstreak = pp.getKillstreak() + 1;
  78. int lvl = pp.getLevel();
  79. kills += 1;
  80. pp.setKills(kills);
  81. pp.setKillstreak(killstreak);
  82. dpp.setDeaths(dpp.getDeaths() + 1);
  83. dpp.setKillstreak(0);
  84.  
  85. double d = killstreak / 5.0D;
  86. if(String.valueOf(d).endsWith(".0") && PvpLevels.ENABLE_KILLSTREAK_MESSAGES) {
  87. Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("message.killstreak-broadcast").replace("{player}", aname).replace("{killstreak}", Integer.toString(killstreak))));
  88. }
  89.  
  90. if(plugin.levelList.contains(kills)) {
  91. lvl += 1;
  92. pp.setLevel(lvl);
  93. pp.reward(attacker);
  94. if(PvpLevels.ENABLE_LEVEL_MESSAGES) {
  95. Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("message.level-up-broadcast").replace("{player}", aname).replace("{level}", Integer.toString(lvl))));
  96. }
  97. }
  98. }
  99. }
  100. }
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement