mirror of
https://github.com/essentials/Essentials.git
synced 2025-08-20 13:31:25 +02:00
Anti Build 3.0 update
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
package net.ess3.settings.antibuild;
|
package net.ess3.settings.antibuild;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
@@ -17,28 +18,57 @@ import org.bukkit.Material;
|
|||||||
@EqualsAndHashCode(callSuper = false)
|
@EqualsAndHashCode(callSuper = false)
|
||||||
public class Alert implements StorageObject
|
public class Alert implements StorageObject
|
||||||
{
|
{
|
||||||
@Comment("For which block types would you like to be alerted?")
|
@Comment("For which block types would you like to be alerted when placed?")
|
||||||
@ListType(Material.class)
|
@ListType(Material.class)
|
||||||
@Getter(AccessLevel.NONE)
|
@Getter(AccessLevel.NONE)
|
||||||
@Setter(AccessLevel.NONE)
|
@Setter(AccessLevel.NONE)
|
||||||
private Set<Material> alertOnPlacement;
|
private Set<Material> alertOnPlacement = null;
|
||||||
|
@Comment("For which block types would you like to be alerted when used?")
|
||||||
@ListType(Material.class)
|
@ListType(Material.class)
|
||||||
@Getter(AccessLevel.NONE)
|
@Getter(AccessLevel.NONE)
|
||||||
@Setter(AccessLevel.NONE)
|
@Setter(AccessLevel.NONE)
|
||||||
private Set<Material> alertOnUse;
|
private Set<Material> alertOnUse = null;
|
||||||
|
@Comment("For which block types would you like to be alerted when broken?")
|
||||||
@ListType(Material.class)
|
@ListType(Material.class)
|
||||||
@Getter(AccessLevel.NONE)
|
@Getter(AccessLevel.NONE)
|
||||||
@Setter(AccessLevel.NONE)
|
@Setter(AccessLevel.NONE)
|
||||||
private Set<Material> alertOnBreak;
|
private Set<Material> alertOnBreak = null;
|
||||||
|
|
||||||
public Alert()
|
public Alert()
|
||||||
{
|
{
|
||||||
//todo full default list
|
if (alertOnPlacement == null)
|
||||||
alertOnPlacement = new HashSet<Material>();
|
{
|
||||||
alertOnPlacement.add(Material.GLASS);
|
Material[] mat =
|
||||||
alertOnUse = new HashSet<Material>();
|
{
|
||||||
alertOnUse.add(Material.LAVA);
|
Material.LAVA, Material.STATIONARY_LAVA, Material.TNT, Material.LAVA_BUCKET
|
||||||
alertOnBreak = new HashSet<Material>();
|
};
|
||||||
alertOnBreak.add(Material.OBSIDIAN);
|
alertOnPlacement = new HashSet<Material>();
|
||||||
|
alertOnPlacement.addAll(Arrays.asList(mat));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (alertOnUse == null)
|
||||||
|
{
|
||||||
|
alertOnUse = new HashSet<Material>();
|
||||||
|
alertOnUse.add(Material.LAVA_BUCKET);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (alertOnBreak == null)
|
||||||
|
{
|
||||||
|
alertOnBreak = new HashSet<Material>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<Material> getAlertOnPlacement()
|
||||||
|
{
|
||||||
|
return alertOnPlacement;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<Material> getAlertOnUse()
|
||||||
|
{
|
||||||
|
return alertOnUse;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<Material> getAlertOnBreak()
|
||||||
|
{
|
||||||
|
return alertOnBreak;
|
||||||
}
|
}
|
||||||
}
|
}
|
@@ -15,19 +15,21 @@ public class AntiBuild implements StorageObject
|
|||||||
"Set true to disable building for those people",
|
"Set true to disable building for those people",
|
||||||
"Setting to false means EssentialsAntiBuild will never prevent you from building"
|
"Setting to false means EssentialsAntiBuild will never prevent you from building"
|
||||||
})
|
})
|
||||||
private boolean build = true;
|
private boolean disableBuild = true;
|
||||||
@Comment(
|
@Comment(
|
||||||
{
|
{
|
||||||
"Should people with build: false in permissions be allowed to use items",
|
"Should people with build: false in permissions be allowed to use items",
|
||||||
"Set true to disable using for those people",
|
"Set true to disable using for those people",
|
||||||
"Setting to false means EssentialsAntiBuild will never prevent you from using"
|
"Setting to false means EssentialsAntiBuild will never prevent you from using"
|
||||||
})
|
})
|
||||||
private boolean use = true;
|
private boolean disableUse = true;
|
||||||
@Comment(
|
@Comment(
|
||||||
{
|
{
|
||||||
"Should we tell people they are not allowed to build"
|
"Should we tell people they are not allowed to build"
|
||||||
})
|
})
|
||||||
private boolean warnOnBuildDisallow = true;
|
private boolean warnOnBuildDisallow = true;
|
||||||
Alert alert = new Alert();
|
|
||||||
BlackList blacklist = new BlackList();
|
private Alert alert = new Alert();
|
||||||
|
private BlackList blacklist = new BlackList();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -1,11 +1,15 @@
|
|||||||
package net.ess3.settings.antibuild;
|
package net.ess3.settings.antibuild;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
import net.ess3.settings.WorldOptions;
|
||||||
import net.ess3.storage.Comment;
|
import net.ess3.storage.Comment;
|
||||||
import net.ess3.storage.ListType;
|
import net.ess3.storage.ListType;
|
||||||
import net.ess3.storage.StorageObject;
|
import net.ess3.storage.StorageObject;
|
||||||
@@ -51,6 +55,52 @@ public class BlackList implements StorageObject
|
|||||||
|
|
||||||
public BlackList()
|
public BlackList()
|
||||||
{
|
{
|
||||||
//todo defaults
|
if (placement == null)
|
||||||
|
{
|
||||||
|
Material[] mat =
|
||||||
|
{
|
||||||
|
Material.LAVA, Material.STATIONARY_LAVA, Material.TNT, Material.LAVA_BUCKET
|
||||||
|
};
|
||||||
|
placement = new HashSet<Material>();
|
||||||
|
placement.addAll(Arrays.asList(mat));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (usage == null)
|
||||||
|
{
|
||||||
|
usage = new HashSet<Material>();
|
||||||
|
usage.add(Material.LAVA_BUCKET);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (breaking == null)
|
||||||
|
{
|
||||||
|
breaking = new HashSet<Material>();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (piston == null)
|
||||||
|
{
|
||||||
|
piston = new HashSet<Material>();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<Material> getPlacement()
|
||||||
|
{
|
||||||
|
return placement;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<Material> getUsage()
|
||||||
|
{
|
||||||
|
return usage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<Material> getBreaking()
|
||||||
|
{
|
||||||
|
return breaking;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<Material> getPiston()
|
||||||
|
{
|
||||||
|
return piston;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -9,7 +9,8 @@ public class AntiBuildHolder extends AsyncStorageObjectHolder<AntiBuild>
|
|||||||
{
|
{
|
||||||
public AntiBuildHolder(final IEssentials ess)
|
public AntiBuildHolder(final IEssentials ess)
|
||||||
{
|
{
|
||||||
super(ess, AntiBuild.class, new File(ess.getPlugin().getDataFolder(), "protect.yml"));
|
super(ess, AntiBuild.class, new File(ess.getPlugin().getDataFolder(), "antibuild.yml"));
|
||||||
|
onReload();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -1,8 +1,5 @@
|
|||||||
package net.ess3.antibuild;
|
package net.ess3.antibuild;
|
||||||
|
|
||||||
import java.util.EnumMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
import org.bukkit.plugin.PluginManager;
|
import org.bukkit.plugin.PluginManager;
|
||||||
@@ -19,7 +16,7 @@ public class EssentialsAntiBuild extends JavaPlugin implements IAntiBuild
|
|||||||
public void onEnable()
|
public void onEnable()
|
||||||
{
|
{
|
||||||
final PluginManager pm = this.getServer().getPluginManager();
|
final PluginManager pm = this.getServer().getPluginManager();
|
||||||
final Plugin essPlugin = pm.getPlugin("Essentials");
|
final Plugin essPlugin = pm.getPlugin("Essentials-3");
|
||||||
if (essPlugin == null || !essPlugin.isEnabled())
|
if (essPlugin == null || !essPlugin.isEnabled())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
@@ -30,14 +27,6 @@ public class EssentialsAntiBuild extends JavaPlugin implements IAntiBuild
|
|||||||
pm.registerEvents(blockListener, this);
|
pm.registerEvents(blockListener, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean checkProtectionItems(final int id)
|
|
||||||
{
|
|
||||||
//final List<Integer> itemList = settingsList.get(list);
|
|
||||||
//return itemList != null && !itemList.isEmpty() && itemList.contains(id);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public EssentialsConnect getEssentialsConnect()
|
public EssentialsConnect getEssentialsConnect()
|
||||||
{
|
{
|
||||||
|
@@ -4,6 +4,7 @@ import java.util.logging.Level;
|
|||||||
import static net.ess3.I18n._;
|
import static net.ess3.I18n._;
|
||||||
import net.ess3.api.IEssentials;
|
import net.ess3.api.IEssentials;
|
||||||
import net.ess3.api.IUser;
|
import net.ess3.api.IUser;
|
||||||
|
import net.ess3.permissions.MaterialDotStarPermission;
|
||||||
import net.ess3.user.User;
|
import net.ess3.user.User;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
@@ -33,7 +34,7 @@ public class EssentialsAntiBuildListener implements Listener
|
|||||||
this.ess = antib.getEssentialsConnect().getEssentials();
|
this.ess = antib.getEssentialsConnect().getEssentials();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* private boolean metaPermCheck(final User user, final String action, final Block block)
|
/*private boolean metaPermCheck(final User user, final String action, final Block block)
|
||||||
{
|
{
|
||||||
if (block == null)
|
if (block == null)
|
||||||
{
|
{
|
||||||
@@ -66,27 +67,23 @@ public class EssentialsAntiBuildListener implements Listener
|
|||||||
}
|
}
|
||||||
|
|
||||||
return user.isAuthorized(blockPerm);
|
return user.isAuthorized(blockPerm);
|
||||||
}
|
}*/
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
public void onBlockPlace(final BlockPlaceEvent event)
|
public void onBlockPlace(final BlockPlaceEvent event)
|
||||||
{
|
{
|
||||||
final AntiBuildHolder ab = antib.getSettings();
|
|
||||||
ab.acquireReadLock();
|
|
||||||
final IUser user = ess.getUserMap().getUser(event.getPlayer());
|
final IUser user = ess.getUserMap().getUser(event.getPlayer());
|
||||||
final Block block = event.getBlockPlaced();
|
final Block block = event.getBlockPlaced();
|
||||||
final int typeId = block.getTypeId();
|
final int typeId = block.getTypeId();
|
||||||
final Material type = block.getType();
|
final Material type = block.getType();
|
||||||
|
|
||||||
try
|
if (antib.getSettings().getData().isDisableBuild()
|
||||||
{
|
//&& !user.canBuild()
|
||||||
|
&& !Permissions.BUILD.isAuthorized(user)
|
||||||
if (ab.getData().isBuild()
|
&& !Permissions.PLACEMENT.isAuthorized(user, block))
|
||||||
&& !user.canBuild() && !user.hasPermission("essentials.build")
|
|
||||||
&& !Permissions.getPlacePermission(type).isAuthorized(user))
|
|
||||||
//metaPermCheck(user, "place", block)) todo - double check metadata
|
//metaPermCheck(user, "place", block)) todo - double check metadata
|
||||||
{
|
{
|
||||||
if (ab.getData().isWarnOnBuildDisallow())
|
if (antib.getSettings().getData().isWarnOnBuildDisallow())
|
||||||
{
|
{
|
||||||
user.sendMessage(_("antiBuildPlace", type.toString()));
|
user.sendMessage(_("antiBuildPlace", type.toString()));
|
||||||
}
|
}
|
||||||
@@ -94,10 +91,9 @@ public class EssentialsAntiBuildListener implements Listener
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ab.getData().getBlacklist().getPlacement().contains(type) && !Permissions.BLACKLIST_ALLOWPLACEMENT.isAuthorized(user))
|
if (antib.getSettings().getData().getBlacklist().getPlacement().contains(type) && !Permissions.BLACKLIST_ALLOWPLACEMENT.isAuthorized(user))
|
||||||
//antib.checkProtectionItems(AntiBuildConfig.blacklist_placement, typeId) && !user.isAuthorized("essentials.protect.exemptplacement"))
|
|
||||||
{
|
{
|
||||||
if (ab.getData().isWarnOnBuildDisallow())
|
if (antib.getSettings().getData().isWarnOnBuildDisallow())
|
||||||
{
|
{
|
||||||
user.sendMessage(_("antiBuildPlace", type.toString()));
|
user.sendMessage(_("antiBuildPlace", type.toString()));
|
||||||
}
|
}
|
||||||
@@ -105,35 +101,27 @@ public class EssentialsAntiBuildListener implements Listener
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ab.getData().getAlert().getAlertOnPlacement().contains(type)
|
if (antib.getSettings().getData().getAlert().getAlertOnPlacement().contains(type)
|
||||||
&& !Permissions.ALERTS_NOTRIGGER.isAuthorized(user))
|
&& !Permissions.ALERTS_NOTRIGGER.isAuthorized(user))
|
||||||
{
|
{
|
||||||
antib.getEssentialsConnect().alert(user, type.toString(), _("alertPlaced"));
|
antib.getEssentialsConnect().alert(user, type.toString(), _("alertPlaced"));
|
||||||
}
|
}
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
ab.unlock();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
public void onBlockBreak(final BlockBreakEvent event)
|
public void onBlockBreak(final BlockBreakEvent event)
|
||||||
{
|
{
|
||||||
final AntiBuildHolder ab = antib.getSettings();
|
|
||||||
ab.acquireReadLock();
|
|
||||||
final IUser user = ess.getUserMap().getUser(event.getPlayer());
|
final IUser user = ess.getUserMap().getUser(event.getPlayer());
|
||||||
final Block block = event.getBlock();
|
final Block block = event.getBlock();
|
||||||
final int typeId = block.getTypeId();
|
final int typeId = block.getTypeId();
|
||||||
final Material type = block.getType();
|
final Material type = block.getType();
|
||||||
|
|
||||||
try
|
if (antib.getSettings().getData().isDisableBuild()
|
||||||
{
|
//&& !user.canBuild()
|
||||||
if (ab.getData().isBuild() && !user.canBuild() && !user.isAuthorized("essentials.build")
|
&& !Permissions.BUILD.isAuthorized(user)
|
||||||
&& !Permissions.getBreakPermission(type).isAuthorized(user))
|
&& !Permissions.BREAK.isAuthorized(user, block))
|
||||||
//!metaPermCheck(user, "break", block))
|
|
||||||
{
|
{
|
||||||
if (ab.getData().isWarnOnBuildDisallow())
|
if (antib.getSettings().getData().isWarnOnBuildDisallow())
|
||||||
{
|
{
|
||||||
user.sendMessage(_("antiBuildBreak", type.toString()));
|
user.sendMessage(_("antiBuildBreak", type.toString()));
|
||||||
}
|
}
|
||||||
@@ -141,9 +129,9 @@ public class EssentialsAntiBuildListener implements Listener
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ab.getData().getBlacklist().getBreaking().contains(type) && !Permissions.BLACKLIST_ALLOWBREAK.isAuthorized(user))
|
if (antib.getSettings().getData().getBlacklist().getBreaking().contains(type) && !Permissions.BLACKLIST_ALLOWBREAK.isAuthorized(user))
|
||||||
{
|
{
|
||||||
if (ab.getData().isWarnOnBuildDisallow())
|
if (antib.getSettings().getData().isWarnOnBuildDisallow())
|
||||||
{
|
{
|
||||||
user.sendMessage(_("antiBuildBreak", type.toString()));
|
user.sendMessage(_("antiBuildBreak", type.toString()));
|
||||||
}
|
}
|
||||||
@@ -151,16 +139,11 @@ public class EssentialsAntiBuildListener implements Listener
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (antib.checkProtectionItems(AntiBuildConfig.alert_on_break, typeId)
|
if (antib.getSettings().getData().getAlert().getAlertOnBreak().contains(type)
|
||||||
&& !user.isAuthorized("essentials.protect.alerts.notrigger"))
|
&& !Permissions.ALERTS_NOTRIGGER.isAuthorized(user))
|
||||||
{
|
{
|
||||||
antib.getEssentialsConnect().alert(user, type.toString(), _("alertBroke"));
|
antib.getEssentialsConnect().alert(user, type.toString(), _("alertBroke"));
|
||||||
}
|
}
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
ab.unlock();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
@@ -169,11 +152,13 @@ public class EssentialsAntiBuildListener implements Listener
|
|||||||
final Entity entity = event.getRemover();
|
final Entity entity = event.getRemover();
|
||||||
if (entity instanceof Player)
|
if (entity instanceof Player)
|
||||||
{
|
{
|
||||||
final User user = ess.getUser(entity);
|
final IUser user = ess.getUserMap().getUser((Player)entity);
|
||||||
if (antib.getSettingBool(AntiBuildConfig.disable_build) && !user.canBuild() && !user.isAuthorized("essentials.build")
|
if (antib.getSettings().getData().isDisableBuild()
|
||||||
&& !metaPermCheck(user, "break", Material.PAINTING.getId()))
|
//&& !user.canBuild()
|
||||||
|
&& !Permissions.BUILD.isAuthorized(user)
|
||||||
|
&& !Permissions.BREAK.isAuthorized(user, Material.PAINTING, null))
|
||||||
{
|
{
|
||||||
if (ess.getSettings().warnOnBuildDisallow())
|
if (antib.getSettings().getData().isWarnOnBuildDisallow())
|
||||||
{
|
{
|
||||||
user.sendMessage(_("antiBuildBreak", Material.PAINTING.toString()));
|
user.sendMessage(_("antiBuildBreak", Material.PAINTING.toString()));
|
||||||
}
|
}
|
||||||
@@ -187,7 +172,7 @@ public class EssentialsAntiBuildListener implements Listener
|
|||||||
{
|
{
|
||||||
for (Block block : event.getBlocks())
|
for (Block block : event.getBlocks())
|
||||||
{
|
{
|
||||||
if (antib.checkProtectionItems(AntiBuildConfig.blacklist_piston, block.getTypeId()))
|
if (antib.getSettings().getData().getBlacklist().getPiston().contains(block.getType()))
|
||||||
{
|
{
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
return;
|
return;
|
||||||
@@ -203,10 +188,9 @@ public class EssentialsAntiBuildListener implements Listener
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
final Block block = event.getRetractLocation().getBlock();
|
final Block block = event.getRetractLocation().getBlock();
|
||||||
if (antib.checkProtectionItems(AntiBuildConfig.blacklist_piston, block.getTypeId()))
|
if (antib.getSettings().getData().getBlacklist().getPiston().contains(block.getType()))
|
||||||
{
|
{
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -214,14 +198,14 @@ public class EssentialsAntiBuildListener implements Listener
|
|||||||
public void onPlayerInteract(final PlayerInteractEvent event)
|
public void onPlayerInteract(final PlayerInteractEvent event)
|
||||||
{
|
{
|
||||||
// Do not return if cancelled, because the interact event has 2 cancelled states.
|
// Do not return if cancelled, because the interact event has 2 cancelled states.
|
||||||
final User user = ess.getUser(event.getPlayer());
|
final IUser user = ess.getUserMap().getUser(event.getPlayer());
|
||||||
final ItemStack item = event.getItem();
|
final ItemStack item = event.getItem();
|
||||||
|
|
||||||
if (item != null
|
if (item != null
|
||||||
&& antib.checkProtectionItems(AntiBuildConfig.blacklist_usage, item.getTypeId())
|
&& antib.getSettings().getData().getBlacklist().getUsage().contains(item.getType())
|
||||||
&& !user.isAuthorized("essentials.protect.exemptusage"))
|
&& !Permissions.BLACKLIST_ALLOWUSAGE.isAuthorized(user))
|
||||||
{
|
{
|
||||||
if (ess.getSettings().warnOnBuildDisallow())
|
if (antib.getSettings().getData().isWarnOnBuildDisallow())
|
||||||
{
|
{
|
||||||
user.sendMessage(_("antiBuildUse", item.getType().toString()));
|
user.sendMessage(_("antiBuildUse", item.getType().toString()));
|
||||||
}
|
}
|
||||||
@@ -230,27 +214,29 @@ public class EssentialsAntiBuildListener implements Listener
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (item != null
|
if (item != null
|
||||||
&& antib.checkProtectionItems(AntiBuildConfig.alert_on_use, item.getTypeId())
|
&& antib.getSettings().getData().getAlert().getAlertOnUse().contains(item.getType())
|
||||||
&& !user.isAuthorized("essentials.protect.alerts.notrigger"))
|
&& !Permissions.ALERTS_NOTRIGGER.isAuthorized(user))
|
||||||
{
|
{
|
||||||
antib.getEssentialsConnect().alert(user, item.getType().toString(), _("alertUsed"));
|
antib.getEssentialsConnect().alert(user, item.getType().toString(), _("alertUsed"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (antib.getSettingBool(AntiBuildConfig.disable_use) && !user.canBuild() && !user.isAuthorized("essentials.build"))
|
if (antib.getSettings().getData().isDisableUse()
|
||||||
|
//&& !user.canBuild()
|
||||||
|
&& !Permissions.BUILD.isAuthorized(user))
|
||||||
{
|
{
|
||||||
if (event.hasItem() && !metaPermCheck(user, "interact", item.getTypeId(), item.getData().getData()))
|
if (event.hasItem() && !Permissions.INTERACT.isAuthorized(user, item.getType(), item.getData()))
|
||||||
{
|
{
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
if (ess.getSettings().warnOnBuildDisallow())
|
if (antib.getSettings().getData().isWarnOnBuildDisallow())
|
||||||
{
|
{
|
||||||
user.sendMessage(_("antiBuildUse", item.getType().toString()));
|
user.sendMessage(_("antiBuildUse", item.getType().toString()));
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (event.hasBlock() && !metaPermCheck(user, "interact", event.getClickedBlock()))
|
if (event.hasBlock() && !Permissions.INTERACT.isAuthorized(user, event.getClickedBlock()))
|
||||||
{
|
{
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
if (ess.getSettings().warnOnBuildDisallow())
|
if (antib.getSettings().getData().isWarnOnBuildDisallow())
|
||||||
{
|
{
|
||||||
user.sendMessage(_("antiBuildInteract", event.getClickedBlock().getType().toString()));
|
user.sendMessage(_("antiBuildInteract", event.getClickedBlock().getType().toString()));
|
||||||
}
|
}
|
||||||
@@ -265,15 +251,17 @@ public class EssentialsAntiBuildListener implements Listener
|
|||||||
|
|
||||||
if (entity instanceof Player)
|
if (entity instanceof Player)
|
||||||
{
|
{
|
||||||
final User user = ess.getUser(entity);
|
final IUser user = ess.getUserMap().getUser((Player)entity);
|
||||||
final ItemStack item = event.getRecipe().getResult();
|
final ItemStack item = event.getRecipe().getResult();
|
||||||
|
|
||||||
if (antib.getSettingBool(AntiBuildConfig.disable_use) && !user.canBuild() && !user.isAuthorized("essentials.build"))
|
if (antib.getSettings().getData().isDisableUse()
|
||||||
|
//&& !user.canBuild()
|
||||||
|
&& !Permissions.BUILD.isAuthorized(user))
|
||||||
{
|
{
|
||||||
if (!metaPermCheck(user, "craft", item.getTypeId(), item.getData().getData()))
|
if (!Permissions.CRAFT.isAuthorized(user, item.getType(), item.getData()))
|
||||||
{
|
{
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
if (ess.getSettings().warnOnBuildDisallow())
|
if (antib.getSettings().getData().isWarnOnBuildDisallow())
|
||||||
{
|
{
|
||||||
user.sendMessage(_("antiBuildCraft", item.getType().toString()));
|
user.sendMessage(_("antiBuildCraft", item.getType().toString()));
|
||||||
}
|
}
|
||||||
@@ -286,12 +274,14 @@ public class EssentialsAntiBuildListener implements Listener
|
|||||||
public void onPlayerPickupItem(PlayerPickupItemEvent event)
|
public void onPlayerPickupItem(PlayerPickupItemEvent event)
|
||||||
{
|
{
|
||||||
|
|
||||||
final User user = ess.getUser(event.getPlayer());
|
final IUser user = ess.getUserMap().getUser(event.getPlayer());
|
||||||
final ItemStack item = event.getItem().getItemStack();
|
final ItemStack item = event.getItem().getItemStack();
|
||||||
|
|
||||||
if (antib.getSettingBool(AntiBuildConfig.disable_use) && !user.canBuild() && !user.isAuthorized("essentials.build"))
|
if (antib.getSettings().getData().isDisableUse()
|
||||||
|
//&& !user.canBuild()
|
||||||
|
&& !Permissions.BUILD.isAuthorized(user))
|
||||||
{
|
{
|
||||||
if (!metaPermCheck(user, "pickup", item.getTypeId(), item.getData().getData()))
|
if (!Permissions.PICKUP.isAuthorized(user, item.getType(), item.getData()))
|
||||||
{
|
{
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
event.getItem().setPickupDelay(50);
|
event.getItem().setPickupDelay(50);
|
||||||
@@ -306,18 +296,19 @@ public class EssentialsAntiBuildListener implements Listener
|
|||||||
final IUser user = ess.getUserMap().getUser(event.getPlayer());
|
final IUser user = ess.getUserMap().getUser(event.getPlayer());
|
||||||
final ItemStack item = event.getItemDrop().getItemStack();
|
final ItemStack item = event.getItemDrop().getItemStack();
|
||||||
|
|
||||||
if (antib.getSettingBool(AntiBuildConfig.disable_use) && !user.canBuild() && !user.isAuthorized("essentials.build"))
|
if (antib.getSettings().getData().isDisableUse()
|
||||||
|
//&& !user.canBuild()
|
||||||
|
&& !Permissions.BUILD.isAuthorized(user));
|
||||||
{
|
{
|
||||||
if (!metaPermCheck(user, "drop", item.getTypeId(), item.getData().getData()))
|
if (!Permissions.DROP.isAuthorized(user, item.getType(), item.getData()))
|
||||||
{
|
{
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
user.getPlayer().updateInventory();
|
user.getPlayer().updateInventory();
|
||||||
if (ess.getSettings().warnOnBuildDisallow())
|
if (antib.getSettings().getData().isWarnOnBuildDisallow())
|
||||||
{
|
{
|
||||||
user.sendMessage(_("antiBuildDrop", item.getType().toString()));
|
user.sendMessage(_("antiBuildDrop", item.getType().toString()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
@@ -5,6 +5,7 @@ import java.util.logging.Logger;
|
|||||||
import static net.ess3.I18n._;
|
import static net.ess3.I18n._;
|
||||||
import net.ess3.api.IEssentials;
|
import net.ess3.api.IEssentials;
|
||||||
import net.ess3.api.IUser;
|
import net.ess3.api.IUser;
|
||||||
|
import net.ess3.bukkit.BukkitPlugin;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
@@ -22,7 +23,7 @@ public class EssentialsConnect
|
|||||||
{
|
{
|
||||||
LOGGER.log(Level.WARNING, _("versionMismatchAll"));
|
LOGGER.log(Level.WARNING, _("versionMismatchAll"));
|
||||||
}
|
}
|
||||||
ess = (IEssentials)essPlugin;
|
ess = ((BukkitPlugin)essPlugin).getEssentials();
|
||||||
antib = (IAntiBuild)essProtect;
|
antib = (IAntiBuild)essProtect;
|
||||||
antib.setSettings(new AntiBuildHolder(ess));
|
antib.setSettings(new AntiBuildHolder(ess));
|
||||||
}
|
}
|
||||||
|
@@ -5,8 +5,6 @@ import org.bukkit.plugin.Plugin;
|
|||||||
|
|
||||||
public interface IAntiBuild extends Plugin
|
public interface IAntiBuild extends Plugin
|
||||||
{
|
{
|
||||||
boolean checkProtectionItems(final int id);
|
|
||||||
|
|
||||||
EssentialsConnect getEssentialsConnect();
|
EssentialsConnect getEssentialsConnect();
|
||||||
|
|
||||||
AntiBuildHolder getSettings();
|
AntiBuildHolder getSettings();
|
||||||
|
@@ -5,6 +5,7 @@ import java.util.Locale;
|
|||||||
import net.ess3.api.IPermission;
|
import net.ess3.api.IPermission;
|
||||||
import net.ess3.bukkit.PermissionFactory;
|
import net.ess3.bukkit.PermissionFactory;
|
||||||
import net.ess3.permissions.BasePermission;
|
import net.ess3.permissions.BasePermission;
|
||||||
|
import net.ess3.permissions.MaterialDotStarPermission;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.permissions.PermissionDefault;
|
import org.bukkit.permissions.PermissionDefault;
|
||||||
@@ -69,113 +70,12 @@ public enum Permissions implements IPermission
|
|||||||
{
|
{
|
||||||
return PermissionFactory.checkPermission(sender, this);
|
return PermissionFactory.checkPermission(sender, this);
|
||||||
}
|
}
|
||||||
private static EnumMap<Material, IPermission> permissions = new EnumMap<Material, IPermission>(Material.class);
|
|
||||||
|
|
||||||
public static IPermission getPlacePermission(final Material mat)
|
public static MaterialDotStarPermission PLACEMENT = new MaterialDotStarPermission("essentials.build.place");
|
||||||
{
|
public static MaterialDotStarPermission BREAK = new MaterialDotStarPermission("essentials.build.break");
|
||||||
IPermission perm = permissions.get(mat);
|
public static MaterialDotStarPermission INTERACT = new MaterialDotStarPermission("essentials.build.interact");
|
||||||
if (perm == null)
|
public static MaterialDotStarPermission CRAFT = new MaterialDotStarPermission("essentials.build.craft");
|
||||||
{
|
public static MaterialDotStarPermission PICKUP = new MaterialDotStarPermission("essentials.build.pickup");
|
||||||
perm = new BasePermission("essentials.place.", mat.toString().toLowerCase(Locale.ENGLISH).replace("_", ""))
|
public static MaterialDotStarPermission DROP = new MaterialDotStarPermission("essentials.build.drop");
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public PermissionDefault getPermissionDefault()
|
|
||||||
{
|
|
||||||
return PermissionDefault.TRUE;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
permissions.put(mat, perm);
|
|
||||||
}
|
|
||||||
return perm;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static IPermission getBreakPermission(final Material mat)
|
|
||||||
{
|
|
||||||
IPermission perm = permissions.get(mat);
|
|
||||||
if (perm == null)
|
|
||||||
{
|
|
||||||
perm = new BasePermission("essentials.break.", mat.toString().toLowerCase(Locale.ENGLISH).replace("_", ""))
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public PermissionDefault getPermissionDefault()
|
|
||||||
{
|
|
||||||
return PermissionDefault.TRUE;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
permissions.put(mat, perm);
|
|
||||||
}
|
|
||||||
return perm;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static IPermission getInteractPermission(final Material mat)
|
|
||||||
{
|
|
||||||
IPermission perm = permissions.get(mat);
|
|
||||||
if (perm == null)
|
|
||||||
{
|
|
||||||
perm = new BasePermission("essentials.interact.", mat.toString().toLowerCase(Locale.ENGLISH).replace("_", ""))
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public PermissionDefault getPermissionDefault()
|
|
||||||
{
|
|
||||||
return PermissionDefault.TRUE;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
permissions.put(mat, perm);
|
|
||||||
}
|
|
||||||
return perm;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static IPermission getCraftPermission(final Material mat)
|
|
||||||
{
|
|
||||||
IPermission perm = permissions.get(mat);
|
|
||||||
if (perm == null)
|
|
||||||
{
|
|
||||||
perm = new BasePermission("essentials.craft.", mat.toString().toLowerCase(Locale.ENGLISH).replace("_", ""))
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public PermissionDefault getPermissionDefault()
|
|
||||||
{
|
|
||||||
return PermissionDefault.TRUE;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
permissions.put(mat, perm);
|
|
||||||
}
|
|
||||||
return perm;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static IPermission getPickupPermission(final Material mat)
|
|
||||||
{
|
|
||||||
IPermission perm = permissions.get(mat);
|
|
||||||
if (perm == null)
|
|
||||||
{
|
|
||||||
perm = new BasePermission("essentials.pickup.", mat.toString().toLowerCase(Locale.ENGLISH).replace("_", ""))
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public PermissionDefault getPermissionDefault()
|
|
||||||
{
|
|
||||||
return PermissionDefault.TRUE;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
permissions.put(mat, perm);
|
|
||||||
}
|
|
||||||
return perm;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static IPermission getDropPermission(final Material mat)
|
|
||||||
{
|
|
||||||
IPermission perm = permissions.get(mat);
|
|
||||||
if (perm == null)
|
|
||||||
{
|
|
||||||
perm = new BasePermission("essentials.drop.", mat.toString().toLowerCase(Locale.ENGLISH).replace("_", ""))
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public PermissionDefault getPermissionDefault()
|
|
||||||
{
|
|
||||||
return PermissionDefault.TRUE;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
permissions.put(mat, perm);
|
|
||||||
}
|
|
||||||
return perm;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
# This determines the command prefix when there are conflicts (/name:home, /name:help, etc.)
|
# This determines the command prefix when there are conflicts (/name:home, /name:help, etc.)
|
||||||
name: EssentialsAntiBuild
|
name: EssentialsAntiBuild
|
||||||
main: net.ess3.antibuild.EssentialsAnitBuild
|
main: net.ess3.antibuild.EssentialsAntiBuild
|
||||||
# Note to developers: This next line cannot change, or the automatic versioning system will break.
|
# Note to developers: This next line cannot change, or the automatic versioning system will break.
|
||||||
version: ${build.number}
|
version: ${build.number}
|
||||||
website: http://tiny.cc/EssentialsWiki
|
website: http://tiny.cc/EssentialsWiki
|
||||||
|
Reference in New Issue
Block a user