Advertisement
Guest User

Untitled

a guest
May 29th, 2015
300
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.06 KB | None | 0 0
  1. package com.shepherdjerred.stservermessages.listeners;
  2.  
  3. import java.util.List;
  4. import java.util.Random;
  5.  
  6. import org.apache.commons.lang.WordUtils;
  7. import org.bukkit.entity.Blaze;
  8. import org.bukkit.entity.CaveSpider;
  9. import org.bukkit.entity.EnderDragon;
  10. import org.bukkit.entity.Enderman;
  11. import org.bukkit.entity.Endermite;
  12. import org.bukkit.entity.Entity;
  13. import org.bukkit.entity.Ghast;
  14. import org.bukkit.entity.Guardian;
  15. import org.bukkit.entity.MagmaCube;
  16. import org.bukkit.entity.PigZombie;
  17. import org.bukkit.entity.Player;
  18. import org.bukkit.entity.Silverfish;
  19. import org.bukkit.entity.Skeleton;
  20. import org.bukkit.entity.Slime;
  21. import org.bukkit.entity.Spider;
  22. import org.bukkit.entity.Witch;
  23. import org.bukkit.entity.Wither;
  24. import org.bukkit.entity.Zombie;
  25. import org.bukkit.event.EventHandler;
  26. import org.bukkit.event.Listener;
  27. import org.bukkit.event.entity.EntityDamageByEntityEvent;
  28. import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
  29. import org.bukkit.event.entity.PlayerDeathEvent;
  30.  
  31. import com.shepherdjerred.stservermessages.Main;
  32.  
  33. public class DeathEvent implements Listener {
  34. private final Main plugin;
  35.  
  36. public DeathEvent(Main plugin) {
  37. this.plugin = plugin;
  38. }
  39.  
  40. public String parseConfig(String input) {
  41. return plugin.getConfig().getString(input).replaceAll("&", "§").replaceAll("§§", "&");
  42. }
  43.  
  44. public String parseStringListRandom(String input) {
  45. List<String> list = plugin.getConfig().getStringList(input);
  46. final Random random = new Random();
  47. final String raw = list.get(random.nextInt(list.size()));
  48. return raw.replaceAll("&", "§").replaceAll("§§", "&");
  49. }
  50.  
  51. /*
  52. * Entity Explosion, Falling Block, Magic, Poison, Projectile, Thorns,
  53. * Wither
  54. */
  55. /*
  56. * Elder Guardian, Chicken Jockey, Killer Bunny, Spider Jockey, Wither
  57. * Skeleton
  58. */
  59.  
  60. @EventHandler
  61. public void onPlayerDeath(PlayerDeathEvent event) {
  62. Player player = event.getEntity();
  63. String name = player.getName();
  64.  
  65. int counter = plugin.getConfig().getInt("storage.death-counter." + name);
  66.  
  67. if (counter <= plugin.getConfig().getInt("deaths.counter")) {
  68. counter = counter + 1;
  69. plugin.getConfig().set("storage.death-counter." + name, counter);
  70. DamageCause cause = player.getLastDamageCause().getCause();
  71. Entity killer = player.getKiller();
  72.  
  73. if (cause == DamageCause.ENTITY_ATTACK) {
  74.  
  75. if (player.getLastDamageCause() instanceof EntityDamageByEntityEvent) {
  76. EntityDamageByEntityEvent nEvent = (EntityDamageByEntityEvent) player.getLastDamageCause();
  77.  
  78. if (player.getKiller() instanceof Player && (player.getKiller() != null)) {
  79. String attacker = killer.getName();
  80. String weapon = WordUtils.capitalizeFully(player.getKiller().getItemInHand().getType().toString().replaceAll("_", " "));
  81. event.setDeathMessage(parseStringListRandom("deaths.pvp").replaceAll("%victim%", name).replaceAll("%attacker%", attacker).replaceAll("%weapon%", weapon));
  82. } else {
  83. if (nEvent.getDamager() instanceof Zombie) {
  84. String mob = parseConfig("deaths.names.zombie");
  85. event.setDeathMessage(parseStringListRandom("deaths.mobs.zombie").replaceAll("%victim%", name).replaceAll("%attacker%", mob));
  86. } else if (nEvent.getDamager() instanceof Enderman) {
  87. String mob = parseConfig("deaths.names.enderman");
  88. event.setDeathMessage(parseStringListRandom("deaths.mobs.any").replaceAll("%victim%", name).replaceAll("%attacker%", mob));
  89. } else if (nEvent.getDamager() instanceof CaveSpider) {
  90. String mob = parseConfig("deaths.names.cavespider");
  91. event.setDeathMessage(parseStringListRandom("deaths.mobs.any").replaceAll("%victim%", name).replaceAll("%attacker%", mob));
  92. } else if (nEvent.getDamager() instanceof Spider) {
  93. String mob = parseConfig("deaths.names.spider");
  94. event.setDeathMessage(parseStringListRandom("deaths.mobs.any").replaceAll("%victim%", name).replaceAll("%attacker%", mob));
  95. } else if (nEvent.getDamager() instanceof PigZombie) {
  96. String mob = parseConfig("deaths.names.pigzombie");
  97. event.setDeathMessage(parseStringListRandom("deaths.mobs.any").replaceAll("%victim%", name).replaceAll("%attacker%", mob));
  98. } else if (nEvent.getDamager() instanceof Blaze) {
  99. String mob = parseConfig("deaths.names.blaze");
  100. event.setDeathMessage(parseStringListRandom("deaths.mobs.any").replaceAll("%victim%", name).replaceAll("%attacker%", mob));
  101. } else if (nEvent.getDamager() instanceof Guardian) {
  102. String mob = parseConfig("deaths.names.guardian");
  103. event.setDeathMessage(parseStringListRandom("deaths.mobs.any").replaceAll("%victim%", name).replaceAll("%attacker%", mob));
  104. } else if (nEvent.getDamager() instanceof Endermite) {
  105. String mob = parseConfig("deaths.names.endermite");
  106. event.setDeathMessage(parseStringListRandom("deaths.mobs.any").replaceAll("%victim%", name).replaceAll("%attacker%", mob));
  107. } else if (nEvent.getDamager() instanceof Ghast) {
  108. String mob = parseConfig("deaths.names.ghast");
  109. event.setDeathMessage(parseStringListRandom("deaths.mobs.any").replaceAll("%victim%", name).replaceAll("%attacker%", mob));
  110. } else if (nEvent.getDamager() instanceof MagmaCube) {
  111. String mob = parseConfig("deaths.names.magmacube");
  112. event.setDeathMessage(parseStringListRandom("deaths.mobs.any").replaceAll("%victim%", name).replaceAll("%attacker%", mob));
  113. } else if (nEvent.getDamager() instanceof Silverfish) {
  114. String mob = parseConfig("deaths.names.silverfish");
  115. event.setDeathMessage(parseStringListRandom("deaths.mobs.any").replaceAll("%victim%", name).replaceAll("%attacker%", mob));
  116. } else if (nEvent.getDamager() instanceof Skeleton) {
  117. String mob = parseConfig("deaths.names.skeleton");
  118. event.setDeathMessage(parseStringListRandom("deaths.mobs.any").replaceAll("%victim%", name).replaceAll("%attacker%", mob));
  119. } else if (nEvent.getDamager() instanceof Slime) {
  120. String mob = parseConfig("deaths.names.slime");
  121. event.setDeathMessage(parseStringListRandom("deaths.mobs.any").replaceAll("%victim%", name).replaceAll("%attacker%", mob));
  122. } else if (nEvent.getDamager() instanceof Witch) {
  123. String mob = parseConfig("deaths.names.witch");
  124. event.setDeathMessage(parseStringListRandom("deaths.mobs.any").replaceAll("%victim%", name).replaceAll("%attacker%", mob));
  125. } else if (nEvent.getDamager() instanceof Wither) {
  126. String mob = parseConfig("deaths.names.wither");
  127. event.setDeathMessage(parseStringListRandom("deaths.mobs.any").replaceAll("%victim%", name).replaceAll("%attacker%", mob));
  128. } else if (nEvent.getDamager() instanceof EnderDragon) {
  129. String mob = parseConfig("deaths.names.enderdragon");
  130. event.setDeathMessage(parseStringListRandom("deaths.mobs.any").replaceAll("%victim%", name).replaceAll("%attacker%", mob));
  131. }
  132. }
  133. }
  134.  
  135. } else if (cause == DamageCause.BLOCK_EXPLOSION) {
  136. event.setDeathMessage(parseStringListRandom("deaths.block-explosion").replaceAll("%victim%", name));
  137. } else if (cause == DamageCause.CONTACT) {
  138. event.setDeathMessage(parseStringListRandom("deaths.contact").replaceAll("%victim%", name));
  139. } else if (cause == DamageCause.DROWNING) {
  140. event.setDeathMessage(parseStringListRandom("deaths.drowning").replaceAll("%victim%", name));
  141. } else if (cause == DamageCause.FALL) {
  142. event.setDeathMessage(parseStringListRandom("deaths.fall").replaceAll("%victim%", name));
  143. } else if (cause == DamageCause.FIRE) {
  144. event.setDeathMessage(parseStringListRandom("deaths.fire").replaceAll("%victim%", name));
  145. } else if (cause == DamageCause.FIRE_TICK) {
  146. event.setDeathMessage(parseStringListRandom("deaths.fire").replaceAll("%victim%", name));
  147. } else if (cause == DamageCause.LAVA) {
  148. event.setDeathMessage(parseStringListRandom("deaths.lava").replaceAll("%victim%", name));
  149. } else if (cause == DamageCause.LIGHTNING) {
  150. event.setDeathMessage(parseStringListRandom("deaths.lightning").replaceAll("%victim%", name));
  151. } else if (cause == DamageCause.STARVATION) {
  152. event.setDeathMessage(parseStringListRandom("deaths.starvation").replaceAll("%victim%", name));
  153. } else if (cause == DamageCause.SUFFOCATION) {
  154. event.setDeathMessage(parseStringListRandom("deaths.suffocation").replaceAll("%victim%", name));
  155. } else if (cause == DamageCause.SUICIDE) {
  156. event.setDeathMessage(parseStringListRandom("deaths.suicide").replaceAll("%victim%", name));
  157. } else if (cause == DamageCause.VOID) {
  158. event.setDeathMessage(parseStringListRandom("deaths.void").replaceAll("%victim%", name));
  159. } else if (cause == DamageCause.ENTITY_EXPLOSION) {
  160. event.setDeathMessage(parseStringListRandom("deaths.mobs.creeper").replaceAll("%victim%", name));
  161. } else if (cause == DamageCause.PROJECTILE) {
  162. event.setDeathMessage(parseStringListRandom("deaths.mobs.skeleton").replaceAll("%victim%", name));
  163. } else {
  164. event.setDeathMessage(parseStringListRandom("deaths.unknown").replaceAll("%victim%", name));
  165. }
  166. } else {
  167. event.setDeathMessage("");
  168. }
  169. }
  170. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement