1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-10-03 09:31:57 +02:00

Better .* Permission classes

This commit is contained in:
snowleo
2012-10-03 17:52:01 +02:00
parent b677dbfb25
commit a8c8e493b9
38 changed files with 185 additions and 381 deletions

View File

@@ -7,7 +7,7 @@ import java.util.TreeSet;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.bukkit.Enchantments; import net.ess3.bukkit.Enchantments;
import net.ess3.permissions.EnchantPermissions; import net.ess3.permissions.Permissions;
import net.ess3.utils.Util; import net.ess3.utils.Util;
import org.bukkit.enchantments.Enchantment; import org.bukkit.enchantments.Enchantment;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@@ -30,7 +30,7 @@ public class Commandenchant extends EssentialsCommand
for (Map.Entry<String, Enchantment> entry : Enchantments.entrySet()) for (Map.Entry<String, Enchantment> entry : Enchantments.entrySet())
{ {
final String enchantmentName = entry.getValue().getName().toLowerCase(Locale.ENGLISH); final String enchantmentName = entry.getValue().getName().toLowerCase(Locale.ENGLISH);
if (enchantmentslist.contains(enchantmentName) || EnchantPermissions.getPermission(enchantmentName).isAuthorized(user)) if (enchantmentslist.contains(enchantmentName) || Permissions.ENCHANT.isAuthorized(user, enchantmentName))
{ {
enchantmentslist.add(entry.getKey()); enchantmentslist.add(entry.getKey());
//enchantmentslist.add(enchantmentName); //enchantmentslist.add(enchantmentName);
@@ -85,7 +85,7 @@ public class Commandenchant extends EssentialsCommand
throw new Exception(_("enchantmentNotFound")); throw new Exception(_("enchantmentNotFound"));
} }
final String enchantmentName = enchantment.getName().toLowerCase(Locale.ENGLISH); final String enchantmentName = enchantment.getName().toLowerCase(Locale.ENGLISH);
if (user != null && !EnchantPermissions.getPermission(enchantmentName).isAuthorized(user)) if (user != null && !Permissions.ENCHANT.isAuthorized(user, enchantmentName))
{ {
throw new Exception(_("enchantmentPerm", enchantmentName)); throw new Exception(_("enchantmentPerm", enchantmentName));
} }

View File

@@ -3,7 +3,7 @@ package net.ess3.commands;
import java.util.Locale; import java.util.Locale;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.permissions.GivePermissions; import net.ess3.permissions.Permissions;
import net.ess3.utils.Util; import net.ess3.utils.Util;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@@ -26,7 +26,7 @@ public class Commandgive extends EssentialsCommand
final ItemStack stack = ess.getItemDb().get(args[1], giveTo); final ItemStack stack = ess.getItemDb().get(args[1], giveTo);
final String itemname = stack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", ""); final String itemname = stack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", "");
if (!GivePermissions.getPermission(stack.getType()).isAuthorized(sender)) if (!Permissions.GIVE.isAuthorized(sender, stack))
{ {
throw new Exception(_("cantSpawnItem", itemname)); throw new Exception(_("cantSpawnItem", itemname));
} }

View File

@@ -6,7 +6,6 @@ import static net.ess3.I18n._;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.economy.Trade; import net.ess3.economy.Trade;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
import net.ess3.permissions.WorldPermissions;
import net.ess3.utils.Util; import net.ess3.utils.Util;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Material; import org.bukkit.Material;
@@ -98,7 +97,7 @@ public class Commandhome extends EssentialsCommand
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
if (user.getPlayer().getWorld() != loc.getWorld() && ess.getSettings().getData().getGeneral().isWorldHomePermissions() if (user.getPlayer().getWorld() != loc.getWorld() && ess.getSettings().getData().getGeneral().isWorldHomePermissions()
&& !WorldPermissions.getPermission(loc.getWorld().getName()).isAuthorized(user)) && !Permissions.WORLD.isAuthorized(user, loc.getWorld().getName()))
{ {
throw new Exception(_("noPerm", "essentials.world." + loc.getWorld().getName())); throw new Exception(_("noPerm", "essentials.world." + loc.getWorld().getName()));
} }

View File

@@ -3,7 +3,7 @@ package net.ess3.commands;
import java.util.Locale; import java.util.Locale;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.permissions.ItemPermissions; import net.ess3.permissions.Permissions;
import org.bukkit.enchantments.Enchantment; import org.bukkit.enchantments.Enchantment;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@@ -20,7 +20,7 @@ public class Commanditem extends EssentialsCommand
final ItemStack stack = ess.getItemDb().get(args[0], user); final ItemStack stack = ess.getItemDb().get(args[0], user);
final String itemname = stack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", ""); final String itemname = stack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", "");
if (!ItemPermissions.getPermission(stack.getType()).isAuthorized(user)) if (!Permissions.ITEMSPAWN.isAuthorized(user, stack))
{ {
throw new Exception(_("cantSpawnItem", itemname)); throw new Exception(_("cantSpawnItem", itemname));
} }

