diff options
Diffstat (limited to 'EssentialsAntiBuild/src/net')
-rw-r--r-- | EssentialsAntiBuild/src/net/ess3/antibuild/EssentialsAntiBuildListener.java | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/EssentialsAntiBuild/src/net/ess3/antibuild/EssentialsAntiBuildListener.java b/EssentialsAntiBuild/src/net/ess3/antibuild/EssentialsAntiBuildListener.java index 81acdc1e3..250bca9dd 100644 --- a/EssentialsAntiBuild/src/net/ess3/antibuild/EssentialsAntiBuildListener.java +++ b/EssentialsAntiBuild/src/net/ess3/antibuild/EssentialsAntiBuildListener.java @@ -6,6 +6,7 @@ import net.ess3.api.IUser; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.entity.Entity; +import org.bukkit.entity.EntityType; import org.bukkit.entity.HumanEntity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -108,15 +109,27 @@ public class EssentialsAntiBuildListener implements Listener final Entity entity = event.getRemover(); if (entity instanceof Player) { + final Boolean warn = antib.getSettings().getData().isWarnOnBuildDisallow(); + final EntityType type = event.getEntity().getType(); final IUser user = ess.getUserMap().getUser((Player)entity); - if (antib.getSettings().getData().isDisableBuild() && !Permissions.BUILD.isAuthorized(user) && !Permissions.BREAK.isAuthorized( - user, Material.PAINTING, null)) + if (antib.getSettings().getData().isDisableBuild() && !Permissions.BUILD.isAuthorized(user)) { - if (antib.getSettings().getData().isWarnOnBuildDisallow()) + if (type == EntityType.PAINTING && !Permissions.BREAK.isAuthorized(user, Material.PAINTING, null)) { - user.sendMessage(_("antiBuildBreak", Material.PAINTING.toString())); + if (warn) + { + user.sendMessage(_("antiBuildBreak", Material.PAINTING.toString())); + } + event.setCancelled(true); + } + else if (type == EntityType.ITEM_FRAME && !Permissions.BREAK.isAuthorized(user, Material.ITEM_FRAME, null)) + { + if (warn) + { + user.sendMessage(_("antiBuildBreak", Material.ITEM_FRAME.toString())); + } + event.setCancelled(true); } - event.setCancelled(true); } } } |