diff --git a/src/main/java/net/minecraft/server/NetServerHandler.java b/src/main/java/net/minecraft/server/NetServerHandler.java index 0ae1d3e65c..3d54810fc1 100644 --- a/src/main/java/net/minecraft/server/NetServerHandler.java +++ b/src/main/java/net/minecraft/server/NetServerHandler.java @@ -24,6 +24,7 @@ import org.bukkit.event.player.PlayerItemEvent; import org.bukkit.event.player.PlayerItemHeldEvent; import org.bukkit.event.player.PlayerKickEvent; import org.bukkit.event.player.PlayerMoveEvent; +import org.bukkit.event.player.PlayerToggleSneakEvent; import org.bukkit.plugin.Plugin; // CraftBukkit end @@ -652,6 +653,17 @@ public class NetServerHandler extends NetHandler implements ICommandListener { } public void a(Packet19EntityAction packet19entityaction) { + // CraftBukkit: Toggle Sneak + if (packet19entityaction.b == 1 || packet19entityaction.b == 2) { + Player player = getPlayer(); + PlayerToggleSneakEvent event = new PlayerToggleSneakEvent(Type.PLAYER_TOGGLE_SNEAK, player); + server.getPluginManager().callEvent(event); + if (event.isCancelled()) { + return; + } + } + // CraftBukkit: Set Sneaking + if (packet19entityaction.b == 1) { this.e.b(true); } else if (packet19entityaction.b == 2) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java index 3a929ee0f9..b90931fe09 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -150,4 +150,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player { entity.a.a(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); } } + + public void setSneaking(boolean sneak) { + entity.b(sneak); + } + + public boolean isSneaking() { + return entity.J(); + } }