View File

@@ -5,7 +5,7 @@ import java.util.Locale;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.economy.Trade; import net.ess3.economy.Trade;
import net.ess3.permissions.KitPermissions; import net.ess3.permissions.Permissions;
import net.ess3.settings.Kit; import net.ess3.settings.Kit;
import net.ess3.utils.Util; import net.ess3.utils.Util;
@@ -26,7 +26,7 @@ public class Commandkit extends EssentialsCommand
{ {
for (String kitName : kitList) for (String kitName : kitList)
{ {
if (!KitPermissions.getPermission(kitName).isAuthorized(user)) if (!Permissions.KITS.isAuthorized(user, kitName))
{ {
kitList.remove(kitName); kitList.remove(kitName);
} }
@@ -40,7 +40,7 @@ public class Commandkit extends EssentialsCommand
final String kitName = args[0].toLowerCase(Locale.ENGLISH); final String kitName = args[0].toLowerCase(Locale.ENGLISH);
final Kit kit = ess.getKits().getKit(kitName); final Kit kit = ess.getKits().getKit(kitName);
if (!KitPermissions.getPermission(kitName).isAuthorized(user)) if (!Permissions.KITS.isAuthorized(user, kitName))
{ {
throw new Exception(_("noKitPermission", "essentials.kit." + kitName)); throw new Exception(_("noKitPermission", "essentials.kit." + kitName));
} }

View File

@@ -4,7 +4,6 @@ import java.util.Locale;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.ISettings; import net.ess3.api.ISettings;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.permissions.ItemPermissions;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@@ -39,7 +38,7 @@ public class Commandmore extends EssentialsCommand
throw new NoChargeException(); throw new NoChargeException();
} }
final String itemname = stack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", ""); final String itemname = stack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", "");
if (!ItemPermissions.getPermission(stack.getType()).isAuthorized(user)) if (!Permissions.ITEMSPAWN.isAuthorized(user, stack))
{ {
throw new Exception(_("cantSpawnItem", itemname)); throw new Exception(_("cantSpawnItem", itemname));
} }

View File

@@ -3,7 +3,7 @@ package net.ess3.commands;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.api.IWarps; import net.ess3.api.IWarps;
import net.ess3.permissions.WarpPermissions; import net.ess3.permissions.Permissions;
import org.bukkit.Location; import org.bukkit.Location;
@@ -36,7 +36,7 @@ public class Commandsetwarp extends EssentialsCommand
{ {
} }
if (warpLoc == null || WarpPermissions.getPermission("overwrite." + args[0]).isAuthorized(user)) if (warpLoc == null || Permissions.WARP_OVERWRITE.isAuthorized(user, args[0]))
{ {
warps.setWarp(args[0], loc); warps.setWarp(args[0], loc);

View File

@@ -5,7 +5,7 @@ import static net.ess3.I18n._;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.bukkit.LivingEntities; import net.ess3.bukkit.LivingEntities;
import net.ess3.economy.Trade; import net.ess3.economy.Trade;
import net.ess3.permissions.SpawnerPermissions; import net.ess3.permissions.Permissions;
import net.ess3.utils.LocationUtil; import net.ess3.utils.LocationUtil;
import net.ess3.utils.Util; import net.ess3.utils.Util;
import org.bukkit.Location; import org.bukkit.Location;
@@ -41,7 +41,7 @@ public class Commandspawner extends EssentialsCommand
user.sendMessage(_("invalidMob")); user.sendMessage(_("invalidMob"));
return; return;
} }
if (!SpawnerPermissions.getPermission(mob.getName()).isAuthorized(user)) if (!Permissions.SPAWNER.isAuthorized(user, mob.getName()))
{ {
throw new Exception(_("unableToSpawnMob")); throw new Exception(_("unableToSpawnMob"));
} }

View File

@@ -9,7 +9,7 @@ import net.ess3.api.ISettings;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.bukkit.LivingEntities; import net.ess3.bukkit.LivingEntities;
import net.ess3.bukkit.LivingEntities.MobException; import net.ess3.bukkit.LivingEntities.MobException;
import net.ess3.permissions.SpawnmobPermissions; import net.ess3.permissions.Permissions;
import net.ess3.utils.LocationUtil; import net.ess3.utils.LocationUtil;
import net.ess3.utils.Util; import net.ess3.utils.Util;
import org.bukkit.DyeColor; import org.bukkit.DyeColor;
@@ -18,7 +18,7 @@ import org.bukkit.block.Block;
import org.bukkit.entity.*; import org.bukkit.entity.*;
import org.bukkit.entity.Villager.Profession; import org.bukkit.entity.Villager.Profession;
import org.bukkit.material.Colorable; import org.bukkit.material.Colorable;
//TODO - Bukkit cleanup
public class Commandspawnmob extends EssentialsCommand public class Commandspawnmob extends EssentialsCommand
{ {
@@ -31,7 +31,7 @@ public class Commandspawnmob extends EssentialsCommand
final Set<String> availableList = new HashSet<String>(); final Set<String> availableList = new HashSet<String>();
for (String mob : mobList) for (String mob : mobList)
{ {
if (SpawnmobPermissions.getPermission(mob).isAuthorized(user)) if (Permissions.SPAWNMOB.isAuthorized(user, mob))
{ {
availableList.add(mob); availableList.add(mob);
} }
@@ -76,7 +76,7 @@ public class Commandspawnmob extends EssentialsCommand
throw new Exception(_("invalidMob")); throw new Exception(_("invalidMob"));
} }
if (!SpawnmobPermissions.getPermission(mob.getName()).isAuthorized(user)) if (!Permissions.SPAWNMOB.isAuthorized(user, mob.getName()))
{ {
throw new Exception(_("noPermToSpawnMob")); throw new Exception(_("noPermToSpawnMob"));
} }
@@ -111,7 +111,7 @@ public class Commandspawnmob extends EssentialsCommand
return; return;
} }
if (!SpawnmobPermissions.getPermission(mobMount.getName()).isAuthorized(user)) if (!Permissions.SPAWNMOB.isAuthorized(user, mobMount.getName()))
{ {
throw new Exception(_("noPermToSpawnMob")); throw new Exception(_("noPermToSpawnMob"));
} }

View File

@@ -7,7 +7,6 @@ import net.ess3.api.ISettings;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.economy.Trade; import net.ess3.economy.Trade;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
import net.ess3.permissions.WorldPermissions;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
@@ -34,7 +33,7 @@ public class Commandtp extends EssentialsCommand
throw new Exception(_("teleportDisabled", player.getPlayer().getDisplayName())); throw new Exception(_("teleportDisabled", player.getPlayer().getDisplayName()));
} }
if (user.getPlayer().getWorld() != player.getPlayer().getWorld() && settings.getData().getGeneral().isWorldTeleportPermissions() if (user.getPlayer().getWorld() != player.getPlayer().getWorld() && settings.getData().getGeneral().isWorldTeleportPermissions()
&& !WorldPermissions.getPermission(player.getPlayer().getWorld().getName()).isAuthorized(user)) && !Permissions.WORLD.isAuthorized(user, player.getPlayer().getWorld().getName()))
{ {
throw new Exception(_("noPerm", "essentials.world." + player.getPlayer().getWorld().getName())); throw new Exception(_("noPerm", "essentials.world." + player.getPlayer().getWorld().getName()));
} }
@@ -66,7 +65,7 @@ public class Commandtp extends EssentialsCommand
throw new Exception(_("teleportDisabled", toPlayer.getPlayer().getDisplayName())); throw new Exception(_("teleportDisabled", toPlayer.getPlayer().getDisplayName()));
} }
if (target.getPlayer().getWorld() != toPlayer.getPlayer().getWorld() && settings.getData().getGeneral().isWorldTeleportPermissions() if (target.getPlayer().getWorld() != toPlayer.getPlayer().getWorld() && settings.getData().getGeneral().isWorldTeleportPermissions()
&& !WorldPermissions.getPermission(toPlayer.getPlayer().getWorld().getName()).isAuthorized(user)) && !Permissions.WORLD.isAuthorized(user, toPlayer.getPlayer().getWorld().getName()))
{ {
throw new Exception(_("noPerm", "essentials.world." + toPlayer.getPlayer().getWorld().getName())); throw new Exception(_("noPerm", "essentials.world." + toPlayer.getPlayer().getWorld().getName()));
} }

