diff --git a/src/main/java/xyz/xenondevs/particle/ParticleConstants.java b/src/main/java/xyz/xenondevs/particle/ParticleConstants.java index b05cdf3..2f2a292 100644 --- a/src/main/java/xyz/xenondevs/particle/ParticleConstants.java +++ b/src/main/java/xyz/xenondevs/particle/ParticleConstants.java @@ -211,7 +211,9 @@ public class ParticleConstants { //Constructors PACKET_PLAY_OUT_WORLD_PARTICLES_CONSTRUCTOR = version < 13 ? getConstructorOrNull(PACKET_PLAY_OUT_WORLD_PARTICLES_CLASS, PARTICLE_ENUM, boolean.class, float.class, float.class, float.class, float.class, float.class, float.class, float.class, int.class, int[].class) : - getConstructorOrNull(PACKET_PLAY_OUT_WORLD_PARTICLES_CLASS, PARTICLE_PARAM_CLASS, boolean.class, float.class, float.class, float.class, float.class, float.class, float.class, float.class, int.class); + version < 15 ? + getConstructorOrNull(PACKET_PLAY_OUT_WORLD_PARTICLES_CLASS, PARTICLE_PARAM_CLASS, boolean.class, float.class, float.class, float.class, float.class, float.class, float.class, float.class, int.class) + : getConstructorOrNull(PACKET_PLAY_OUT_WORLD_PARTICLES_CLASS, PARTICLE_PARAM_CLASS, boolean.class, double.class, double.class, double.class, float.class, float.class, float.class, float.class, int.class); MINECRAFT_KEY_CONSTRUCTOR = getConstructorOrNull(MINECRAFT_KEY_CLASS, String.class); PARTICLE_PARAM_REDSTONE_CONSTRUCTOR = version < 13 ? null : getConstructorOrNull(PARTICLE_PARAM_REDSTONE_CLASS, float.class, float.class, float.class, float.class); PARTICLE_PARAM_BLOCK_CONSTRUCTOR = version < 13 ? null : getConstructorOrNull(PARTICLE_PARAM_BLOCK_CLASS, PARTICLE_CLASS, BLOCK_DATA_INTERFACE); diff --git a/src/main/java/xyz/xenondevs/particle/ParticleEffect.java b/src/main/java/xyz/xenondevs/particle/ParticleEffect.java index 2163ab6..dbfa6fe 100644 --- a/src/main/java/xyz/xenondevs/particle/ParticleEffect.java +++ b/src/main/java/xyz/xenondevs/particle/ParticleEffect.java @@ -71,17 +71,21 @@ *
  • {@link #DRAGON_BREATH}
  • *
  • {@link #DRIP_LAVA}
  • *
  • {@link #DRIP_WATER}
  • + *
  • {@link #DRIPPING_HONEY}
  • *
  • {@link #ENCHANTMENT_TABLE}
  • *
  • {@link #END_ROD}
  • *
  • {@link #EXPLOSION_HUGE}
  • *
  • {@link #EXPLOSION_LARGE}
  • *
  • {@link #EXPLOSION_NORMAL}
  • *
  • {@link #FALLING_DUST}
  • + *
  • {@link #FALLING_HONEY}
  • + *
  • {@link #FALLING_NECTAR}
  • *
  • {@link #FIREWORKS_SPARK}
  • *
  • {@link #FLAME}
  • *
  • {@link #FOOTSTEP}
  • *
  • {@link #HEART}
  • *
  • {@link #ITEM_CRACK}
  • + *
  • {@link #LANDING_HONEY}
  • *
  • {@link #LAVA}
  • *
  • {@link #MOB_APPEARANCE}
  • *
  • {@link #NAUTILUS}
  • @@ -400,9 +404,21 @@ public enum ParticleEffect { */ DRIP_WATER(version -> version < 8 ? "NONE" : (version < 13 ? "DRIP_WATER" : "dripping_water")), /** - * Since a 1.15 spigot hasn't been - * released yet there is no - * documentation for this particle. + * In the base game this particle + * is displayed by beehives filled + * with honey. As opposed to the + * {@link #FALLING_HONEY} particles, + * this particle floats in the air + * before falling to the ground. + *

    + * The particle is displayed clientside + * so it's not used in any nms classes. + *

    + * Information: + *

  • Appearance: A rectangular honey drop.
  • + *
  • Speed value: Doesn't influence the particle.
  • + *
  • Extra: Spawns a {@link #LANDING_HONEY} particle after landing on a block.
  • + * */ DRIPPING_HONEY(version -> version < 15 ? "NONE" : "dripping_honey"), /** @@ -506,15 +522,35 @@ public enum ParticleEffect { */ FALLING_DUST(version -> version < 10 ? "NONE" : (version < 13 ? "FALLING_DUST" : "falling_dust"), REQUIRES_BLOCK), /** - * Since a 1.15 spigot hasn't been - * released yet there is no - * documentation for this particle. + * In the base game this particle is + * displayed below beehives filled + * with honey. As opposed to the + * {@link #DRIPPING_HONEY} particles, + * this particle falls instantly. + *

    + * The particle is displayed clientside + * so it's not used in any nms classes. + *

    + * Information: + *

  • Appearance: A rectangular honey drop.
  • + *
  • Speed value: Doesn't influence the particle.
  • + *
  • Extra: Spawns a {@link #LANDING_HONEY} after landing on a block.
  • + * */ FALLING_HONEY(version -> version < 15 ? "NONE" : "falling_honey"), /** - * Since a 1.15 spigot hasn't been - * released yet there is no - * documentation for this particle. + * In the base game this particle is + * displayed by bees that have pollen + * and are on their way to the beehive. + *

    + * The particle originates from the + * nms EntityBee class. + *

    + * Information: + *

    */ FALLING_NECTAR(version -> version < 15 ? "NONE" : "falling_nectar"), /** @@ -603,9 +639,19 @@ public enum ParticleEffect { */ ITEM_CRACK(version -> version < 8 ? "NONE" : (version < 13 ? "ITEM_CRACK" : "item"), DIRECTIONAL, REQUIRES_ITEM), /** - * Since a 1.15 spigot hasn't been - * released yet there is no - * documentation for this particle. + * In the base game this particle + * is displayed after a Falling or + * Dripping Honey particle reaches + * a block. + *

    + * The particle is displayed clientside + * so it's not used in any nms classes. + *

    + * Information: + *

    */ LANDING_HONEY(version -> version < 15 ? "NONE" : "landing_honey"), /** diff --git a/src/main/java/xyz/xenondevs/particle/ParticlePacket.java b/src/main/java/xyz/xenondevs/particle/ParticlePacket.java index bc53cc9..ebde76e 100644 --- a/src/main/java/xyz/xenondevs/particle/ParticlePacket.java +++ b/src/main/java/xyz/xenondevs/particle/ParticlePacket.java @@ -356,7 +356,9 @@ private Object createPacket(Object param, float locationX, float locationY, floa try { return ReflectionUtils.MINECRAFT_VERSION < 13 ? packetConstructor.newInstance(param, true, locationX, locationY, locationZ, offsetX, offsetY, offsetZ, speed, amount, data) - : packetConstructor.newInstance(param, true, locationX, locationY, locationZ, offsetX, offsetY, offsetZ, speed, amount); + : (ReflectionUtils.MINECRAFT_VERSION < 15 + ? packetConstructor.newInstance(param, true, locationX, locationY, locationZ, offsetX, offsetY, offsetZ, speed, amount) + : packetConstructor.newInstance(param, true, (double) locationX, (double) locationY, (double) locationZ, offsetX, offsetY, offsetZ, speed, amount)); } catch (Exception ex) { return null; } diff --git a/src/main/java/xyz/xenondevs/particle/utils/ReflectionUtils.java b/src/main/java/xyz/xenondevs/particle/utils/ReflectionUtils.java index f5cc6e0..fe39358 100644 --- a/src/main/java/xyz/xenondevs/particle/utils/ReflectionUtils.java +++ b/src/main/java/xyz/xenondevs/particle/utils/ReflectionUtils.java @@ -67,7 +67,7 @@ public class ReflectionUtils { NET_MINECRAFT_SERVER_PACKAGE_PATH = "net.minecraft.server." + version; CRAFT_BUKKIT_PACKAGE_PATH = "org.bukkit.craftbukkit." + version; String packageVersion = serverPath.substring(serverPath.lastIndexOf(".") + 2); - MINECRAFT_VERSION = Integer.valueOf(packageVersion.substring(0, packageVersion.lastIndexOf("_")).replace("_", ".").substring(2)); + MINECRAFT_VERSION = Integer.parseInt(packageVersion.substring(0, packageVersion.lastIndexOf("_")).replace("_", ".").substring(2)); } /**