From bbd1a0ef10e5d2346189a7081d141eaef3979623 Mon Sep 17 00:00:00 2001 From: wizjany Date: Mon, 9 Dec 2013 08:39:55 -0500 Subject: [PATCH] Protect items in item frames in protected regions. --- .../bukkit/WorldGuardEntityListener.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardEntityListener.java b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardEntityListener.java index a107e751..20df8ed7 100644 --- a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardEntityListener.java +++ b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardEntityListener.java @@ -33,6 +33,7 @@ import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import org.bukkit.entity.Fireball; +import org.bukkit.entity.ItemFrame; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.entity.Projectile; @@ -235,6 +236,19 @@ private void onEntityDamageByEntity(EntityDamageByEntityEvent event) { } } } + + if (defender instanceof ItemFrame && wcfg.useRegions) { + // bukkit throws this event when a player attempts to remove an item from a frame + World world = player.getWorld(); + RegionManager mgr = plugin.getGlobalRegionManager().get(world); + if (!plugin.getGlobalRegionManager().hasBypass(player, world) + && !mgr.getApplicableRegions(defender.getLocation()) + .canBuild(plugin.wrapPlayer(player))) { + player.sendMessage(ChatColor.DARK_RED + "You don't have permission for this area."); + event.setCancelled(true); + return; + } + } } if (defender instanceof Player) {