View File

@@ -4,7 +4,7 @@ import lombok.Cleanup;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.ISettings; import net.ess3.api.ISettings;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.permissions.WorldPermissions; import net.ess3.permissions.Permissions;
public class Commandtpa extends EssentialsCommand public class Commandtpa extends EssentialsCommand
@@ -28,7 +28,7 @@ public class Commandtpa extends EssentialsCommand
ISettings settings = ess.getSettings(); ISettings settings = ess.getSettings();
settings.acquireReadLock(); settings.acquireReadLock();
if (user.getPlayer().getWorld() != player.getPlayer().getWorld() && ess.getSettings().getData().getGeneral().isWorldTeleportPermissions() if (user.getPlayer().getWorld() != player.getPlayer().getWorld() && ess.getSettings().getData().getGeneral().isWorldTeleportPermissions()
&& !WorldPermissions.getPermission(user.getPlayer().getWorld().getName()).isAuthorized(user)) && !Permissions.WORLD.isAuthorized(user, user.getPlayer().getWorld().getName()))
{ {
throw new Exception(_("noPerm", "essentials.world." + player.getPlayer().getWorld().getName())); throw new Exception(_("noPerm", "essentials.world." + player.getPlayer().getWorld().getName()));
} }

View File

@@ -4,7 +4,7 @@ import lombok.Cleanup;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.ISettings; import net.ess3.api.ISettings;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.permissions.WorldPermissions; import net.ess3.permissions.Permissions;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -48,7 +48,7 @@ public class Commandtpaall extends EssentialsCommand
ISettings settings = ess.getSettings(); ISettings settings = ess.getSettings();
settings.acquireReadLock(); settings.acquireReadLock();
if (user.getPlayer().getWorld() != player.getPlayer().getWorld() && settings.getData().getGeneral().isWorldTeleportPermissions() if (user.getPlayer().getWorld() != player.getPlayer().getWorld() && settings.getData().getGeneral().isWorldTeleportPermissions()
&& !WorldPermissions.getPermission(user.getPlayer().getWorld().getName()).isAuthorized(user)) && !Permissions.WORLD.isAuthorized(user, user.getPlayer().getWorld().getName()))
{ {
continue; continue;
} }

