Advertisement
Guest User

Untitled

a guest
Jul 24th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.51 KB | None | 0 0
  1. package de.dave_911.FFA.Listener;
  2.  
  3. import java.util.ArrayList;
  4.  
  5. import org.bukkit.Bukkit;
  6. import org.bukkit.Color;
  7. import org.bukkit.Effect;
  8. import org.bukkit.FireworkEffect;
  9. import org.bukkit.Material;
  10. import org.bukkit.Sound;
  11. import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
  12. import org.bukkit.enchantments.Enchantment;
  13. import org.bukkit.entity.EntityType;
  14. import org.bukkit.entity.Firework;
  15. import org.bukkit.entity.Item;
  16. import org.bukkit.entity.Player;
  17. import org.bukkit.event.EventHandler;
  18. import org.bukkit.event.Listener;
  19. import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
  20. import org.bukkit.event.entity.PlayerDeathEvent;
  21. import org.bukkit.event.player.PlayerMoveEvent;
  22. import org.bukkit.inventory.ItemStack;
  23. import org.bukkit.inventory.meta.FireworkMeta;
  24. import org.bukkit.inventory.meta.ItemMeta;
  25. import org.bukkit.potion.PotionEffect;
  26. import org.bukkit.potion.PotionEffectType;
  27.  
  28. import de.dave_911.FFA.FFA;
  29. import de.dave_911.Coins.Coins;
  30. import de.dave_911.FFA.MySQL.MySQL;
  31. import net.minecraft.server.v1_8_R3.PacketPlayInClientCommand;
  32. import net.minecraft.server.v1_8_R3.PacketPlayInClientCommand.EnumClientCommand;
  33.  
  34. public class PlayerDeathListener implements Listener {
  35.  
  36. @EventHandler
  37. public void onMove(PlayerMoveEvent event)
  38. {
  39. if (((event.getPlayer() instanceof Player)) && (event.getPlayer() != null) &&
  40. (!event.getPlayer().isDead()) &&
  41. (event.getPlayer().getLocation().getY() < 50.0D))
  42. {
  43. World w = Bukkit.getWorld(Lobby.cfg.getString("Spawn.World"));
  44. double x = Lobby.cfg.getDouble("Spawn.X");
  45. double y = Lobby.cfg.getDouble("Spawn.Y");
  46. double z = Lobby.cfg.getDouble("Spawn.Z");
  47. float yaw = (float)Lobby.cfg.getDouble("Spawn.Yaw");
  48. float pitch = (float)Lobby.cfg.getDouble("Spawn.Pitch");
  49. Location spawn = new Location(w, x, y, z, yaw, pitch);
  50.  
  51. spawn.getChunk().load();
  52. event.getPlayer().teleport(spawn);
  53. }
  54. }
  55.  
  56. @EventHandler
  57. public void onPlayerDeath(PlayerDeathEvent e) {
  58.  
  59. final Player p = e.getEntity();
  60. final Player k = e.getEntity().getKiller();
  61.  
  62. e.setDeathMessage(null);
  63. e.getDrops().clear();
  64.  
  65. final ArrayList<Item> drops = new ArrayList<Item>();
  66.  
  67. for (ItemStack items : (ItemStack[]) p.getInventory().getContents().clone()) {
  68. if (items != null && items.getType() != Material.AIR) {
  69. Item item = p.getLocation().getWorld().dropItemNaturally(p.getLocation(), items);
  70. drops.add(item);
  71. }
  72. }
  73.  
  74. for (ItemStack armor : (ItemStack[]) p.getInventory().getArmorContents().clone()) {
  75. if (armor != null && armor.getType() != Material.AIR) {
  76. Item item = p.getLocation().getWorld().dropItemNaturally(p.getLocation(), armor);
  77. drops.add(item);
  78. }
  79. }
  80.  
  81. Bukkit.getScheduler().scheduleSyncDelayedTask(FFA.plugin, new Runnable() {
  82.  
  83. @Override
  84. public void run() {
  85. for (Item items : drops) {
  86. for (Player players : Bukkit.getOnlinePlayers()) {
  87. players.spigot().playEffect(items.getLocation(), Effect.PARTICLE_SMOKE, 1, 1, 0, 0, 0, 0, 16, 16);
  88. }
  89. items.remove();
  90. }
  91. drops.clear();
  92. }
  93. }, 40);
  94.  
  95. if (p.getLastDamageCause().getCause().equals(DamageCause.ENTITY_ATTACK) | p.getLastDamageCause().getCause().equals(DamageCause.PROJECTILE)) {
  96. if (p != k) {
  97. if (((CraftPlayer) k).getHealth() != 20.0) {
  98. p.sendMessage(FFA.prefix + "§7Du wurdest von " + k.getDisplayName() + " §7getötet.");
  99. k.sendMessage(FFA.prefix + "§7Du hast " + p.getDisplayName() + " §7getötet");
  100. } else {
  101. p.sendMessage(FFA.prefix + "§7Du wurdest von " + k.getDisplayName() + " §7getötet.");
  102. k.sendMessage(FFA.prefix + "§7Du hast " + p.getDisplayName() + " §7getötet");
  103. }
  104.  
  105. FFA.kills.put(p, 0);
  106. FFA.kills.put(k, FFA.kills.get(k) + 1);
  107.  
  108. p.playSound(p.getLocation(), Sound.VILLAGER_DEATH, 1, 1);
  109. k.playSound(k.getLocation(), Sound.LEVEL_UP, 1, 1);
  110.  
  111. p.getWorld().playEffect(p.getLocation(), Effect.LAVA_POP, 4);
  112.  
  113. if (FFA.kit == 1) {
  114.  
  115. ItemStack IS = new ItemStack(Material.STICK, 1);
  116. ItemStack FR = new ItemStack(Material.FISHING_ROD, 1);
  117.  
  118. ItemMeta ISMeta = IS.getItemMeta();
  119. ISMeta.addEnchant(Enchantment.KNOCKBACK, 1, false);
  120. ISMeta.spigot().setUnbreakable(true);
  121. IS.setItemMeta(ISMeta);
  122. ItemMeta FRMeta = FR.getItemMeta();
  123. FRMeta.spigot().setUnbreakable(true);
  124. FR.setItemMeta(FRMeta);
  125.  
  126. k.getInventory().clear();
  127.  
  128. k.getInventory().setItem(0, IS);
  129. k.getInventory().setItem(1, FR);
  130.  
  131. k.updateInventory();
  132.  
  133. }
  134.  
  135.  
  136. k.setLevel(FFA.kills.get(k));
  137. k.sendMessage(FFA.prefix + "§a+ §e10 Coins");
  138.  
  139.  
  140. Bukkit.getScheduler().runTaskAsynchronously(FFA.plugin, new Runnable() {
  141.  
  142. @Override
  143. public void run() {
  144. MySQL.addDeath(p);
  145. MySQL.addKill(k);
  146. Coins.addCoins(k, 10);
  147. }
  148. });
  149.  
  150. if (FFA.kills.get(k) == 5 | FFA.kills.get(k) == 10 | FFA.kills.get(k) == 15 | FFA.kills.get(k) == 20 | FFA.kills.get(k) == 25 | FFA.kills.get(k) == 30 | FFA.kills.get(k) == 35 | FFA.kills.get(k) == 40 | FFA.kills.get(k) == 45 | FFA.kills.get(k) == 50) {
  151. Firework fw = (Firework) k.getWorld().spawnEntity(k.getLocation(), EntityType.FIREWORK);
  152. FireworkMeta fwmeta = fw.getFireworkMeta();
  153. FireworkEffect.Builder fwbuilder = FireworkEffect.builder();
  154. fwbuilder.withTrail();
  155. fwbuilder.withFlicker();
  156. fwbuilder.withFade(Color.ORANGE);
  157. fwbuilder.withColor(Color.YELLOW);
  158. fwbuilder.withColor(Color.RED);
  159. fwbuilder.with(FireworkEffect.Type.BALL_LARGE);
  160. fwmeta.addEffects(fwbuilder.build());
  161. fwmeta.setPower(1);
  162. fw.setFireworkMeta(fwmeta);
  163. Bukkit.broadcastMessage(FFA.prefix + k.getDisplayName() + " §7hat eine §e" + FFA.kills.get(k) + "er §7Killstreak.");
  164.  
  165. final int bonus = 50;
  166.  
  167. k.sendMessage(FFA.prefix + "§a+ §e" + bonus + " Coins");
  168.  
  169. Bukkit.getScheduler().runTaskAsynchronously(FFA.plugin, new Runnable() {
  170.  
  171. @Override
  172. public void run() {
  173. Coins.addCoins(k, bonus);
  174. }
  175. });
  176. }
  177. } else {
  178. p.sendMessage(FFA.prefix + "§cDu hast Selbstmord begangen.");
  179.  
  180. FFA.kills.put(p, 0);
  181.  
  182. p.playSound(p.getLocation(), Sound.VILLAGER_DEATH, 1, 1);
  183.  
  184. p.getWorld().playEffect(p.getLocation(), Effect.LAVA_POP, 4);
  185.  
  186. Bukkit.getScheduler().runTaskAsynchronously(FFA.plugin, new Runnable() {
  187.  
  188. @Override
  189. public void run() {
  190. MySQL.addDeath(p);
  191. }
  192. });
  193. }
  194. } else {
  195. //TODO ---------------------------v------------v Hier fix v------------v
  196. if (FFA.target.get(p) != null && FFA.kills.containsKey(FFA.target.get(p)) && !FFA.spectator.contains(FFA.target.get(p))) {
  197. final Player k2 = FFA.target.get(p);
  198.  
  199. if (((CraftPlayer) k2).getHealth() != 20.0) {
  200. p.sendMessage(FFA.prefix + "§7Du wurdest von " + k2.getDisplayName() + " §7getötet.");
  201. k2.sendMessage(FFA.prefix + "§7Du hast " + p.getDisplayName() + " §7getötet");
  202. } else {
  203. p.sendMessage(FFA.prefix + "§7Du wurdest von " + k2.getDisplayName() + " §7getötet.");
  204. k2.sendMessage(FFA.prefix + "§7Du hast " + p.getDisplayName() + " §7getötet");
  205. }
  206.  
  207. FFA.kills.put(p, 0);
  208. //TODO Hier NullPointer
  209. FFA.kills.put(k2, FFA.kills.get(k2) + 1);
  210.  
  211. p.playSound(p.getLocation(), Sound.VILLAGER_DEATH, 1, 1);
  212. k2.playSound(k2.getLocation(), Sound.LEVEL_UP, 1, 1);
  213.  
  214. p.getWorld().playEffect(p.getLocation(), Effect.LAVA_POP, 4);
  215.  
  216. if (FFA.kit == 1) {
  217.  
  218. ItemStack IS = new ItemStack(Material.STICK, 1);
  219. ItemStack FR = new ItemStack(Material.FISHING_ROD, 1);
  220.  
  221.  
  222. ItemMeta ISMeta = IS.getItemMeta();
  223. ISMeta.addEnchant(Enchantment.KNOCKBACK, 1, false);
  224. ISMeta.spigot().setUnbreakable(true);
  225. IS.setItemMeta(ISMeta);
  226. ItemMeta FRMeta = FR.getItemMeta();
  227. FRMeta.spigot().setUnbreakable(true);
  228. FR.setItemMeta(FRMeta);
  229.  
  230. k2.getInventory().clear();
  231.  
  232. k2.getInventory().setItem(0, IS);
  233. k2.getInventory().setItem(1, FR);
  234.  
  235. k2.updateInventory();
  236. }
  237.  
  238.  
  239. k2.setLevel(FFA.kills.get(k2));
  240. k2.sendMessage(FFA.prefix + "§a+ §e10 Coins");
  241.  
  242. Bukkit.getScheduler().runTaskAsynchronously(FFA.plugin, new Runnable() {
  243.  
  244. @Override
  245. public void run() {
  246. MySQL.addDeath(p);
  247. MySQL.addKill(k2);
  248. Coins.addCoins(k2, 10);
  249. }
  250. });
  251.  
  252. if (FFA.kills.get(k2) == 5 | FFA.kills.get(k2) == 10 | FFA.kills.get(k2) == 15 | FFA.kills.get(k2) == 20 | FFA.kills.get(k2) == 25 | FFA.kills.get(k2) == 30 | FFA.kills.get(k2) == 35 | FFA.kills.get(k2) == 40 | FFA.kills.get(k2) == 45 | FFA.kills.get(k2) == 50) {
  253. Firework fw = (Firework) k2.getWorld().spawnEntity(k2.getLocation(), EntityType.FIREWORK);
  254. FireworkMeta fwmeta = fw.getFireworkMeta();
  255. FireworkEffect.Builder fwbuilder = FireworkEffect.builder();
  256. fwbuilder.withTrail();
  257. fwbuilder.withFlicker();
  258. fwbuilder.withFade(Color.ORANGE);
  259. fwbuilder.withColor(Color.YELLOW);
  260. fwbuilder.withColor(Color.RED);
  261. fwbuilder.with(FireworkEffect.Type.BALL_LARGE);
  262. fwmeta.addEffects(fwbuilder.build());
  263. fwmeta.setPower(1);
  264. fw.setFireworkMeta(fwmeta);
  265. Bukkit.broadcastMessage(FFA.prefix + k2.getDisplayName() + " §7hat eine §e" + FFA.kills.get(k2) + "er §7Killstreak.");
  266.  
  267. final int bonus = 10;
  268.  
  269. k2.sendMessage(FFA.prefix + "§a+ §e" + bonus + " Coins");
  270.  
  271. Bukkit.getScheduler().runTaskAsynchronously(FFA.plugin, new Runnable() {
  272.  
  273. @Override
  274. public void run() {
  275. Coins.addCoins(k2, bonus);
  276. }
  277. });
  278. }
  279. } else {
  280. p.sendMessage(FFA.prefix + "§cDu bist gestorben.");
  281.  
  282. FFA.kills.put(p, 0);
  283.  
  284. p.playSound(p.getLocation(), Sound.VILLAGER_DEATH, 1, 1);
  285.  
  286. p.getWorld().playEffect(p.getLocation(), Effect.LAVA_POP, 4);
  287.  
  288. Bukkit.getScheduler().runTaskAsynchronously(FFA.plugin, new Runnable() {
  289.  
  290. @Override
  291. public void run() {
  292. MySQL.addDeath(p);
  293. }
  294. });
  295. }
  296. }
  297.  
  298. FFA.target.put(FFA.target.get(p), null);
  299. FFA.target.put(p, null);
  300.  
  301. Bukkit.getScheduler().scheduleSyncDelayedTask(FFA.plugin, new Runnable() {
  302.  
  303. @Override
  304. public void run() {
  305. if (p.isOnline()) {
  306. ((CraftPlayer) p).getHandle().playerConnection.a(new PacketPlayInClientCommand(EnumClientCommand.PERFORM_RESPAWN));
  307. }
  308. }
  309. }, 5);
  310. }
  311. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement