Advertisement
Guest User

Untitled

a guest
May 26th, 2015
315
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.65 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.EntityDamageEvent.DamageCause;
  28. import org.bukkit.event.entity.PlayerDeathEvent;
  29.  
  30. import com.shepherdjerred.stservermessages.Main;
  31.  
  32. public class DeathEvent implements Listener {
  33. private final Main plugin;
  34.  
  35. public DeathEvent(Main plugin) {
  36. this.plugin = plugin;
  37. }
  38.  
  39. public String parseConfig(String input) {
  40. return plugin.getConfig().getString(input).replaceAll("&", "§").replaceAll("§§", "&");
  41. }
  42.  
  43. public String parseStringListRandom(String input) {
  44. List<String> list = plugin.getConfig().getStringList(input);
  45. final Random random = new Random();
  46. final String raw = list.get(random.nextInt(list.size()));
  47. return raw.replaceAll("&", "§").replaceAll("§§", "&");
  48. }
  49.  
  50. /*
  51. * Entity Explosion, Falling Block, Magic, Poison, Projectile, Thorns,
  52. * Wither
  53. */
  54. /*
  55. * Elder Guardian, Chicken Jockey, Killer Bunny, Spider Jockey, Wither
  56. * Skeleton
  57. */
  58.  
  59. @EventHandler
  60. public void onPlayerDeath(PlayerDeathEvent event) {
  61. Player player = event.getEntity();
  62. String name = player.getName();
  63.  
  64. int counter = plugin.getConfig().getInt("storage.death-counter." + name);
  65.  
  66. if (counter <= plugin.getConfig().getInt("deaths.counter")) {
  67. counter = counter + 1;
  68. plugin.getConfig().set("storage.death-counter." + name, counter);
  69. DamageCause cause = player.getLastDamageCause().getCause();
  70. Entity killer = player.getKiller();
  71. if (cause == DamageCause.ENTITY_ATTACK) {
  72. String attacker = killer.getName();
  73. if (killer instanceof Player) {
  74. String weapon = WordUtils.capitalizeFully(player.getKiller().getItemInHand().getType().toString().replaceAll("_", " "));
  75. event.setDeathMessage(parseStringListRandom("deaths.pvp").replaceAll("%victim%", name).replaceAll("%attacker%", attacker).replaceAll("%weapon%", weapon));
  76. } else if (killer instanceof Zombie) {
  77. event.setDeathMessage(parseStringListRandom("deaths.mobs.zombie").replaceAll("%victim%", name).replaceAll("%attacker%", attacker));
  78. } else if (killer instanceof Enderman) {
  79. event.setDeathMessage(parseStringListRandom("deaths.mobs.any").replaceAll("%victim%", name).replaceAll("%attacker%", attacker));
  80. } else if (killer instanceof CaveSpider) {
  81. event.setDeathMessage(parseStringListRandom("deaths.mobs.any").replaceAll("%victim%", name).replaceAll("%attacker%", attacker));
  82. } else if (killer instanceof Spider) {
  83. event.setDeathMessage(parseStringListRandom("deaths.mobs.any").replaceAll("%victim%", name).replaceAll("%attacker%", attacker));
  84. } else if (killer instanceof PigZombie) {
  85. event.setDeathMessage(parseStringListRandom("deaths.mobs.any").replaceAll("%victim%", name).replaceAll("%attacker%", attacker));
  86. } else if (killer instanceof Blaze) {
  87. event.setDeathMessage(parseStringListRandom("deaths.mobs.any").replaceAll("%victim%", name).replaceAll("%attacker%", attacker));
  88. } else if (killer instanceof Guardian) {
  89. event.setDeathMessage(parseStringListRandom("deaths.mobs.any").replaceAll("%victim%", name).replaceAll("%attacker%", attacker));
  90. } else if (killer instanceof Endermite) {
  91. event.setDeathMessage(parseStringListRandom("deaths.mobs.any").replaceAll("%victim%", name).replaceAll("%attacker%", attacker));
  92. } else if (killer instanceof Ghast) {
  93. event.setDeathMessage(parseStringListRandom("deaths.mobs.any").replaceAll("%victim%", name).replaceAll("%attacker%", attacker));
  94. } else if (killer instanceof MagmaCube) {
  95. event.setDeathMessage(parseStringListRandom("deaths.mobs.any").replaceAll("%victim%", name).replaceAll("%attacker%", attacker));
  96. } else if (killer instanceof Silverfish) {
  97. event.setDeathMessage(parseStringListRandom("deaths.mobs.any").replaceAll("%victim%", name).replaceAll("%attacker%", attacker));
  98. } else if (killer instanceof Skeleton) {
  99. event.setDeathMessage(parseStringListRandom("deaths.mobs.any").replaceAll("%victim%", name).replaceAll("%attacker%", attacker));
  100. } else if (killer instanceof Slime) {
  101. event.setDeathMessage(parseStringListRandom("deaths.mobs.any").replaceAll("%victim%", name).replaceAll("%attacker%", attacker));
  102. } else if (killer instanceof Witch) {
  103. event.setDeathMessage(parseStringListRandom("deaths.mobs.any").replaceAll("%victim%", name).replaceAll("%attacker%", attacker));
  104. } else if (killer instanceof Wither) {
  105. event.setDeathMessage(parseStringListRandom("deaths.mobs.any").replaceAll("%victim%", name).replaceAll("%attacker%", attacker));
  106. } else if (killer instanceof EnderDragon) {
  107. event.setDeathMessage(parseStringListRandom("deaths.mobs.any").replaceAll("%victim%", name).replaceAll("%attacker%", attacker));
  108. }
  109. } else if (cause == DamageCause.BLOCK_EXPLOSION) {
  110. event.setDeathMessage(parseStringListRandom("deaths.block-explosion").replaceAll("%victim%", name));
  111. } else if (cause == DamageCause.CONTACT) {
  112. event.setDeathMessage(parseStringListRandom("deaths.contact").replaceAll("%victim%", name));
  113. } else if (cause == DamageCause.DROWNING) {
  114. event.setDeathMessage(parseStringListRandom("deaths.drowning").replaceAll("%victim%", name));
  115. } else if (cause == DamageCause.FALL) {
  116. event.setDeathMessage(parseStringListRandom("deaths.fall").replaceAll("%victim%", name));
  117. } else if (cause == DamageCause.FIRE) {
  118. event.setDeathMessage(parseStringListRandom("deaths.fire").replaceAll("%victim%", name));
  119. } else if (cause == DamageCause.FIRE_TICK) {
  120. event.setDeathMessage(parseStringListRandom("deaths.fire").replaceAll("%victim%", name));
  121. } else if (cause == DamageCause.LAVA) {
  122. event.setDeathMessage(parseStringListRandom("deaths.lava").replaceAll("%victim%", name));
  123. } else if (cause == DamageCause.LIGHTNING) {
  124. event.setDeathMessage(parseStringListRandom("deaths.lightning").replaceAll("%victim%", name));
  125. } else if (cause == DamageCause.STARVATION) {
  126. event.setDeathMessage(parseStringListRandom("deaths.starvation").replaceAll("%victim%", name));
  127. } else if (cause == DamageCause.SUFFOCATION) {
  128. event.setDeathMessage(parseStringListRandom("deaths.suffocation").replaceAll("%victim%", name));
  129. } else if (cause == DamageCause.SUICIDE) {
  130. event.setDeathMessage(parseStringListRandom("deaths.suicide").replaceAll("%victim%", name));
  131. } else if (cause == DamageCause.VOID) {
  132. event.setDeathMessage(parseStringListRandom("deaths.void").replaceAll("%victim%", name));
  133. } else if (cause == DamageCause.ENTITY_EXPLOSION) {
  134. event.setDeathMessage(parseStringListRandom("deaths.mobs.creeper").replaceAll("%victim%", name));
  135. } else if (cause == DamageCause.PROJECTILE) {
  136. event.setDeathMessage(parseStringListRandom("deaths.mobs.skeleton").replaceAll("%victim%", name));
  137. } else {
  138. event.setDeathMessage(parseStringListRandom("deaths.unknown").replaceAll("%victim%", name));
  139. }
  140. } else {
  141. event.setDeathMessage("");
  142. }
  143. }
  144. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement