summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKHobbits <rob@khobbits.co.uk>2014-02-09 21:51:18 +0000
committerKHobbits <rob@khobbits.co.uk>2014-02-09 21:54:04 +0000
commit2abe63222c2c794436b119a0d165620b336ab87f (patch)
tree25c863b941e2f5229d4154709358d162d4e58fec
parent9703eb437279802941eda279a68ad2bb773d318a (diff)
downloadEssentials-2abe63222c2c794436b119a0d165620b336ab87f.tar
Essentials-2abe63222c2c794436b119a0d165620b336ab87f.tar.gz
Essentials-2abe63222c2c794436b119a0d165620b336ab87f.tar.lz
Essentials-2abe63222c2c794436b119a0d165620b336ab87f.tar.xz
Essentials-2abe63222c2c794436b119a0d165620b336ab87f.zip
Fix ghost items with /recipe
-rw-r--r--Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java41
1 files changed, 36 insertions, 5 deletions
diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java
index 6db22c0fa..975559026 100644
--- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java
+++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java
@@ -650,6 +650,7 @@ public class EssentialsPlayerListener implements Listener
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
public void onInventoryClickEvent(final InventoryClickEvent event)
{
+ Player refreshPlayer = null;
final Inventory top = event.getView().getTopInventory();
final InventoryType type = top.getType();
@@ -665,7 +666,7 @@ public class EssentialsPlayerListener implements Listener
|| !invOwner.isOnline()))
{
event.setCancelled(true);
- user.updateInventory();
+ refreshPlayer = user.getBase();
}
}
}
@@ -675,6 +676,7 @@ public class EssentialsPlayerListener implements Listener
if (user.isEnderSee() && (!user.isAuthorized("essentials.enderchest.modify")))
{
event.setCancelled(true);
+ refreshPlayer = user.getBase();
}
}
else if (type == InventoryType.WORKBENCH)
@@ -683,6 +685,7 @@ public class EssentialsPlayerListener implements Listener
if (user.isRecipeSee())
{
event.setCancelled(true);
+ refreshPlayer = user.getBase();
}
}
else if (type == InventoryType.CHEST && top.getSize() == 9)
@@ -692,26 +695,41 @@ public class EssentialsPlayerListener implements Listener
if (invHolder != null && invHolder instanceof HumanEntity && user.isInvSee())
{
event.setCancelled(true);
+ refreshPlayer = user.getBase();
}
}
+
+ if (refreshPlayer != null)
+ {
+ final Player player = refreshPlayer;
+ ess.scheduleSyncDelayedTask(new Runnable()
+ {
+ @Override
+ public void run()
+ {
+ player.updateInventory();
+ }
+ }, 1);
+ }
}
@EventHandler(priority = EventPriority.MONITOR)
public void onInventoryCloseEvent(final InventoryCloseEvent event)
{
+ Player refreshPlayer = null;
final Inventory top = event.getView().getTopInventory();
final InventoryType type = top.getType();
if (type == InventoryType.PLAYER)
{
final User user = ess.getUser((Player)event.getPlayer());
user.setInvSee(false);
- user.updateInventory();
+ refreshPlayer = user.getBase();
}
else if (type == InventoryType.ENDER_CHEST)
{
final User user = ess.getUser((Player)event.getPlayer());
user.setEnderSee(false);
- user.updateInventory();
+ refreshPlayer = user.getBase();
}
else if (type == InventoryType.WORKBENCH)
{
@@ -720,7 +738,7 @@ public class EssentialsPlayerListener implements Listener
{
user.setRecipeSee(false);
event.getView().getTopInventory().clear();
- user.updateInventory();
+ refreshPlayer = user.getBase();
}
}
else if (type == InventoryType.CHEST && top.getSize() == 9)
@@ -730,9 +748,22 @@ public class EssentialsPlayerListener implements Listener
{
final User user = ess.getUser((Player)event.getPlayer());
user.setInvSee(false);
- user.updateInventory();
+ refreshPlayer = user.getBase();
}
}
+
+ if (refreshPlayer != null)
+ {
+ final Player player = refreshPlayer;
+ ess.scheduleSyncDelayedTask(new Runnable()
+ {
+ @Override
+ public void run()
+ {
+ player.updateInventory();
+ }
+ }, 1);
+ }
}
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)