diff options
author | KHobbits <rob@khobbits.co.uk> | 2012-06-03 16:34:27 +0100 |
---|---|---|
committer | KHobbits <rob@khobbits.co.uk> | 2012-06-03 16:34:27 +0100 |
commit | 73a17dd11a914fc8df84be1545c1232c2dcd3d38 (patch) | |
tree | 2b95970e9de7e05fc930b650d88ea45fd3d74f57 | |
parent | cbe3aec6702c5a6be0aa9c9640054a9ba7016550 (diff) | |
download | Essentials-73a17dd11a914fc8df84be1545c1232c2dcd3d38.tar Essentials-73a17dd11a914fc8df84be1545c1232c2dcd3d38.tar.gz Essentials-73a17dd11a914fc8df84be1545c1232c2dcd3d38.tar.lz Essentials-73a17dd11a914fc8df84be1545c1232c2dcd3d38.tar.xz Essentials-73a17dd11a914fc8df84be1545c1232c2dcd3d38.zip |
Fix broken preventmodify permissions check in invsee (*scowls at ementalo*)
Also added check to prevent duping items
-rw-r--r-- | Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java index 551833fc0..8eee65182 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java @@ -14,6 +14,7 @@ import java.util.logging.Level; import java.util.logging.Logger; import org.bukkit.Location; import org.bukkit.Material; +import org.bukkit.entity.HumanEntity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; @@ -24,6 +25,7 @@ import org.bukkit.event.inventory.InventoryType; import org.bukkit.event.player.PlayerLoginEvent.Result; import org.bukkit.event.player.*; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; +import org.bukkit.inventory.InventoryHolder; import org.bukkit.inventory.ItemStack; @@ -427,11 +429,16 @@ public class EssentialsPlayerListener implements Listener if (event.getView().getTopInventory().getType() == InventoryType.PLAYER) { final User user = ess.getUser(event.getWhoClicked()); - final User invOwner = ess.getUser(event.getView().getPlayer()); - if (user.isInvSee() && (!user.isAuthorized("essentials.invsee.modify") - || invOwner.isAuthorized("essentials.invsee.preventmodify"))) + final InventoryHolder invHolder = event.getView().getTopInventory().getHolder(); + if (invHolder != null && invHolder instanceof HumanEntity) { - event.setCancelled(true); + final User invOwner = ess.getUser((HumanEntity)invHolder); + if (user.isInvSee() && (!user.isAuthorized("essentials.invsee.modify") + || invOwner.isAuthorized("essentials.invsee.preventmodify") + || !invOwner.isOnline())) + { + event.setCancelled(true); + } } } } |