diff --git a/src/com/projectkorra/ProjectKorra/Commands.java b/src/com/projectkorra/ProjectKorra/Commands.java index 21877a46..f5abdb33 100644 --- a/src/com/projectkorra/ProjectKorra/Commands.java +++ b/src/com/projectkorra/ProjectKorra/Commands.java @@ -2,7 +2,6 @@ package com.projectkorra.ProjectKorra; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.HashMap; import java.util.List; diff --git a/src/com/projectkorra/ProjectKorra/ConfigManager.java b/src/com/projectkorra/ProjectKorra/ConfigManager.java index 335dbbb8..5436eaa9 100644 --- a/src/com/projectkorra/ProjectKorra/ConfigManager.java +++ b/src/com/projectkorra/ProjectKorra/ConfigManager.java @@ -3,7 +3,6 @@ package com.projectkorra.ProjectKorra; import java.util.ArrayList; import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.entity.Player; public class ConfigManager { @@ -370,6 +369,11 @@ public class ConfigManager { plugin.getConfig().addDefault("Abilities.Chi.Passive.Speed", 1); plugin.getConfig().addDefault("Abilities.Chi.Passive.Jump", 2); + config.addDefault("Abilities.Chi.HighJump.Enabled", true); + config.addDefault("Abilities.Chi.HighJump.Description", "To use this ability, simply click. You will jump quite high. This ability has a short cooldown."); + config.addDefault("Abilities.Chi.HighJump.Height", 1); + config.addDefault("Abilities.Chi.HighJump.Cooldown", 10000); + config.addDefault("Abilities.Chi.Paralyze.Enabled", true); config.addDefault("Abilities.Chi.Paralyze.Description", "Paralyzes the target, making them unable to do anything for a short " + "period of time. This ability has a long cooldown."); diff --git a/src/com/projectkorra/ProjectKorra/PKListener.java b/src/com/projectkorra/ProjectKorra/PKListener.java index cdb996c1..fe12fc29 100644 --- a/src/com/projectkorra/ProjectKorra/PKListener.java +++ b/src/com/projectkorra/ProjectKorra/PKListener.java @@ -59,6 +59,7 @@ import com.projectkorra.ProjectKorra.airbending.AirSuction; import com.projectkorra.ProjectKorra.airbending.AirSwipe; import com.projectkorra.ProjectKorra.airbending.Tornado; import com.projectkorra.ProjectKorra.chiblocking.ChiPassive; +import com.projectkorra.ProjectKorra.chiblocking.HighJump; import com.projectkorra.ProjectKorra.chiblocking.Paralyze; import com.projectkorra.ProjectKorra.earthbending.Catapult; import com.projectkorra.ProjectKorra.earthbending.Collapse; @@ -542,6 +543,15 @@ public class PKListener implements Listener { new Illumination(player); } } + + if (Methods.isChiAbility(abil)) { + if (Methods.isWeapon(player.getItemInHand().getType()) && !plugin.getConfig().getBoolean("Properties.Chi.CanBendWithWeapons")) { + return; + } + if (abil.equalsIgnoreCase("HighJump")) { + new HighJump(player); + } + } } } diff --git a/src/com/projectkorra/ProjectKorra/RevertChecker.java b/src/com/projectkorra/ProjectKorra/RevertChecker.java index 63691749..a49369d4 100644 --- a/src/com/projectkorra/ProjectKorra/RevertChecker.java +++ b/src/com/projectkorra/ProjectKorra/RevertChecker.java @@ -7,7 +7,6 @@ import java.util.concurrent.Callable; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.Future; -import org.apache.commons.lang.exception.ExceptionUtils; import org.bukkit.Chunk; import org.bukkit.Server; import org.bukkit.block.Block; diff --git a/src/com/projectkorra/ProjectKorra/chiblocking/HighJump.java b/src/com/projectkorra/ProjectKorra/chiblocking/HighJump.java new file mode 100644 index 00000000..f8f32f07 --- /dev/null +++ b/src/com/projectkorra/ProjectKorra/chiblocking/HighJump.java @@ -0,0 +1,47 @@ +package com.projectkorra.ProjectKorra.chiblocking; + +import java.util.HashMap; +import java.util.Map; + +import org.bukkit.block.BlockFace; +import org.bukkit.entity.Player; +import org.bukkit.util.Vector; + +import com.projectkorra.ProjectKorra.Methods; +import com.projectkorra.ProjectKorra.ProjectKorra; + +public class HighJump { + + private int jumpheight = ProjectKorra.plugin.getConfig().getInt("Abilities.Chi.HighJump.Height"); + private long cooldown = ProjectKorra.plugin.getConfig().getInt("Abilities.Chi.HighJump.Cooldown"); + + private Map cooldowns = new HashMap(); + + public HighJump(Player p) { + if (cooldowns.containsKey(p.getName())) { + if (cooldowns.get(p.getName()) + cooldown >= System.currentTimeMillis()) { + return; + } else { + cooldowns.remove(p.getName()); + } + } + + jump(p); + } + + private void jump(Player p) { + if (!Methods.isSolid(p.getLocation().getBlock() + .getRelative(BlockFace.DOWN))) + return; + Vector vec = p.getVelocity(); + vec.setY(jumpheight); + p.setVelocity(vec); + // cooldowns.put(p.getName(), System.currentTimeMillis()); + cooldowns.put(p.getName(), System.currentTimeMillis()); + return; + } + + public static String getDescription() { + return "To use this ability, simply click. You will jump quite high. This ability has a short cooldown."; + } +} diff --git a/src/config.yml b/src/config.yml index 30d196ad..c0813d0a 100644 --- a/src/config.yml +++ b/src/config.yml @@ -256,11 +256,16 @@ Abilities: BlockChi: Duration: 2500 DodgeChance: 25 - Paralyze: - Enabled: true - Description: "Paralyzes the target, making them unable to do anything for a short period of time. This ability has a long cooldown." - Cooldown: 15000 - Duration: 2000 + HighJump: + Enabled: true + Description: "To use this ability, simply click. You will jump quite high. This ability has a short cooldown." + Cooldown: 10000 + Height: 1 + Paralyze: + Enabled: true + Description: "Paralyzes the target, making them unable to do anything for a short period of time. This ability has a long cooldown." + Cooldown: 15000 + Duration: 2000 Storage: engine: sqlite MySQL: