Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.soringaming.korra.FireJab;
- import java.util.logging.Level;
- import org.bukkit.Location;
- import org.bukkit.entity.Entity;
- import org.bukkit.entity.LivingEntity;
- import org.bukkit.entity.Player;
- import org.bukkit.permissions.Permission;
- import org.bukkit.permissions.PermissionDefault;
- import org.bukkit.util.Vector;
- import com.projectkorra.projectkorra.GeneralMethods;
- import com.projectkorra.projectkorra.ProjectKorra;
- import com.projectkorra.projectkorra.ability.AddonAbility;
- import com.projectkorra.projectkorra.ability.EarthAbility;
- import com.projectkorra.projectkorra.ability.FireAbility;
- import com.projectkorra.projectkorra.util.DamageHandler;
- import com.projectkorra.projectkorra.util.ParticleEffect;
- import net.minecraft.server.v1_8_R3.Material;
- public class FireJab extends FireAbility implements AddonAbility {
- private Permission perm;
- private Player p;
- private Location blast;
- private Location start;
- private Vector dir;
- public FireJab(Player player) {
- super(player);
- p = player;
- blast = player.getEyeLocation();
- start = player.getEyeLocation();
- dir = player.getLocation().getDirection().normalize().multiply(2);
- start();
- }
- @Override
- public long getCooldown() {
- return 1500;
- }
- @Override
- public Location getLocation() {
- return start;
- }
- @Override
- public String getName() {
- return "FireJab";
- }
- @Override
- public boolean isHarmlessAbility() {
- return false;
- }
- @Override
- public boolean isSneakAbility() {
- return false;
- }
- @Override
- public void progress() {
- blast.add(dir);
- FireJabParticles();
- if(p.isDead() || !p.isOnline()) {
- remove();
- return;
- }
- if(!EarthAbility.isTransparent(p, blast.getBlock())) {
- explode();
- remove();
- return;
- }
- if(start.distance(blast) > 35) {
- explode();
- remove();
- return;
- }
- if(blast.getBlock() == Material.WATER || blast.getBlock() == Material.ICE) {
- remove();
- return;
- }
- for(Entity e : GeneralMethods.getEntitiesAroundPoint(blast, 1.5)) {
- if(e instanceof LivingEntity && e.getEntityId() != p.getEntityId()) {
- DamageHandler.damageEntity(e, (double) getDayFactor(3.5), this);
- explode();
- remove();
- return;
- }
- }
- remove();
- return;
- }
- private void explode() {
- ParticleEffect.FLAME.display(blast, 0.4F, 0.4F, 0.4F, 0.01F, 35);
- blast.getWorld().createExplosion(blast, 0.1F, true);
- }
- private void FireJabParticles() {
- ParticleEffect.FLAME.display(blast, 0.1F, 0.1F, 0.1F, 0.04F, 35);
- ParticleEffect.SMOKE.display(blast, 0.2F, 0.2F, 0.2F, 0.04F, 15);
- }
- @Override
- public String getDescription() {
- 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!";
- }
- @Override
- public String getAuthor() {
- return "Soringaming";
- }
- @Override
- public String getVersion() {
- return "v1.0";
- }
- @Override
- public void load() {
- ProjectKorra.plugin.getLogger().log(Level.INFO, getName() + " " + getVersion() + " Has been enabled");
- ProjectKorra.plugin.getServer().getPluginManager().registerEvents(new FireJabListener(), ProjectKorra.plugin);
- perm = new Permission("bending.ability.FireJab");
- ProjectKorra.plugin.getServer().getPluginManager().addPermission(perm);
- perm.setDefault(PermissionDefault.TRUE);
- }
- @Override
- public void stop() {
- ProjectKorra.plugin.getServer().getPluginManager().removePermission(perm);
- ProjectKorra.plugin.getLogger().log(Level.INFO, getName() + " " + getVersion() + " Has been disabled");
- super.remove();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement