From 1460f250cf98881f4b376f48ac3da03b2c786949 Mon Sep 17 00:00:00 2001 From: t00thpick1 Date: Fri, 13 Dec 2013 19:32:17 -0500 Subject: [PATCH] Alter fall particles to respect visibility API. Fixes BUKKIT-5158 Bukkits Visibility API should prevent players from seeing fall particles of players that they cannot see. This commit alters the handling to provide an EntityPlayer argument that is later used to determine if they are visible. --- src/main/java/net/minecraft/server/EntityLiving.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java index 75b1ec1084..7211da8382 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -127,7 +127,14 @@ public abstract class EntityLiving extends Entity { block = this.world.getType(i, j - 1, k); } } else if (!this.world.isStatic && this.fallDistance > 3.0F) { - this.world.triggerEffect(2006, i, j, k, MathHelper.f(this.fallDistance - 3.0F)); + // CraftBukkit start - supply player as argument in particles for visibility API to work + if (this instanceof EntityPlayer) { + this.world.a((EntityHuman) this, 2006, i, j, k, MathHelper.f(this.fallDistance - 3.0F)); + ((EntityPlayer) this).playerConnection.sendPacket(new PacketPlayOutWorldEvent(2006, i, j, k, MathHelper.f(this.fallDistance - 3.0F), false)); + } else { + this.world.triggerEffect(2006, i, j, k, MathHelper.f(this.fallDistance - 3.0F)); + } + // CraftBukkit end } block.a(this.world, i, j, k, this, this.fallDistance);