From 650e4fa932cb40bd8f9aef6b76118e8a4530f05e Mon Sep 17 00:00:00 2001 From: Mason Adkins Date: Sun, 24 Mar 2013 21:42:49 -0400 Subject: [PATCH] potential fix to heart effect, added explosion effect --- .../aufdemrand/denizen/CommandHandler.java | 2 ++ .../denizen/npc/traits/ParticlesTrait.java | 22 +++++++++++++------ 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/main/java/net/aufdemrand/denizen/CommandHandler.java b/src/main/java/net/aufdemrand/denizen/CommandHandler.java index fe0a887e83..5ed3c62368 100644 --- a/src/main/java/net/aufdemrand/denizen/CommandHandler.java +++ b/src/main/java/net/aufdemrand/denizen/CommandHandler.java @@ -564,6 +564,8 @@ public void playEffect(CommandContext args, CommandSender sender, NPC npc) throw trait.setEffect("POTION"); } else if (name.equalsIgnoreCase("heart")) { trait.setEffect("HEART"); + } else if (name.equalsIgnoreCase("explosion")) { + trait.setEffect("EXPLOSION"); } else Messaging.send(sender, ChatColor.RED + "Not a valid effect name!"); } else Messaging.send(sender, ChatColor.RED + "Please specify an effect name!"); diff --git a/src/main/java/net/aufdemrand/denizen/npc/traits/ParticlesTrait.java b/src/main/java/net/aufdemrand/denizen/npc/traits/ParticlesTrait.java index 3edfdd5562..840b9a77be 100644 --- a/src/main/java/net/aufdemrand/denizen/npc/traits/ParticlesTrait.java +++ b/src/main/java/net/aufdemrand/denizen/npc/traits/ParticlesTrait.java @@ -13,11 +13,12 @@ import org.bukkit.World; import org.bukkit.craftbukkit.v1_5_R2.CraftWorld; import org.bukkit.craftbukkit.v1_5_R2.entity.CraftLivingEntity; +import org.bukkit.craftbukkit.v1_5_R2.entity.CraftWolf; import org.bukkit.entity.Wolf; public class ParticlesTrait extends Trait { - public enum EffectType { NONE, SMOKE, FLAME, ENDER, POTBREAK, HEART, POTION } + public enum EffectType { NONE, SMOKE, FLAME, ENDER, POTBREAK, HEART, POTION, EXPLOSION } //DataWatcher dw; //EntityLiving el; @@ -87,6 +88,13 @@ public void run() { counter = 0; } break; + case EXPLOSION: + if (counter > wait) { + dB.log("...playing explosion effect"); + playExplosionEffect(); + counter = 0; + } + break; } @@ -121,14 +129,9 @@ public void playPotionBreakEffect() { public void playHeartEffect() { Location location = npc.getBukkitEntity().getLocation(); Wolf tempWolf = (Wolf) world.spawn(location, Wolf.class); + ((CraftWolf)tempWolf).getHandle().setInvisible(true); tempWolf.playEffect(EntityEffect.WOLF_HEARTS); tempWolf.remove(); - - //((CraftWorld) world).getHandle().a( - // "heart", - // location.getBlockX(), - // location.getBlockY(), - // location.getBlockZ()); } public void playSmokeEffect() { @@ -144,6 +147,11 @@ public void playSmokeEffect() { world.playEffect(location, Effect.SMOKE, 8); } + public void playExplosionEffect() { + Location location = npc.getBukkitEntity().getLocation(); + world.createExplosion(location, 0); + } + public void setEffect(String effectType) { this.effectType = EffectType.valueOf(effectType.toUpperCase()); }