diff options
author | ementalo <ementalodev@gmx.co.uk> | 2012-09-27 15:27:25 +0100 |
---|---|---|
committer | ementalo <ementalodev@gmx.co.uk> | 2012-09-27 15:27:25 +0100 |
commit | 0283adb8c519c82a9d36951cb169811134936b0e (patch) | |
tree | ecd9eefb92ec3b6903db68f98f253b16ba450e1c /EssentialsAntiBuild/src/net/ess3/antibuild/Permissions.java | |
parent | 622877dabe24fa623ea6bf88f736086741e4de36 (diff) | |
download | Essentials-0283adb8c519c82a9d36951cb169811134936b0e.tar Essentials-0283adb8c519c82a9d36951cb169811134936b0e.tar.gz Essentials-0283adb8c519c82a9d36951cb169811134936b0e.tar.lz Essentials-0283adb8c519c82a9d36951cb169811134936b0e.tar.xz Essentials-0283adb8c519c82a9d36951cb169811134936b0e.zip |
Updating antibuild to use 3.0 configs and perms.
AntiBuild listener still has some conversions to do
Diffstat (limited to 'EssentialsAntiBuild/src/net/ess3/antibuild/Permissions.java')
-rw-r--r-- | EssentialsAntiBuild/src/net/ess3/antibuild/Permissions.java | 177 |
1 files changed, 177 insertions, 0 deletions
diff --git a/EssentialsAntiBuild/src/net/ess3/antibuild/Permissions.java b/EssentialsAntiBuild/src/net/ess3/antibuild/Permissions.java new file mode 100644 index 000000000..7088fb0e0 --- /dev/null +++ b/EssentialsAntiBuild/src/net/ess3/antibuild/Permissions.java @@ -0,0 +1,177 @@ +package net.ess3.antibuild; + +import java.util.EnumMap; +import java.util.Locale; +import net.ess3.api.IPermission; +import net.ess3.bukkit.PermissionFactory; +import net.ess3.permissions.BasePermission; +import org.bukkit.Material; +import org.bukkit.command.CommandSender; +import org.bukkit.permissions.Permission; +import org.bukkit.permissions.PermissionDefault; + + +public enum Permissions implements IPermission +{ + + BLACKLIST_ALLOWPLACEMENT, + BLACKLIST_ALLOWUSAGE, + BLACKLIST_ALLOWBREAK, + ALERTS, + ALERTS_NOTRIGGER; + private static final String base = "essentials.build."; + private final String permission; + private final PermissionDefault defaultPerm; + private transient Permission bukkitPerm = null; + + private Permissions() + { + this(PermissionDefault.OP); + } + + private Permissions(final PermissionDefault defaultPerm) + { + permission = base + toString().toLowerCase(Locale.ENGLISH).replace('_', '.'); + this.defaultPerm = defaultPerm; + } + + @Override + public String getPermissionName() + { + return permission; + } + + @Override + public Permission getPermission() + { + if (bukkitPerm != null) + { + return bukkitPerm; + } + else + { + return PermissionFactory.registerPermission(getPermissionName(), getPermissionDefault()); + } + } + + @Override + public PermissionDefault getPermissionDefault() + { + return this.defaultPerm; + } + + @Override + public boolean isAuthorized(final CommandSender sender) + { + return sender.hasPermission(getPermission()); + } + + private static EnumMap<Material, IPermission> permissions = new EnumMap<Material, IPermission>(Material.class); + + public static IPermission getPlacePermission(final Material mat) + { + IPermission perm = permissions.get(mat); + if (perm == null) + { + perm = new BasePermission("essentials.place.", mat.toString().toLowerCase(Locale.ENGLISH).replace("_", "")) + { + @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; + } +} |