From a9d00df52de99284b9dc222461c419a5fcd49fda Mon Sep 17 00:00:00 2001 From: MistPhizzle Date: Sat, 12 Jul 2014 15:17:15 -0400 Subject: [PATCH] Added Grappling Hooks --- Dev Builds/Korra.jar | Bin 362591 -> 370580 bytes .../ProjectKorra/ConfigManager.java | 4 + .../CustomEvents/PlayerGrappleEvent.java | 62 +++++++ .../projectkorra/ProjectKorra/PKListener.java | 63 +++++++ .../ProjectKorra/ProjectKorra.java | 3 + .../Utilities/CraftingRecipes.java | 37 ++++ .../Utilities/GrapplingHookAPI.java | 162 ++++++++++++++++++ src/config.yml | 5 + src/plugin.yml | 2 +- 9 files changed, 337 insertions(+), 1 deletion(-) create mode 100644 src/com/projectkorra/ProjectKorra/CustomEvents/PlayerGrappleEvent.java create mode 100644 src/com/projectkorra/ProjectKorra/Utilities/CraftingRecipes.java create mode 100644 src/com/projectkorra/ProjectKorra/Utilities/GrapplingHookAPI.java diff --git a/Dev Builds/Korra.jar b/Dev Builds/Korra.jar index b8d9018ffe28841d951a3beefbc48b959814b532..8bd745cf9add5e92a1a1a66d54b1e3422ed01dcb 100644 GIT binary patch delta 42658 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

