Advertisement
Guest User

Untitled

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