diff options
author | KHobbits <rob@khobbits.co.uk> | 2012-09-19 20:55:46 +0100 |
---|---|---|
committer | KHobbits <rob@khobbits.co.uk> | 2012-09-19 20:57:06 +0100 |
commit | 2a8e44dda89d9c4b3ea7a79352473c000fb4633e (patch) | |
tree | 37c66773768d2987a6b58dc8faf541c210cabb3e /EssentialsAntiBuild/src/com/earth2me | |
parent | 00e3957190f8752297acf7d8d85c17e3e251f50d (diff) | |
download | Essentials-2a8e44dda89d9c4b3ea7a79352473c000fb4633e.tar Essentials-2a8e44dda89d9c4b3ea7a79352473c000fb4633e.tar.gz Essentials-2a8e44dda89d9c4b3ea7a79352473c000fb4633e.tar.lz Essentials-2a8e44dda89d9c4b3ea7a79352473c000fb4633e.tar.xz Essentials-2a8e44dda89d9c4b3ea7a79352473c000fb4633e.zip |
New Permission:
essentials.build.pickup.<id>[:<datavalue>] - Allows collecting of an item
essentials.build.drop.<id>[:<datavalue>] - Allows dropping of an item
Diffstat (limited to 'EssentialsAntiBuild/src/com/earth2me')
-rw-r--r-- | EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/EssentialsAntiBuildListener.java | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/EssentialsAntiBuildListener.java b/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/EssentialsAntiBuildListener.java index a58ffa04e..1fc57525d 100644 --- a/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/EssentialsAntiBuildListener.java +++ b/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/EssentialsAntiBuildListener.java @@ -15,7 +15,9 @@ import org.bukkit.event.Listener; import org.bukkit.event.block.*; import org.bukkit.event.inventory.CraftItemEvent; import org.bukkit.event.painting.PaintingBreakByEntityEvent; +import org.bukkit.event.player.PlayerDropItemEvent; import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.event.player.PlayerPickupItemEvent; import org.bukkit.inventory.ItemStack; @@ -248,9 +250,43 @@ public class EssentialsAntiBuildListener implements Listener event.setCancelled(true); if (ess.getSettings().warnOnBuildDisallow()) { - user.sendMessage(_("antiBuildUse", item.getType().toString())); + user.sendMessage(_("antiBuildCraft", item.getType().toString())); } } } } + + @EventHandler(priority = EventPriority.LOW) + public void onPlayerPickupItem(PlayerPickupItemEvent event) + { + + final User user = ess.getUser(event.getPlayer()); + final ItemStack item = event.getItem().getItemStack(); + + if (!metaPermCheck(user, "craft", item.getTypeId(), item.getData().getData())) + { + event.setCancelled(true); + event.getItem().setPickupDelay(50); + } + + } + + @EventHandler(priority = EventPriority.LOW) + public void onPlayerDropItem(PlayerDropItemEvent event) + { + + final User user = ess.getUser(event.getPlayer()); + final ItemStack item = event.getItemDrop().getItemStack(); + + if (!metaPermCheck(user, "drop", item.getTypeId(), item.getData().getData())) + { + event.setCancelled(true); + user.updateInventory(); + if (ess.getSettings().warnOnBuildDisallow()) + { + user.sendMessage(_("antiBuildDrop", item.getType().toString())); + } + } + + } } |