View File

@@ -4,7 +4,7 @@ import lombok.Cleanup;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.ISettings; import net.ess3.api.ISettings;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.permissions.WorldPermissions; import net.ess3.permissions.Permissions;
public class Commandtpahere extends EssentialsCommand public class Commandtpahere extends EssentialsCommand
@@ -28,7 +28,7 @@ public class Commandtpahere extends EssentialsCommand
ISettings settings = ess.getSettings(); ISettings settings = ess.getSettings();
settings.acquireReadLock(); settings.acquireReadLock();
if (user.getPlayer().getWorld() != player.getPlayer().getWorld() && settings.getData().getGeneral().isWorldTeleportPermissions() if (user.getPlayer().getWorld() != player.getPlayer().getWorld() && settings.getData().getGeneral().isWorldTeleportPermissions()
&& !WorldPermissions.getPermission(user.getPlayer().getWorld().getName()).isAuthorized(user)) && !Permissions.WORLD.isAuthorized(user, user.getPlayer().getWorld().getName()))
{ {
throw new Exception(_("noPerm", "essentials.world." + user.getPlayer().getWorld().getName())); throw new Exception(_("noPerm", "essentials.world." + user.getPlayer().getWorld().getName()));
} }

View File

@@ -4,7 +4,7 @@ import lombok.Cleanup;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.ISettings; import net.ess3.api.ISettings;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.permissions.WorldPermissions; import net.ess3.permissions.Permissions;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
@@ -44,7 +44,7 @@ public class Commandtpall extends EssentialsCommand
settings.acquireReadLock(); settings.acquireReadLock();
if (user.getPlayer().getWorld() != player.getPlayer().getWorld() && settings.getData().getGeneral().isWorldTeleportPermissions() if (user.getPlayer().getWorld() != player.getPlayer().getWorld() && settings.getData().getGeneral().isWorldTeleportPermissions()
&& !WorldPermissions.getPermission(user.getPlayer().getWorld().getName()).isAuthorized(user)) && !Permissions.WORLD.isAuthorized(user, user.getPlayer().getWorld().getName()))
{ {
continue; continue;
} }

View File

@@ -5,7 +5,6 @@ import static net.ess3.I18n._;
import net.ess3.api.ISettings; import net.ess3.api.ISettings;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
import net.ess3.permissions.WorldPermissions;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
@@ -32,7 +31,7 @@ public class Commandtpohere extends EssentialsCommand
settings.acquireReadLock(); settings.acquireReadLock();
//todo - common method //todo - common method
if (user.getPlayer().getWorld() != player.getPlayer().getWorld() && settings.getData().getGeneral().isWorldTeleportPermissions() if (user.getPlayer().getWorld() != player.getPlayer().getWorld() && settings.getData().getGeneral().isWorldTeleportPermissions()
&& !WorldPermissions.getPermission(user.getPlayer().getWorld().getName()).isAuthorized(player)) && !Permissions.WORLD.isAuthorized(player, user.getPlayer().getWorld().getName()))
{ {
throw new Exception(_("noPerm", "essentials.world." + user.getPlayer().getWorld().getName())); throw new Exception(_("noPerm", "essentials.world." + user.getPlayer().getWorld().getName()));
} }

View File

