KrakenAttackTask.java 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package com.gmail.nossr50.runnables.skills;
  2. import org.bukkit.Location;
  3. import org.bukkit.Sound;
  4. import org.bukkit.World;
  5. import org.bukkit.entity.Player;
  6. import org.bukkit.entity.Squid;
  7. import org.bukkit.scheduler.BukkitRunnable;
  8. import com.gmail.nossr50.config.AdvancedConfig;
  9. import com.gmail.nossr50.util.Misc;
  10. public class KrakenAttackTask extends BukkitRunnable {
  11. private Squid kraken;
  12. private Player player;
  13. private final boolean GLOBAL_SOUNDS = AdvancedConfig.getInstance().getKrakenGlobalSoundsEnabled();
  14. public KrakenAttackTask(Squid kraken, Player player) {
  15. this.kraken = kraken;
  16. this.player = player;
  17. }
  18. @Override
  19. public void run() {
  20. if (!kraken.isValid()) {
  21. player.resetPlayerWeather();
  22. this.cancel();
  23. }
  24. if (player.isValid()) {
  25. Location location = player.getLocation();
  26. World world = player.getWorld();
  27. kraken.teleport(player);
  28. player.damage(AdvancedConfig.getInstance().getKrakenAttackDamage(), kraken);
  29. if (GLOBAL_SOUNDS) {
  30. world.playSound(location, Sound.GHAST_SCREAM, Misc.GHAST_VOLUME, Misc.getGhastPitch());
  31. }
  32. else {
  33. player.playSound(location, Sound.GHAST_SCREAM, Misc.GHAST_VOLUME, Misc.getGhastPitch());
  34. }
  35. world.playSound(location, Sound.GHAST_SCREAM, Misc.GHAST_VOLUME, Misc.getGhastPitch());
  36. world.strikeLightningEffect(location);
  37. }
  38. else {
  39. kraken.remove();
  40. this.cancel();
  41. }
  42. }
  43. }