From 05b19edd5c1e3f2cad5a34859d89d6eea655fc0c Mon Sep 17 00:00:00 2001 From: Shevchik Date: Sun, 1 Sep 2013 14:39:11 +0400 Subject: [PATCH] Correctly unSit the player --- src/com/cnaude/chairs/EventListener.java | 40 +++++----------------- src/com/cnaude/chairs/PacketListener.java | 40 ++++++++++++++-------- target/Chairs.jar | Bin 23041 -> 22900 bytes 3 files changed, 34 insertions(+), 46 deletions(-) diff --git a/src/com/cnaude/chairs/EventListener.java b/src/com/cnaude/chairs/EventListener.java index a0aeebe..d2568c4 100644 --- a/src/com/cnaude/chairs/EventListener.java +++ b/src/com/cnaude/chairs/EventListener.java @@ -11,8 +11,6 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.event.player.PlayerMoveEvent; -import org.bukkit.event.vehicle.VehicleExitEvent; import org.bukkit.material.Stairs; import org.bukkit.material.Step; import org.bukkit.material.WoodenStep; @@ -39,36 +37,6 @@ public class EventListener implements Listener { return false; } - @EventHandler - public void onVehicleExitEvent(VehicleExitEvent event) { - Entity e = event.getVehicle().getPassenger(); - if (e instanceof Player) { - Player player = (Player) e; - if (plugin.sit.containsKey(player.getName())) { - unSit(player); - } - } - } - - @EventHandler - public void onPlayerMoveEvent(PlayerMoveEvent event) { - if (event.getFrom().distance(event.getTo()) > 0) { - Player player = event.getPlayer(); - if (plugin.sit.containsKey(player.getName())) { - if (plugin.sit.get(player.getName()).getLocation().distance(player.getLocation()) > 0.5) { - unSit(player); - } - } - } - } - - private void unSit(Player player) { - plugin.sit.get(player.getName()).remove(); - plugin.sit.remove(player.getName()); - if (plugin.notifyplayer && !plugin.msgStanding.isEmpty()) { - player.sendMessage(plugin.msgStanding); - } - } private boolean isSitting(Player player) { if (player.isInsideVehicle()) { @@ -80,6 +48,14 @@ public class EventListener implements Listener { } return false; } + + private void unSit(Player player) { + plugin.sit.get(player.getName()).remove(); + plugin.sit.remove(player.getName()); + if (plugin.notifyplayer && !plugin.msgStanding.isEmpty()) { + player.sendMessage(plugin.msgStanding); + } + } @EventHandler public void onPlayerInteract(PlayerInteractEvent event) { diff --git a/src/com/cnaude/chairs/PacketListener.java b/src/com/cnaude/chairs/PacketListener.java index 22cce63..2182053 100644 --- a/src/com/cnaude/chairs/PacketListener.java +++ b/src/com/cnaude/chairs/PacketListener.java @@ -3,6 +3,7 @@ package com.cnaude.chairs; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.v1_6_R2.entity.CraftArrow; import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; import com.comphenix.protocol.Packets; import com.comphenix.protocol.ProtocolManager; @@ -37,31 +38,42 @@ public class PacketListener { { if (!e.isCancelled()) { - final String playername = e.getPlayer().getName(); + final Player player = e.getPlayer(); if (e.getPacket().getBooleans().getValues().get(1)) { - e.getAsyncMarker().incrementProcessingDelay(); + final Entity arrow = pluginInstance.sit.get(player.getName()); + if (arrow != null) + { + net.minecraft.server.v1_6_R2.EntityArrow nmsarrow = ((CraftArrow) arrow).getHandle(); + nmsarrow.motX = 0; + nmsarrow.motY = 0; + nmsarrow.motZ = 0; + nmsarrow.boundingBox.b = -1; + } Bukkit.getScheduler().scheduleSyncDelayedTask(pluginInstance, new Runnable() { public void run() { - Entity arrow = pluginInstance.sit.get(playername); - if (arrow != null) - { - net.minecraft.server.v1_6_R2.EntityArrow nmsarrow = ((CraftArrow) arrow).getHandle(); - nmsarrow.motX = 0; - nmsarrow.motY = 0; - nmsarrow.motZ = 0; - nmsarrow.boundingBox.b = -1; - } - pm.getAsynchronousManager().signalPacketTransmission(e); + unSit(player); } - }); + },1); } } } - }).start(); + }).syncStart(); } + + + private void unSit(Player player) { + if (pluginInstance.sit.containsKey(player.getName())) + { + pluginInstance.sit.get(player.getName()).remove(); + pluginInstance.sit.remove(player.getName()); + if (pluginInstance.notifyplayer && !pluginInstance.msgStanding.isEmpty()) { + player.sendMessage(pluginInstance.msgStanding); + } + } + } } diff --git a/target/Chairs.jar b/target/Chairs.jar index 48b3186c76375620adb5d0d4bf3bf3d0e38c1abe..b9d439dfef59c7cbedd3c6dd0d8221b3e74c4208 100644 GIT binary patch delta 9671 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