R|W`N 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 Mp~`KK#{h)>59qYF@&Et; delta 35013 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 i&&W&3%iEH%Zd+d3))mWuwxX1zO!|%2NYZb~K noFallEntities = new HashMap(); // Grappling Hooks + public static HashMap noGrapplePlayers = new HashMap(); // Grappling Hooks + @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) + public void onPlayerGrapple(PlayerGrappleEvent event) { + if (event.isCancelled()) return; + if (!plugin.getConfig().getBoolean("Properties.CustomItems.GrapplingHook.Enable")) return; + + Player player = event.getPlayer(); + if (!Methods.isBender(player.getName(), Element.Chi) && (!Methods.isBender(player.getName(), Element.Earth) || !Methods.canMetalbend(player))) { + event.setCancelled(true); + return; + } + if (Paralyze.isParalyzed(player) || Bloodbending.isBloodbended(player)) { + event.setCancelled(true); + } + + event.getHookItem().setDurability((short) - 10); + if (noGrapplePlayers.containsKey(player.getName())) { + return; + } + + Entity e = event.getPulledEntity(); + Location loc = event.getPullLocation(); + + if (player.equals(e)) { + if (player.getLocation().distance(loc) < 3) { // Too close + GrapplingHookAPI.pullPlayerSlightly(player, loc); + } else { + GrapplingHookAPI.pullEntityToLocation(player, loc); + } + + if (GrapplingHookAPI.addUse(player, event.getHookItem())) { + GrapplingHookAPI.playGrappleSound(player.getLocation()); + } + GrapplingHookAPI.addPlayerCooldown(player, 100); + } + } + + @EventHandler(priority = EventPriority.HIGHEST) + public void fishEvent(PlayerFishEvent event) { + Player player = event.getPlayer(); + if (GrapplingHookAPI.isGrapplingHook(player.getItemInHand())) { + if (event.getState() == PlayerFishEvent.State.IN_GROUND) { + Location loc = event.getHook().getLocation(); + for (Entity ent: event.getHook().getNearbyEntities(1.5, 1, 1.5)) { + if (ent instanceof Item) { + PlayerGrappleEvent e = new PlayerGrappleEvent(player, ent, player.getLocation()); + plugin.getServer().getPluginManager().callEvent(e); + return; + } + } + + PlayerGrappleEvent e = new PlayerGrappleEvent(player, player, loc); + plugin.getServer().getPluginManager().callEvent(e); + } + } + } @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) public void onPlayerInteraction(PlayerInteractEvent event) { Player player = event.getPlayer(); diff --git a/src/com/projectkorra/ProjectKorra/ProjectKorra.java b/src/com/projectkorra/ProjectKorra/ProjectKorra.java index 1bd003dc..b9d1a4e0 100644 --- a/src/com/projectkorra/ProjectKorra/ProjectKorra.java +++ b/src/com/projectkorra/ProjectKorra/ProjectKorra.java @@ -8,6 +8,7 @@ import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; import com.projectkorra.ProjectKorra.Ability.AbilityModuleManager; +import com.projectkorra.ProjectKorra.Utilities.CraftingRecipes; public class ProjectKorra extends JavaPlugin { @@ -51,6 +52,8 @@ public class ProjectKorra extends JavaPlugin { } Methods.deserializeFile(); + + new CraftingRecipes(this); } @Override diff --git a/src/com/projectkorra/ProjectKorra/Utilities/CraftingRecipes.java b/src/com/projectkorra/ProjectKorra/Utilities/CraftingRecipes.java new file mode 100644 index 00000000..2602366b --- /dev/null +++ b/src/com/projectkorra/ProjectKorra/Utilities/CraftingRecipes.java @@ -0,0 +1,37 @@ +package com.projectkorra.ProjectKorra.Utilities; + +import org.bukkit.Material; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.inventory.ShapedRecipe; + +import com.projectkorra.ProjectKorra.ProjectKorra; + +public class CraftingRecipes { + + static ProjectKorra plugin; + + public CraftingRecipes(ProjectKorra plugin) { + CraftingRecipes.plugin = plugin; + registerRecipes(); + } + + static FileConfiguration config = ProjectKorra.plugin.getConfig(); + + public static void registerRecipes() { + if (config.getBoolean("Properties.CustomItems.GrapplingHook.Enable")) { + plugin.getServer().addRecipe(ironHookRecipe); + plugin.getServer().addRecipe(goldHookRecipe); + } + } + + static ShapedRecipe ironHookRecipe = new ShapedRecipe(GrapplingHookAPI.createHook(config.getInt("Properties.CustomItems.GrapplingHook.IronUses"))) + .shape(" **", " &*", " ") + .setIngredient('*', Material.IRON_INGOT) + .setIngredient('&', Material.FISHING_ROD); + + static ShapedRecipe goldHookRecipe = new ShapedRecipe(GrapplingHookAPI.createHook(config.getInt("Properties.CustomItems.GrapplingHook.GoldUses"))) + .shape(" **", " &*", " ") + .setIngredient('*', Material.GOLD_INGOT) + .setIngredient('&', Material.FISHING_ROD); + +} diff --git a/src/com/projectkorra/ProjectKorra/Utilities/GrapplingHookAPI.java b/src/com/projectkorra/ProjectKorra/Utilities/GrapplingHookAPI.java new file mode 100644 index 00000000..ff6175d1 --- /dev/null +++ b/src/com/projectkorra/ProjectKorra/Utilities/GrapplingHookAPI.java @@ -0,0 +1,162 @@ +package com.projectkorra.ProjectKorra.Utilities; + +import java.util.ArrayList; +import java.util.List; + +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.GameMode; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.util.Vector; + +import com.projectkorra.ProjectKorra.PKListener; +import com.projectkorra.ProjectKorra.ProjectKorra; + +public class GrapplingHookAPI { + + public static ItemStack createHook(int uses) { + ItemStack is = new ItemStack(Material.FISHING_ROD); + ItemMeta im = is.getItemMeta(); + im.setDisplayName(ChatColor.GOLD + "Grappling Hook"); + ArrayList lore = new ArrayList(); + lore.add(ChatColor.GRAY + "Uses Left: " + ChatColor.GREEN + uses); + im.setLore(lore); + is.setItemMeta(im); + return is; + } + + public static boolean isGrapplingHook(ItemStack is) { + ItemMeta im = is.getItemMeta(); + if (is.getType() == Material.FISHING_ROD && im.getDisplayName() != null && im.getDisplayName().equals(ChatColor.GOLD + "Grappling Hook")) { + return true; + } + return false; + } + + public static int getUses(ItemStack is) { + ItemMeta im = is.getItemMeta(); + String usesLine = im.getLore().get(0); + String uses = usesLine.substring(usesLine.indexOf("a") + 1, usesLine.length()); + + if (isInteger(uses)) { + return Integer.parseInt(uses); + } + else + return 0; + } + + public static boolean playerOnCooldown(Player player) { + if (PKListener.noGrapplePlayers.containsKey(player.getName())) return true; + return false; + } + + public static void removePlayerCooldown(Player player) { + if (PKListener.noGrapplePlayers.containsKey(player.getName())) { + PKListener.noGrapplePlayers.remove(player.getName()); + } + } + public static void addPlayerCooldown(final Player player, int seconds) { + if (PKListener.noGrapplePlayers.containsKey(player.getName())) { + Bukkit.getServer().getScheduler().cancelTask(PKListener.noGrapplePlayers.get(player.getName())); + } + + int taskId = ProjectKorra.plugin.getServer().getScheduler().scheduleSyncDelayedTask(ProjectKorra.plugin, new Runnable() { + public void run() { + removePlayerCooldown(player); + } + }, (100)); + + PKListener.noGrapplePlayers.put(player.getName(), taskId); + } + + public static void setUses(ItemStack is, int uses) { + ItemMeta im = is.getItemMeta(); + List lore = new ArrayList(); + + lore.add(ChatColor.GRAY+"Uses Left: " + ChatColor.GREEN + uses); + im.setLore(lore); + is.setItemMeta(im); + } + + public static boolean addUse(Player player, ItemStack hook) { + if (player.getGameMode() == GameMode.CREATIVE) return true; + + ItemMeta im = hook.getItemMeta(); + String usesLine = im.getLore().get(0); + String uses = usesLine.substring(usesLine.indexOf("a")+1, usesLine.length()); + + if (isInteger(uses) == false) { + player.setItemInHand(new ItemStack(Material.AIR)); + player.getWorld().playSound(player.getLocation(), Sound.ITEM_BREAK, 10f, 1f); + return false; + } else { + int currentUses = Integer.parseInt(uses); + currentUses--; + + if (currentUses == 0) { + player.setItemInHand(new ItemStack(Material.AIR)); + player.getWorld().playSound(player.getLocation(), Sound.ITEM_BREAK, 10f, 1f); + return false; + } else { + ArrayList lore = new ArrayList(); + lore.add(ChatColor.GRAY + "Uses Left: " + ChatColor.GREEN + currentUses); + im.setLore(lore); + hook.setItemMeta(im); + } + } + return true; + } + + public static void playGrappleSound(Location loc) { + loc.getWorld().playSound(loc, Sound.MAGMACUBE_JUMP, 10f, 1f); + } + + private static boolean isInteger(String s) { + try { + Integer.parseInt(s); + } catch (NumberFormatException e) { + return false; + } + return true; + } + + public static void pullPlayerSlightly(Player p, Location loc) { + if (loc.getY() > p.getLocation().getY()) { + p.setVelocity(new Vector(0, 0.25, 0)); + return; + } + + Location playerLoc = p.getLocation(); + + Vector vector = loc.toVector().subtract(playerLoc.toVector()); + p.setVelocity(vector); + } + + public static void pullEntityToLocation(final Entity e, Location loc) { + Location entityLoc = e.getLocation(); + + entityLoc.setY(entityLoc.getY() + 0.5); + e.teleport(entityLoc); + + double g = -0.08; + double d = loc.distance(entityLoc); + double t = d; + double v_x = (1.0+0.07*t) * (loc.getX()-entityLoc.getX())/t; + double v_y = (1.0+0.03*t) * (loc.getY()-entityLoc.getY())/t -0.5*g*t; + double v_z = (1.0+0.07*t) * (loc.getZ()-entityLoc.getZ())/t; + + Vector v = e.getVelocity(); + v.setX(v_x); + v.setY(v_y); + v.setZ(v_z); + e.setVelocity(v); + } + + +} \ No newline at end of file diff --git a/src/config.yml b/src/config.yml index 824172b6..bed886f2 100644 --- a/src/config.yml +++ b/src/config.yml @@ -1,6 +1,11 @@ Properties: GlobalCooldown: 500 SeaLevel: 62 + CustomItems: + GrapplingHook: + Enable: true + IronUses: 25 + GoldUses: 50 Chat: Format: ": " Enable: true diff --git a/src/plugin.yml b/src/plugin.yml index 977deb8d..3b40903f 100644 --- a/src/plugin.yml +++ b/src/plugin.yml @@ -1,6 +1,6 @@ name: ProjectKorra author: ProjectKorra -version: 1.2.0 BETA 8 +version: 1.2.0 BETA 9 main: com.projectkorra.ProjectKorra.ProjectKorra commands: projectkorra: