Advertisement
Guest User

Untitled

a guest
May 3rd, 2016
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.82 KB | None | 0 0
  1. package me.soringaming.korra.FireJab;
  2.  
  3. import java.util.logging.Level;
  4.  
  5. import org.bukkit.Location;
  6. import org.bukkit.entity.Entity;
  7. import org.bukkit.entity.LivingEntity;
  8. import org.bukkit.entity.Player;
  9. import org.bukkit.permissions.Permission;
  10. import org.bukkit.permissions.PermissionDefault;
  11. import org.bukkit.util.Vector;
  12.  
  13. import com.projectkorra.projectkorra.GeneralMethods;
  14. import com.projectkorra.projectkorra.ProjectKorra;
  15. import com.projectkorra.projectkorra.ability.AddonAbility;
  16. import com.projectkorra.projectkorra.ability.EarthAbility;
  17. import com.projectkorra.projectkorra.ability.FireAbility;
  18. import com.projectkorra.projectkorra.util.DamageHandler;
  19. import com.projectkorra.projectkorra.util.ParticleEffect;
  20.  
  21. import net.minecraft.server.v1_8_R3.Material;
  22.  
  23. public class FireJab extends FireAbility implements AddonAbility {
  24.  
  25. private Permission perm;
  26.  
  27. private Player p;
  28. private Location blast;
  29. private Location start;
  30. private Vector dir;
  31.  
  32. public FireJab(Player player) {
  33. super(player);
  34. p = player;
  35. blast = player.getEyeLocation();
  36. start = player.getEyeLocation();
  37. dir = player.getLocation().getDirection().normalize().multiply(2);
  38. start();
  39. }
  40.  
  41. @Override
  42. public long getCooldown() {
  43.  
  44. return 1500;
  45. }
  46.  
  47. @Override
  48. public Location getLocation() {
  49.  
  50. return start;
  51. }
  52.  
  53. @Override
  54. public String getName() {
  55.  
  56. return "FireJab";
  57. }
  58.  
  59. @Override
  60. public boolean isHarmlessAbility() {
  61.  
  62. return false;
  63. }
  64.  
  65. @Override
  66. public boolean isSneakAbility() {
  67.  
  68. return false;
  69. }
  70.  
  71. @Override
  72. public void progress() {
  73.  
  74. blast.add(dir);
  75. FireJabParticles();
  76. if(p.isDead() || !p.isOnline()) {
  77. remove();
  78. return;
  79. }
  80.  
  81. if(!EarthAbility.isTransparent(p, blast.getBlock())) {
  82. explode();
  83. remove();
  84. return;
  85. }
  86.  
  87. if(start.distance(blast) > 35) {
  88. explode();
  89. remove();
  90. return;
  91. }
  92. if(blast.getBlock() == Material.WATER || blast.getBlock() == Material.ICE) {
  93. remove();
  94. return;
  95. }
  96.  
  97. for(Entity e : GeneralMethods.getEntitiesAroundPoint(blast, 1.5)) {
  98.  
  99. if(e instanceof LivingEntity && e.getEntityId() != p.getEntityId()) {
  100. DamageHandler.damageEntity(e, (double) getDayFactor(3.5), this);
  101. explode();
  102. remove();
  103. return;
  104. }
  105. }
  106. remove();
  107. return;
  108.  
  109.  
  110. }
  111.  
  112. private void explode() {
  113. ParticleEffect.FLAME.display(blast, 0.4F, 0.4F, 0.4F, 0.01F, 35);
  114. blast.getWorld().createExplosion(blast, 0.1F, true);
  115. }
  116.  
  117. private void FireJabParticles() {
  118.  
  119. ParticleEffect.FLAME.display(blast, 0.1F, 0.1F, 0.1F, 0.04F, 35);
  120. ParticleEffect.SMOKE.display(blast, 0.2F, 0.2F, 0.2F, 0.04F, 15);
  121.  
  122. }
  123.  
  124. @Override
  125. public String getDescription() {
  126.  
  127.  
  128. return getVersion() + " Developed by " + getAuthor() + ".\nFireJab is a high powered fast moving fire ball that is shot from your knuckles.\nThis technique is often used in probending, as it has a very high accuracy capability.\nTo use, simply left click to shoot fire out of your fists!";
  129.  
  130.  
  131. }
  132.  
  133. @Override
  134. public String getAuthor() {
  135.  
  136. return "Soringaming";
  137. }
  138.  
  139. @Override
  140. public String getVersion() {
  141.  
  142. return "v1.0";
  143. }
  144.  
  145. @Override
  146. public void load() {
  147.  
  148.  
  149. ProjectKorra.plugin.getLogger().log(Level.INFO, getName() + " " + getVersion() + " Has been enabled");
  150.  
  151. ProjectKorra.plugin.getServer().getPluginManager().registerEvents(new FireJabListener(), ProjectKorra.plugin);
  152.  
  153. perm = new Permission("bending.ability.FireJab");
  154. ProjectKorra.plugin.getServer().getPluginManager().addPermission(perm);
  155.  
  156. perm.setDefault(PermissionDefault.TRUE);
  157. }
  158.  
  159. @Override
  160. public void stop() {
  161.  
  162. ProjectKorra.plugin.getServer().getPluginManager().removePermission(perm);
  163. ProjectKorra.plugin.getLogger().log(Level.INFO, getName() + " " + getVersion() + " Has been disabled");
  164.  
  165. super.remove();
  166.  
  167. }
  168.  
  169. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement