From 6ad4ca2a426346e08228ce36564472468a8c2713 Mon Sep 17 00:00:00 2001 From: Alexander Hesse Date: Tue, 25 Jan 2011 19:08:54 +0100 Subject: [PATCH] Implemented Sneak event --- .../java/net/minecraft/server/NetServerHandler.java | 12 ++++++++++++ .../org/bukkit/craftbukkit/entity/CraftPlayer.java | 8 ++++++++ 2 files changed, 20 insertions(+) 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(); + } }