@@ -7,7 +7,6 @@ import static net.ess3.I18n._;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.craftbukkit.InventoryWorkaround; import net.ess3.craftbukkit.InventoryWorkaround;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
import net.ess3.permissions.UnlimitedItemPermissions;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@@ -82,7 +81,7 @@ public class Commandunlimited extends EssentialsCommand
stack.setAmount(Math.min(stack.getType().getMaxStackSize(), 2)); stack.setAmount(Math.min(stack.getType().getMaxStackSize(), 2));
final String itemname = stack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", ""); final String itemname = stack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", "");
if (!UnlimitedItemPermissions.getPermission(stack.getType()).isAuthorized(user)) if (!Permissions.UNLIMITED.isAuthorized(user, stack))
{ {
throw new Exception(_("unlimitedItemPermission", itemname)); throw new Exception(_("unlimitedItemPermission", itemname));
} }

View File

@@ -9,7 +9,6 @@ import net.ess3.api.IUser;
import net.ess3.api.IWarps; import net.ess3.api.IWarps;
import net.ess3.economy.Trade; import net.ess3.economy.Trade;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
import net.ess3.permissions.WarpPermissions;
import net.ess3.utils.Util; import net.ess3.utils.Util;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
@@ -83,7 +82,7 @@ public class Commandwarp extends EssentialsCommand
while (iterator.hasNext()) while (iterator.hasNext())
{ {
final String warpName = iterator.next(); final String warpName = iterator.next();
if (!WarpPermissions.getPermission(warpName).isAuthorized(sender)) if (!Permissions.WARPS.isAuthorized(sender, warpName))
{ {
iterator.remove(); iterator.remove();
} }
@@ -116,7 +115,7 @@ public class Commandwarp extends EssentialsCommand
final double fullCharge = chargeWarp.getCommandCost(user) + chargeCmd.getCommandCost(user); final double fullCharge = chargeWarp.getCommandCost(user) + chargeCmd.getCommandCost(user);
final Trade charge = new Trade(fullCharge, ess); final Trade charge = new Trade(fullCharge, ess);
charge.isAffordableFor(user); charge.isAffordableFor(user);
if (WarpPermissions.getPermission(name).isAuthorized(user)) if (Permissions.WARPS.isAuthorized(user, name))
{ {
user.getTeleport().warp(name, charge, TeleportCause.COMMAND); user.getTeleport().warp(name, charge, TeleportCause.COMMAND);
return; return;

View File

@@ -4,7 +4,7 @@ import java.util.List;
import static net.ess3.I18n._; import static net.ess3.I18n._;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.economy.Trade; import net.ess3.economy.Trade;
import net.ess3.permissions.WorldPermissions; import net.ess3.permissions.Permissions;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
@@ -50,7 +50,7 @@ public class Commandworld extends EssentialsCommand
} }
if (!WorldPermissions.getPermission(world.getName()).isAuthorized(user)) if (!Permissions.WORLD.isAuthorized(user, world.getName()))
{ {
user.sendMessage(_("invalidWorld")); //TODO: Make a "world teleport denied" translation user.sendMessage(_("invalidWorld")); //TODO: Make a "world teleport denied" translation
throw new NoChargeException(); throw new NoChargeException();

View File

@@ -16,7 +16,6 @@ import net.ess3.api.IEssentials;
import net.ess3.api.ISettings; import net.ess3.api.ISettings;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.craftbukkit.InventoryWorkaround; import net.ess3.craftbukkit.InventoryWorkaround;
import net.ess3.permissions.NoCommandCostPermissions;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@@ -172,7 +171,7 @@ public class Trade
user.getPlayer().updateInventory(); user.getPlayer().updateInventory();
} }
if (command != null && !command.isEmpty() if (command != null && !command.isEmpty()
&& !NoCommandCostPermissions.getPermission(command).isAuthorized(user)) && !Permissions.NOCOMMANDCOST.isAuthorized(user, command))
{ {
@Cleanup @Cleanup
final ISettings settings = ess.getSettings(); final ISettings settings = ess.getSettings();
@@ -214,8 +213,7 @@ public class Trade
{ {
double cost = 0d; double cost = 0d;
if (command != null && !command.isEmpty() if (command != null && !command.isEmpty()
&& !NoCommandCostPermissions.getPermission("all").isAuthorized(user) && !Permissions.NOCOMMANDCOST.isAuthorized(user, command))
&& !NoCommandCostPermissions.getPermission(command).isAuthorized(user))
{ {
cost = ess.getSettings().getData().getEconomy().getCommandCost(command.charAt(0) == '/' ? command.substring(1) : command); cost = ess.getSettings().getData().getEconomy().getCommandCost(command.charAt(0) == '/' ? command.substring(1) : command);
if (cost == 0.0 && fallbackCommand != null && !fallbackCommand.isEmpty()) if (cost == 0.0 && fallbackCommand != null && !fallbackCommand.isEmpty())

View File

@@ -0,0 +1,62 @@
package net.ess3.permissions;
import org.bukkit.command.CommandSender;
import org.bukkit.permissions.PermissionDefault;
public class DotStarPermission extends AbstractSuperpermsPermission
{
private final String base;
private final String dotStarPermission;
private final PermissionDefault defaultPerm;
public DotStarPermission(final String base)
{
this(base, PermissionDefault.OP);
}
public DotStarPermission(final String base, final PermissionDefault defaultPerm)
{
this.base = base+".";
this.dotStarPermission = base + ".*";
this.defaultPerm = defaultPerm;
}
protected String getBase()
{
return base;
}
@Override
public String getPermissionName()
{
return dotStarPermission;
}
@Override
public PermissionDefault getPermissionDefault()
{
return defaultPerm;
}
public boolean isAuthorized(CommandSender sender, final String... subPerms)
{
for (String subPerm : subPerms)
{
final String permission = getBase().concat(subPerm);
if (sender.isPermissionSet(permission))
{
return sender.hasPermission(permission);
}
}
final String parentPermission = getParentPermission();
if (parentPermission != null && sender.isPermissionSet(parentPermission))
{
return sender.hasPermission(parentPermission);
}
else
{
return getPermissionDefault().getValue(sender.isOp());
}
}
}

View File

@@ -1,23 +0,0 @@
package net.ess3.permissions;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import net.ess3.api.IPermission;
public class EnchantPermissions
{
private static Map<String, IPermission> permissions = new HashMap<String, IPermission>();
public static IPermission getPermission(final String enchantName)
{
IPermission perm = permissions.get(enchantName);
if (perm == null)
{
perm = new BasePermission("essentials.enchant.",enchantName.toLowerCase(Locale.ENGLISH));
permissions.put(enchantName, perm);
}
return perm;
}
}

View File

@@ -1,30 +0,0 @@
package net.ess3.permissions;
import java.util.EnumMap;
import java.util.Locale;
import net.ess3.api.IPermission;
import org.bukkit.Material;
import org.bukkit.permissions.PermissionDefault;
public class GivePermissions {
private static EnumMap<Material, IPermission> permissions = new EnumMap<Material, IPermission>(Material.class);
public static IPermission getPermission(final Material mat)
{
IPermission perm = permissions.get(mat);
if (perm == null)
{
perm = new BasePermission("essentials.give.item-", mat.toString().toLowerCase(Locale.ENGLISH).replace("_", ""))
{
@Override
public PermissionDefault getPermissionDefault()
{
return PermissionDefault.TRUE;
}
};
permissions.put(mat, perm);
}
return perm;
}
}

View File

@@ -1,23 +0,0 @@
package net.ess3.permissions;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import net.ess3.api.IPermission;
public class GroupsPermissions
{
private static Map<String, IPermission> permissions = new HashMap<String, IPermission>();
public static IPermission getPermission(final String groupName)
{
IPermission perm = permissions.get(groupName);
if (perm == null)
{
perm = new BasePermission("essentials.groups.",groupName.toLowerCase(Locale.ENGLISH));
permissions.put(groupName, perm);
}
return perm;
}
}

View File

@@ -1,23 +0,0 @@
package net.ess3.permissions;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import net.ess3.api.IPermission;
public class HelpPermissions
{
private static Map<String, IPermission> permissions = new HashMap<String, IPermission>();
public static IPermission getPermission(final String pluginName)
{
IPermission perm = permissions.get(pluginName);
if (perm == null)
{
perm = new BasePermission("essentials.help.", pluginName.toLowerCase(Locale.ENGLISH));
permissions.put(pluginName, perm);
}
return perm;
}
}

View File

@@ -1,32 +0,0 @@
package net.ess3.permissions;
import java.util.EnumMap;
import java.util.Locale;
import net.ess3.api.IPermission;
import org.bukkit.Material;
import org.bukkit.permissions.PermissionDefault;
public class ItemPermissions
{
private static EnumMap<Material, IPermission> permissions = new EnumMap<Material, IPermission>(Material.class);
public static IPermission getPermission(final Material mat)
{
IPermission perm = permissions.get(mat);
if (perm == null)
{
perm = new BasePermission("essentials.itemspawn.item-", mat.toString().toLowerCase(Locale.ENGLISH).replace("_", ""))
{
@Override
public PermissionDefault getPermissionDefault()
{
return PermissionDefault.TRUE;
}
};
permissions.put(mat, perm);
}
return perm;
}
}

View File

@@ -0,0 +1,44 @@
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);
}
}

View File

@@ -1,31 +0,0 @@
package net.ess3.permissions;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import net.ess3.api.IPermission;
import org.bukkit.permissions.PermissionDefault;
public class KitPermissions
{
private static Map<String, IPermission> permissions = new HashMap<String, IPermission>();
public static IPermission getPermission(final String kitName)
{
IPermission perm = permissions.get(kitName);
if (perm == null)
{
perm = new BasePermission("essentials.kit.", kitName.toLowerCase(Locale.ENGLISH))
{
@Override
public PermissionDefault getPermissionDefault()
{
return PermissionDefault.TRUE;
}
};
permissions.put(kitName, perm);
}
return perm;
}
}

View File

@@ -1,23 +0,0 @@
package net.ess3.permissions;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import net.ess3.api.IPermission;
public class NoCommandCostPermissions
{
private static Map<String, IPermission> permissions = new HashMap<String, IPermission>();
public static IPermission getPermission(final String command)
{
IPermission perm = permissions.get(command);
if (perm == null)
{
perm = new BasePermission("essentials.nocommandcost.", command.toLowerCase(Locale.ENGLISH));
permissions.put(command, perm);
}
return perm;
}
}

View File

@@ -138,4 +138,17 @@ public enum Permissions implements IPermission
{ {
return PermissionFactory.checkPermission(sender, this); 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 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 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 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");
} }

View File

@@ -1,23 +0,0 @@
package net.ess3.permissions;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import net.ess3.api.IPermission;
public class SpawnerPermissions
{
private static Map<String, IPermission> permissions = new HashMap<String, IPermission>();
public static IPermission getPermission(final String mobName)
{
IPermission perm = permissions.get(mobName);
if (perm == null)
{
perm = new BasePermission("essentials.spawner.", mobName.toLowerCase(Locale.ENGLISH).replace("_", ""));
permissions.put(mobName, perm);
}
return perm;
}
}

View File

@@ -1,21 +0,0 @@
package net.ess3.permissions;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import net.ess3.api.IPermission;
public class SpawnmobPermissions {
private static Map<String, IPermission> permissions = new HashMap<String, IPermission>();
public static IPermission getPermission(final String mobName)
{
IPermission perm = permissions.get(mobName);
if (perm == null)
{
perm = new BasePermission("essentials.spawnmob.", mobName.toLowerCase(Locale.ENGLISH).replace("_", ""));
permissions.put(mobName, perm);
}
return perm;
}
}

View File

@@ -1,22 +0,0 @@
package net.ess3.permissions;
import java.util.EnumMap;
import java.util.Locale;
import net.ess3.api.IPermission;
import org.bukkit.Material;
public class UnlimitedItemPermissions
{
private static EnumMap<Material, IPermission> permissions = new EnumMap<Material, IPermission>(Material.class);
public static IPermission getPermission(final Material mat)
{
IPermission perm = permissions.get(mat);
if (perm == null)
{
perm = new BasePermission("essentials.unlimited.item-", mat.toString().toLowerCase(Locale.ENGLISH).replace("_", ""));
permissions.put(mat, perm);
}
return perm;
}
}

View File

@@ -1,31 +0,0 @@
package net.ess3.permissions;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import net.ess3.api.IPermission;
import org.bukkit.permissions.PermissionDefault;
public class WarpPermissions
{
private static Map<String, IPermission> permissions = new HashMap<String, IPermission>();
public static IPermission getPermission(final String warpName)
{
IPermission perm = permissions.get(warpName);
if (perm == null)
{
perm = new BasePermission("essentials.warp.", warpName.toLowerCase(Locale.ENGLISH))
{
@Override
public PermissionDefault getPermissionDefault()
{
return PermissionDefault.TRUE;
}
};
permissions.put(warpName, perm);
}
return perm;
}
}

View File

@@ -1,22 +0,0 @@
package net.ess3.permissions;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import net.ess3.api.IPermission;
public class WorldPermissions
{
private static Map<String, IPermission> permissions = new HashMap<String, IPermission>();
public static IPermission getPermission(final String worldName)
{
IPermission perm = permissions.get(worldName);
if (perm == null)
{
perm = new BasePermission("essentials.world.", worldName.toLowerCase(Locale.ENGLISH));
permissions.put(worldName, perm);
}
return perm;
}
}

View File

@@ -12,25 +12,23 @@ import net.ess3.api.IEssentials;
import net.ess3.api.IRanks; import net.ess3.api.IRanks;
import net.ess3.api.ISettings; import net.ess3.api.ISettings;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.permissions.GroupsPermissions; import net.ess3.permissions.Permissions;
import net.ess3.storage.AsyncStorageObjectHolder; import net.ess3.storage.AsyncStorageObjectHolder;
import net.ess3.utils.FormatUtil; import net.ess3.utils.FormatUtil;
public class RanksStorage extends AsyncStorageObjectHolder<Ranks> implements IRanks public class RanksStorage extends AsyncStorageObjectHolder<Ranks> implements IRanks
{ {
@Override @Override
public void finishRead() public void finishRead()
{ {
} }
@Override @Override
public void finishWrite() public void finishWrite()
{ {
} }
public RanksStorage(final IEssentials ess) public RanksStorage(final IEssentials ess)
{ {
super(ess, Ranks.class); super(ess, Ranks.class);
@@ -56,7 +54,7 @@ public class RanksStorage extends AsyncStorageObjectHolder<Ranks> implements IRa
final ArrayList<Entry<String, RankOptions>> list = new ArrayList(); final ArrayList<Entry<String, RankOptions>> list = new ArrayList();
for (Entry<String, RankOptions> entry : groups.entrySet()) for (Entry<String, RankOptions> entry : groups.entrySet())
{ {
if (GroupsPermissions.getPermission(entry.getKey()).isAuthorized(player)) if (Permissions.RANKS.isAuthorized(player, entry.getKey()))
{ {
if (entry.getValue() != null) if (entry.getValue() != null)
{ {
@@ -203,5 +201,4 @@ public class RanksStorage extends AsyncStorageObjectHolder<Ranks> implements IRa
} }
return "default"; return "default";
} }
} }

View File

@@ -9,7 +9,7 @@ import static net.ess3.I18n._;
import net.ess3.api.IEssentials; import net.ess3.api.IEssentials;
import net.ess3.api.ISettings; import net.ess3.api.ISettings;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.permissions.HelpPermissions; import net.ess3.permissions.Permissions;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginDescriptionFile; import org.bukkit.plugin.PluginDescriptionFile;
@@ -87,7 +87,7 @@ public class HelpInput implements IText
{ {
permissions = value.get(PERMISSIONS); permissions = value.get(PERMISSIONS);
} }
if (HelpPermissions.getPermission(pluginNameLow).isAuthorized(user)) if (Permissions.HELP.isAuthorized(user, pluginNameLow))
{ {
pluginLines.add(_("helpLine", k.getKey(), value.get(DESCRIPTION))); pluginLines.add(_("helpLine", k.getKey(), value.get(DESCRIPTION)));
} }

View File

@@ -4,7 +4,7 @@ import net.ess3.api.ChargeException;
import net.ess3.economy.Trade; import net.ess3.economy.Trade;
import net.ess3.api.IEssentials; import net.ess3.api.IEssentials;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.permissions.KitPermissions; import net.ess3.permissions.Permissions;
import net.ess3.settings.Kit; import net.ess3.settings.Kit;
import java.util.Locale; import java.util.Locale;
@@ -53,7 +53,7 @@ public class SignKit extends EssentialsSign
final String kitName = sign.getLine(1).toLowerCase(Locale.ENGLISH); final String kitName = sign.getLine(1).toLowerCase(Locale.ENGLISH);
final String group = sign.getLine(2); final String group = sign.getLine(2);
if ((!group.isEmpty() && ("§2Everyone".equals(group) || ess.getRanks().inGroup(player, group))) if ((!group.isEmpty() && ("§2Everyone".equals(group) || ess.getRanks().inGroup(player, group)))
|| (group.isEmpty() && KitPermissions.getPermission(kitName).isAuthorized(player))) || (group.isEmpty() && Permissions.KITS.isAuthorized(player, kitName)))
{ {
final Trade charge = getTrade(sign, 3, ess); final Trade charge = getTrade(sign, 3, ess);
charge.isAffordableFor(player); charge.isAffordableFor(player);

View File

@@ -4,7 +4,7 @@ import net.ess3.api.ChargeException;
import net.ess3.api.IEssentials; import net.ess3.api.IEssentials;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.economy.Trade; import net.ess3.economy.Trade;
import net.ess3.permissions.WarpPermissions; import net.ess3.permissions.Permissions;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
@@ -52,7 +52,7 @@ public class SignWarp extends EssentialsSign
final String group = sign.getLine(2); final String group = sign.getLine(2);
if ((!group.isEmpty() && ("§2Everyone".equals(group) || ess.getRanks().inGroup(player, group))) if ((!group.isEmpty() && ("§2Everyone".equals(group) || ess.getRanks().inGroup(player, group)))
|| (group.isEmpty() && WarpPermissions.getPermission(warpName).isAuthorized(player))) || (group.isEmpty() && Permissions.WARPS.isAuthorized(player, warpName)))
{ {
final Trade charge = getTrade(sign, 3, ess); final Trade charge = getTrade(sign, 3, ess);
try try