summaryrefslogtreecommitdiffstats
path: root/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectPlayerListener.java
diff options
context:
space:
mode:
authorsnowleo <schneeleo@gmail.com>2012-01-10 00:36:09 +0100
committersnowleo <schneeleo@gmail.com>2012-01-10 00:36:09 +0100
commitd64c73fc51817b3698510b7eea0cdfa274a58c63 (patch)
tree0bc93405243133606e61cd1d1bbfadec4003abf4 /EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectPlayerListener.java
parent92abba0f25014ff64a94b27a0e00b2ef6e83fa0b (diff)
downloadEssentials-d64c73fc51817b3698510b7eea0cdfa274a58c63.tar
Essentials-d64c73fc51817b3698510b7eea0cdfa274a58c63.tar.gz
Essentials-d64c73fc51817b3698510b7eea0cdfa274a58c63.tar.lz
Essentials-d64c73fc51817b3698510b7eea0cdfa274a58c63.tar.xz
Essentials-d64c73fc51817b3698510b7eea0cdfa274a58c63.zip
Finished Protect, Essentials should build now.
Diffstat (limited to 'EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectPlayerListener.java')
-rw-r--r--EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectPlayerListener.java88
1 files changed, 48 insertions, 40 deletions
diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectPlayerListener.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectPlayerListener.java
index a3f13a428..5e6da11cc 100644
--- a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectPlayerListener.java
+++ b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectPlayerListener.java
@@ -28,62 +28,70 @@ public class EssentialsProtectPlayerListener extends PlayerListener
// Do not return if cancelled, because the interact event has 2 cancelled states.
final IUser user = ess.getUser(event.getPlayer());
- if (event.hasItem()
- && (event.getItem().getType() == Material.WATER_BUCKET
- || event.getItem().getType() == Material.LAVA_BUCKET)
- && prot.getSettingBool(ProtectConfig.disable_build) && !user.canBuild())
+ final ProtectHolder settings = prot.getSettings();
+ settings.acquireReadLock();
+ try
{
- if (ess.getSettings().warnOnBuildDisallow())
+ if (event.hasItem()
+ && (event.getItem().getType() == Material.WATER_BUCKET
+ || event.getItem().getType() == Material.LAVA_BUCKET)
+ && !user.isAuthorized(Permissions.BUILD))
{
- user.sendMessage(_("buildAlert"));
+ if (settings.getData().isWarnOnBuildDisallow())
+ {
+ user.sendMessage(_("buildAlert"));
+ }
+ event.setCancelled(true);
+ return;
}
- event.setCancelled(true);
- return;
- }
- if (prot.getSettingBool(ProtectConfig.disable_use) && !user.canBuild())
- {
- if (ess.getSettings().warnOnBuildDisallow())
+ if (!user.isAuthorized(Permissions.INTERACT))
{
- user.sendMessage(_("buildAlert"));
+ if (settings.getData().isWarnOnBuildDisallow())
+ {
+ user.sendMessage(_("buildAlert"));
+ }
+ event.setCancelled(true);
+ return;
}
- event.setCancelled(true);
- return;
- }
- final ItemStack item = event.getItem();
- if (item != null
- && prot.checkProtectionItems(ProtectConfig.blacklist_usage, item.getTypeId())
- && !user.isAuthorized("essentials.protect.exemptusage"))
- {
- event.setCancelled(true);
- return;
- }
+ final ItemStack item = event.getItem();
+ if (item != null
+ && !user.isAuthorized(ItemUsePermissions.getPermission(item.getType())))
+ {
+ event.setCancelled(true);
+ return;
+ }
- if (user.isAuthorized("essentials.protect.ownerinfo") && event.getAction() == Action.RIGHT_CLICK_BLOCK)
- {
- final StringBuilder stringBuilder = new StringBuilder();
- boolean first = true;
- final Block blockClicked = event.getClickedBlock();
- for (String owner : prot.getStorage().getOwners(blockClicked))
+ if (user.isAuthorized("essentials.protect.ownerinfo") && event.getAction() == Action.RIGHT_CLICK_BLOCK)
{
- if (!first)
+ final StringBuilder stringBuilder = new StringBuilder();
+ boolean first = true;
+ final Block blockClicked = event.getClickedBlock();
+ for (String owner : prot.getStorage().getOwners(blockClicked))
+ {
+ if (!first)
+ {
+ stringBuilder.append(", ");
+ }
+ first = false;
+ stringBuilder.append(owner);
+ }
+ final String ownerNames = stringBuilder.toString();
+ if (ownerNames != null && !ownerNames.isEmpty())
{
- stringBuilder.append(", ");
+ user.sendMessage(_("protectionOwner", ownerNames));
}
- first = false;
- stringBuilder.append(owner);
}
- final String ownerNames = stringBuilder.toString();
- if (ownerNames != null && !ownerNames.isEmpty())
+ if (item != null
+ && settings.getData().getAlertOnUse().contains(item.getType()))
{
- user.sendMessage(_("protectionOwner", ownerNames));
+ prot.getEssentialsConnect().alert(user, item.getType().toString(), _("alertUsed"));
}
}
- if (item != null
- && prot.checkProtectionItems(ProtectConfig.alert_on_use, item.getTypeId()))
+ finally
{
- prot.getEssentialsConnect().alert(user, item.getType().toString(), _("alertUsed"));
+ settings.unlock();
}
}
}