From eddc66e46da625418c0373d7d31ebb27c9a0af05 Mon Sep 17 00:00:00 2001 From: HappyPikachu Date: Mon, 21 Mar 2016 21:20:59 -0400 Subject: [PATCH] Update to MC 1.9, completely untested. Bump version number --- pom.xml | 2 +- .../me/blackvein/particles/Eff_1_9_R1.java | 77 +++++++++++ .../me/blackvein/quests/NpcEffectThread.java | 125 +++++++++++++++++- 3 files changed, 202 insertions(+), 2 deletions(-) create mode 100644 src/main/java/me/blackvein/particles/Eff_1_9_R1.java diff --git a/pom.xml b/pom.xml index 1a28f82b5..83cf4cd22 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ me.blackvein.quests quests - 2.5.5 + 2.6.0 quests https://github.com/FlyingPikachu/Quests/ jar diff --git a/src/main/java/me/blackvein/particles/Eff_1_9_R1.java b/src/main/java/me/blackvein/particles/Eff_1_9_R1.java new file mode 100644 index 000000000..454bf1a31 --- /dev/null +++ b/src/main/java/me/blackvein/particles/Eff_1_9_R1.java @@ -0,0 +1,77 @@ +package me.blackvein.particles; + +import me.blackvein.quests.util.ReflectionUtil; +import net.minecraft.server.v1_8_R3.EnumParticle; +import net.minecraft.server.v1_8_R3.PacketPlayOutWorldParticles; + +import org.bukkit.Location; +import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer; +import org.bukkit.entity.Player; + +public enum Eff_1_9_R1 { + + EXPLOSION(EnumParticle.EXPLOSION_NORMAL), + EXPLOSION_LARGE(EnumParticle.EXPLOSION_LARGE), + EXPLOSION_HUGE(EnumParticle.EXPLOSION_HUGE), + FIREWORKS_SPARK(EnumParticle.FIREWORKS_SPARK), + BUBBLE(EnumParticle.WATER_BUBBLE), + WAKE(EnumParticle.WATER_WAKE), + SPLASH(EnumParticle.WATER_SPLASH), + SUSPENDED(EnumParticle.SUSPENDED), + DEPTH_SUSPEND(EnumParticle.SUSPENDED_DEPTH), + CRIT(EnumParticle.CRIT), + MAGIC_CRIT(EnumParticle.CRIT_MAGIC), + SMOKE(EnumParticle.SMOKE_NORMAL), + LARGE_SMOKE(EnumParticle.SMOKE_LARGE), + SPELL(EnumParticle.SPELL), + INSTANT_SPELL(EnumParticle.SPELL_INSTANT), + MOB_SPELL(EnumParticle.SPELL_MOB), + MOB_SPELL_AMBIENT(EnumParticle.SPELL_MOB_AMBIENT), + WITCH_MAGIC(EnumParticle.SPELL_WITCH), + DRIP_WATER(EnumParticle.DRIP_WATER), + DRIP_LAVA(EnumParticle.DRIP_LAVA), + ANGRY_VILLAGER(EnumParticle.VILLAGER_ANGRY), + HAPPY_VILLAGER(EnumParticle.VILLAGER_HAPPY), + TOWN_AURA(EnumParticle.TOWN_AURA), + NOTE(EnumParticle.NOTE), + PORTAL(EnumParticle.PORTAL), + ENCHANTMENT_TABLE(EnumParticle.ENCHANTMENT_TABLE), + FLAME(EnumParticle.FLAME), + LAVA(EnumParticle.LAVA), + FOOTSTEP(EnumParticle.FOOTSTEP), + CLOUD(EnumParticle.CLOUD), + RED_DUST(EnumParticle.REDSTONE), + SNOWBALL_POOF(EnumParticle.SNOWBALL), + SNOW_SHOVEL(EnumParticle.SNOW_SHOVEL), + SLIME(EnumParticle.SLIME), + HEART(EnumParticle.HEART), + BARRIER(EnumParticle.BARRIER), + ICONCRACK_(EnumParticle.ITEM_CRACK), + BLOCKCRACK_(EnumParticle.BLOCK_CRACK), + BLOCKDUST_(EnumParticle.BLOCK_DUST), + DROPLET(EnumParticle.WATER_DROP), + TAKE(EnumParticle.ITEM_TAKE), + MOB_APPEARANCE(EnumParticle.MOB_APPEARANCE); + + private final EnumParticle particleEnum; + + Eff_1_9_R1(EnumParticle particleEnum) { + this.particleEnum = particleEnum; + } + + public void sendToPlayer(Player player, Location location, float offsetX, float offsetY, float offsetZ, float speed, int count, int[] data) throws Exception { + PacketPlayOutWorldParticles packet = new PacketPlayOutWorldParticles(); + ReflectionUtil.setValue(packet, "a", particleEnum); + ReflectionUtil.setValue(packet, "b", (float) location.getX()); + ReflectionUtil.setValue(packet, "c", (float) location.getY()); + ReflectionUtil.setValue(packet, "d", (float) location.getZ()); + ReflectionUtil.setValue(packet, "e", offsetX); + ReflectionUtil.setValue(packet, "f", offsetY); + ReflectionUtil.setValue(packet, "g", offsetZ); + ReflectionUtil.setValue(packet, "h", speed); + ReflectionUtil.setValue(packet, "i", count); + ReflectionUtil.setValue(packet, "k", data); + ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); + } + +} \ No newline at end of file diff --git a/src/main/java/me/blackvein/quests/NpcEffectThread.java b/src/main/java/me/blackvein/quests/NpcEffectThread.java index 2d199f56f..7b471fc1a 100644 --- a/src/main/java/me/blackvein/quests/NpcEffectThread.java +++ b/src/main/java/me/blackvein/quests/NpcEffectThread.java @@ -9,6 +9,7 @@ import me.blackvein.particles.Eff_1_7_R4; import me.blackvein.particles.Eff_1_8_R1; import me.blackvein.particles.Eff_1_8_R2; import me.blackvein.particles.Eff_1_8_R3; +import me.blackvein.particles.Eff_1_9_R1; import net.citizensnpcs.api.npc.NPC; import org.bukkit.Bukkit; @@ -26,7 +27,6 @@ public class NpcEffectThread implements Runnable { } - @SuppressWarnings("deprecation") @Override public void run() { @@ -75,9 +75,132 @@ public class NpcEffectThread implements Runnable { showEffect_1_8_R2(player, npc); } else if (Bukkit.getBukkitVersion().contains("1.8")) { showEffect_1_8_R1(player, npc); + } else if (Bukkit.getBukkitVersion().contains("1.9")) { + showEffect_1_9_R1(player, npc); } } + private static void showEffect_1_9_R1(Player player, NPC npc) { + + //Get and set eye location, because npc.getBukkitEntity() is deprecated. + Location eyeLoc = npc.getEntity().getLocation(); + eyeLoc.setY(eyeLoc.getY() + 1.5); + + if (Quests.effect.equalsIgnoreCase("enchant")) { + + try { + Eff_1_9_R1.ENCHANTMENT_TABLE.sendToPlayer(player, eyeLoc, 0, 1, 0, 1, 10, null); + } catch (Exception e) { + e.printStackTrace(); + } + + } else if (Quests.effect.equalsIgnoreCase("crit")) { + + try { + Eff_1_9_R1.CRIT.sendToPlayer(player, eyeLoc, 0, 0, 0, (float) 0.35, 3, null); + } catch (Exception e) { + e.printStackTrace(); + } + + } else if (Quests.effect.equalsIgnoreCase("spell")) { + + try { + Eff_1_9_R1.INSTANT_SPELL.sendToPlayer(player, eyeLoc, 0, 0, 0, 1, 3, null); + } catch (Exception e) { + e.printStackTrace(); + } + + } else if (Quests.effect.equalsIgnoreCase("magiccrit")) { + + try { + Eff_1_9_R1.MAGIC_CRIT.sendToPlayer(player, eyeLoc, 0, 0, 0, (float) 0.35, 3, null); + } catch (Exception e) { + e.printStackTrace(); + } + + } else if (Quests.effect.equalsIgnoreCase("mobspell")) { + + try { + Eff_1_9_R1.MOB_SPELL.sendToPlayer(player, eyeLoc, 0, 0, 0, 1, 3, null); + } catch (Exception e) { + e.printStackTrace(); + } + + } else if (Quests.effect.equalsIgnoreCase("note")) { + + try { + Location old = eyeLoc; + Location newLoc = new Location(player.getWorld(), old.getX(), old.getY() + (float) 0.5, old.getZ()); + Eff_1_9_R1.NOTE.sendToPlayer(player, newLoc, 0, 0, 0, 1, 1, null); + } catch (Exception e) { + e.printStackTrace(); + } + + } else if (Quests.effect.equalsIgnoreCase("portal")) { + + try { + Eff_1_9_R1.PORTAL.sendToPlayer(player, eyeLoc, 0, 0, 0, 1, 5, null); + } catch (Exception e) { + e.printStackTrace(); + } + + } else if (Quests.effect.equalsIgnoreCase("dust")) { + + try { + Location newLoc = new Location(player.getWorld(), eyeLoc.getX(), eyeLoc.getY() + (float) 0.5, eyeLoc.getZ()); + Eff_1_9_R1.RED_DUST.sendToPlayer(player, newLoc, 0, 0, 0, 1, 1, null); + } catch (Exception e) { + e.printStackTrace(); + } + + } else if (Quests.effect.equalsIgnoreCase("witch")) { + + try { + Eff_1_9_R1.WITCH_MAGIC.sendToPlayer(player, eyeLoc, 0, 0, 0, 1, 3, null); + } catch (Exception e) { + e.printStackTrace(); + } + + } else if (Quests.effect.equalsIgnoreCase("snowball")) { + + try { + Location old = eyeLoc; + Location newLoc = new Location(player.getWorld(), old.getX(), old.getY() + (float) 0.5, old.getZ()); + Eff_1_9_R1.SNOWBALL_POOF.sendToPlayer(player, newLoc, 0, 0, 0, 1, 3, null); + } catch (Exception e) { + e.printStackTrace(); + } + + } else if (Quests.effect.equalsIgnoreCase("splash")) { + + try { + Location old = eyeLoc; + Location newLoc = new Location(player.getWorld(), old.getX(), old.getY() + (float) 0.5, old.getZ()); + Eff_1_9_R1.SPLASH.sendToPlayer(player, newLoc, 0, 0, 0, 1, 4, null); + } catch (Exception e) { + e.printStackTrace(); + } + + } else if (Quests.effect.equalsIgnoreCase("smoke")) { + + try { + Eff_1_9_R1.TOWN_AURA.sendToPlayer(player, eyeLoc, 0, 1, 0, 1, 20, null); + } catch (Exception e) { + e.printStackTrace(); + } + + } else { + + try { + Eff_1_9_R1.valueOf(Quests.effect).sendToPlayer(player, eyeLoc, 0, 0, 0, 1, 3, null); + } catch (Exception e) { + Quests.getInstance().getLogger().info(Quests.effect + " is not a valid effect name!"); + e.printStackTrace(); + } + } + + } + private static void showEffect_1_8_R3(Player player, NPC npc) { //Get and set eye location, because npc.getBukkitEntity() is deprecated.