From 58821791ff0b2f29f4ad421a0578876d826bd6ec Mon Sep 17 00:00:00 2001 From: snowleo Date: Wed, 3 Oct 2012 18:10:10 +0200 Subject: Make ItemStackDotStarPermission more general --- .../permissions/ItemStackDotStarPermission.java | 44 ----------------- .../permissions/MaterialDotStarPermission.java | 56 ++++++++++++++++++++++ .../src/net/ess3/permissions/Permissions.java | 6 +-- 3 files changed, 59 insertions(+), 47 deletions(-) delete mode 100644 Essentials/src/net/ess3/permissions/ItemStackDotStarPermission.java create mode 100644 Essentials/src/net/ess3/permissions/MaterialDotStarPermission.java diff --git a/Essentials/src/net/ess3/permissions/ItemStackDotStarPermission.java b/Essentials/src/net/ess3/permissions/ItemStackDotStarPermission.java deleted file mode 100644 index 192747dc0..000000000 --- a/Essentials/src/net/ess3/permissions/ItemStackDotStarPermission.java +++ /dev/null @@ -1,44 +0,0 @@ -package net.ess3.permissions; - -import org.bukkit.Material; -import org.bukkit.command.CommandSender; -import org.bukkit.inventory.ItemStack; -import org.bukkit.material.Colorable; -import org.bukkit.material.MaterialData; -import org.bukkit.material.TexturedMaterial; -import org.bukkit.permissions.PermissionDefault; - -public class ItemStackDotStarPermission extends DotStarPermission { - - public ItemStackDotStarPermission(String base) - { - super(base); - } - - public ItemStackDotStarPermission(String base, PermissionDefault defaultPerm) - { - super(base, defaultPerm); - } - - public boolean isAuthorized(CommandSender sender, ItemStack item) - { - MaterialData data; - Material material = item.getType(); - String materialName = material.name(); - String materialId = String.valueOf(material.getId()); - if (material.getMaxDurability() == 0 && (data = item.getData()) != null) { - String durName = materialName + ":" + item.getDurability(); - String durId = materialId + ":" + item.getDurability(); - if (data instanceof Colorable) { - return super.isAuthorized(sender, materialName+":"+((Colorable)data).getColor().name(), durName, durId, materialName, materialId); - } - if (data instanceof TexturedMaterial) { - return super.isAuthorized(sender, materialName+":"+((TexturedMaterial)data).getMaterial().name(), durName, durId, materialName, materialId); - } - return super.isAuthorized(sender, durName, durId, materialName, materialId); - } - return super.isAuthorized(sender, materialName, materialId); - } - - -} diff --git a/Essentials/src/net/ess3/permissions/MaterialDotStarPermission.java b/Essentials/src/net/ess3/permissions/MaterialDotStarPermission.java new file mode 100644 index 000000000..9ae3aec15 --- /dev/null +++ b/Essentials/src/net/ess3/permissions/MaterialDotStarPermission.java @@ -0,0 +1,56 @@ +package net.ess3.permissions; + +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.command.CommandSender; +import org.bukkit.inventory.ItemStack; +import org.bukkit.material.Colorable; +import org.bukkit.material.MaterialData; +import org.bukkit.material.TexturedMaterial; +import org.bukkit.permissions.PermissionDefault; + + +public class MaterialDotStarPermission extends DotStarPermission +{ + public MaterialDotStarPermission(final String base) + { + super(base); + } + + public MaterialDotStarPermission(final String base, final PermissionDefault defaultPerm) + { + super(base, defaultPerm); + } + + public boolean isAuthorized(final CommandSender sender, final ItemStack item) + { + return isAuthorized(sender, item.getType(), item.getData()); + } + + public boolean isAuthorized(final CommandSender sender, final Block block) + { + final Material mat = block.getType(); + return isAuthorized(sender, mat, mat.getData() == null ? null : mat.getNewData(block.getData())); + } + + public boolean isAuthorized(final CommandSender sender, final Material material, final MaterialData data) + { + final String materialName = material.name(); + final String materialId = String.valueOf(material.getId()); + if (data != null) + { + final String durName = materialName + ":" + data.getData(); + final String durId = materialId + ":" + data.getData(); + if (data instanceof Colorable) + { + return super.isAuthorized(sender, materialName + ":" + ((Colorable)data).getColor().name(), durName, durId, materialName, materialId); + } + if (data instanceof TexturedMaterial) + { + return super.isAuthorized(sender, materialName + ":" + ((TexturedMaterial)data).getMaterial().name(), durName, durId, materialName, materialId); + } + return super.isAuthorized(sender, durName, durId, materialName, materialId); + } + return super.isAuthorized(sender, materialName, materialId); + } +} diff --git a/Essentials/src/net/ess3/permissions/Permissions.java b/Essentials/src/net/ess3/permissions/Permissions.java index 02ce84e3a..64aae476d 100644 --- a/Essentials/src/net/ess3/permissions/Permissions.java +++ b/Essentials/src/net/ess3/permissions/Permissions.java @@ -139,15 +139,15 @@ public enum Permissions implements IPermission return PermissionFactory.checkPermission(sender, this); } public static DotStarPermission ENCHANT = new DotStarPermission("essentials.enchant"); - public static ItemStackDotStarPermission GIVE = new ItemStackDotStarPermission("essentials.give", PermissionDefault.TRUE); + public static MaterialDotStarPermission GIVE = new MaterialDotStarPermission("essentials.give", PermissionDefault.TRUE); public static DotStarPermission RANKS = new DotStarPermission("essentials.ranks"); public static DotStarPermission HELP = new DotStarPermission("essentials.help"); - public static ItemStackDotStarPermission ITEMSPAWN = new ItemStackDotStarPermission("essentials.itemspawn", PermissionDefault.TRUE); + public static MaterialDotStarPermission ITEMSPAWN = new MaterialDotStarPermission("essentials.itemspawn", PermissionDefault.TRUE); public static DotStarPermission KITS = new DotStarPermission("essentials.kits", PermissionDefault.TRUE); public static DotStarPermission NOCOMMANDCOST = new DotStarPermission("essentials.nocommandcost"); public static DotStarPermission SPAWNER = new DotStarPermission("essentials.spawner"); public static DotStarPermission SPAWNMOB = new DotStarPermission("essentials.spawnmob"); - public static ItemStackDotStarPermission UNLIMITED = new ItemStackDotStarPermission("essentials.unlimited.items"); + public static MaterialDotStarPermission UNLIMITED = new MaterialDotStarPermission("essentials.unlimited.items"); public static DotStarPermission WARPS = new DotStarPermission("essentials.warps", PermissionDefault.TRUE); public static DotStarPermission WARP_OVERWRITE = new DotStarPermission("essentials.warp.overwrite"); public static DotStarPermission WORLD = new DotStarPermission("essentials.world"); -- cgit v1.2.3