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:
+ *
+ * - Appearance: White square.
+ * - Speed value: Doesn't influence the particle.
+ *
*/
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:
+ *
+ * - Appearance: Honey colored lines.
+ * - Speed value: Doesn't influence the particle.
+ *
*/
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));
}
/**