Modified BetterLocation, and new Permission-System
This commit is contained in:
parent
8080abacd6
commit
8ab5bad988
|
@ -19,7 +19,6 @@ package com.earth2me.essentials;
|
|||
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.api.*;
|
||||
import com.earth2me.essentials.craftbukkit.BetterLocation;
|
||||
import com.earth2me.essentials.listener.*;
|
||||
import com.earth2me.essentials.perm.PermissionsHandler;
|
||||
import com.earth2me.essentials.register.payment.Methods;
|
||||
|
@ -235,7 +234,6 @@ public class Essentials extends JavaPlugin implements IEssentials
|
|||
i18n.onDisable();
|
||||
Economy.setEss(null);
|
||||
Trade.closeLog();
|
||||
BetterLocation.cleanup();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -113,7 +113,7 @@ public class EssentialsCommandHandler implements ICommandHandler
|
|||
}
|
||||
|
||||
// Check authorization
|
||||
if (user != null && !user.isAuthorized(cmd))
|
||||
if (sender != null && cmd.isAuthorized(sender))
|
||||
{
|
||||
LOGGER.log(Level.WARNING, _("deniedAccessCommand", user.getName()));
|
||||
user.sendMessage(_("noAccessCommand"));
|
||||
|
|
|
@ -4,6 +4,7 @@ import static com.earth2me.essentials.I18n._;
|
|||
import com.earth2me.essentials.api.IEssentials;
|
||||
import com.earth2me.essentials.api.ISettings;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import com.earth2me.essentials.user.UserData.TimestampType;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
|
@ -42,7 +43,7 @@ public class EssentialsTimer implements Runnable
|
|||
settings.unlock();
|
||||
}
|
||||
// New mail notification
|
||||
if (user != null && !mailDisabled && user.isAuthorized("essentials.mail") && !user.gotMailInfo())
|
||||
if (user != null && !mailDisabled && Permissions.MAIL.isAuthorized(user) && !user.gotMailInfo())
|
||||
{
|
||||
final List<String> mail = user.getMails();
|
||||
if (mail != null && !mail.isEmpty())
|
||||
|
|
|
@ -4,6 +4,7 @@ import static com.earth2me.essentials.I18n._;
|
|||
import com.earth2me.essentials.api.IEssentials;
|
||||
import com.earth2me.essentials.api.IItemDb;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
@ -77,7 +78,7 @@ public class ItemDb implements IItemDb
|
|||
else
|
||||
{
|
||||
final int oversizedStackSize = settings.getData().getGeneral().getOversizedStacksize();
|
||||
if (oversizedStackSize > 0 && user.isAuthorized("essentials.oversizedstacks"))
|
||||
if (oversizedStackSize > 0 && Permissions.OVERSIZEDSTACKS.isAuthorized(user))
|
||||
{
|
||||
stack.setAmount(oversizedStackSize);
|
||||
}
|
||||
|
|
|
@ -65,7 +65,7 @@ public class Jails extends AsyncStorageObjectHolder<com.earth2me.essentials.sett
|
|||
{
|
||||
throw new Exception(_("jailNotExist"));
|
||||
}
|
||||
Location loc = getData().getJails().get(jailName.toLowerCase(Locale.ENGLISH));
|
||||
Location loc = getData().getJails().get(jailName.toLowerCase(Locale.ENGLISH)).getBukkitLocation();
|
||||
if (loc == null || loc.getWorld() == null)
|
||||
{
|
||||
throw new Exception(_("jailNotExist"));
|
||||
|
@ -149,9 +149,9 @@ public class Jails extends AsyncStorageObjectHolder<com.earth2me.essentials.sett
|
|||
{
|
||||
if (getData().getJails() == null)
|
||||
{
|
||||
getData().setJails(new HashMap<String, Location>());
|
||||
getData().setJails(new HashMap<String, com.earth2me.essentials.storage.Location>());
|
||||
}
|
||||
getData().getJails().put(jailName.toLowerCase(Locale.ENGLISH), loc);
|
||||
getData().getJails().put(jailName.toLowerCase(Locale.ENGLISH), new com.earth2me.essentials.storage.Location(loc));
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
|
|
@ -5,6 +5,7 @@ import com.earth2me.essentials.api.IEssentials;
|
|||
import com.earth2me.essentials.api.ITeleport;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.commands.NotEnoughArgumentsException;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import com.earth2me.essentials.user.CooldownException;
|
||||
import com.earth2me.essentials.user.UserData.TimestampType;
|
||||
import java.util.Calendar;
|
||||
|
@ -152,7 +153,7 @@ public class Teleport implements Runnable, ITeleport
|
|||
{
|
||||
try
|
||||
{
|
||||
user.checkCooldown(TimestampType.LASTTELEPORT, ess.getGroups().getTeleportCooldown(user), !check, "essentials.teleport.cooldown.bypass");
|
||||
user.checkCooldown(TimestampType.LASTTELEPORT, ess.getGroups().getTeleportCooldown(user), !check, Permissions.TELEPORT_COOLDOWN_BYPASS);
|
||||
}
|
||||
catch (CooldownException ex)
|
||||
{
|
||||
|
@ -210,7 +211,7 @@ public class Teleport implements Runnable, ITeleport
|
|||
chargeFor.isAffordableFor(user);
|
||||
}
|
||||
cooldown(true);
|
||||
if (delay <= 0 || user.isAuthorized("essentials.teleport.timer.bypass"))
|
||||
if (delay <= 0 || Permissions.TELEPORT_TIMER_BYPASS.isAuthorized(user))
|
||||
{
|
||||
cooldown(false);
|
||||
now(target, cause);
|
||||
|
|
|
@ -6,6 +6,8 @@ import com.earth2me.essentials.api.ISettings;
|
|||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.craftbukkit.InventoryWorkaround;
|
||||
import com.earth2me.essentials.craftbukkit.SetExpFix;
|
||||
import com.earth2me.essentials.perm.NoCommandCostPermissions;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import java.io.File;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
|
@ -63,7 +65,7 @@ public class Trade
|
|||
if (getMoney() != null
|
||||
&& mon < getMoney()
|
||||
&& getMoney() > 0
|
||||
&& !user.isAuthorized("essentials.eco.loan"))
|
||||
&& !Permissions.ECO_LOAN.isAuthorized(user))
|
||||
{
|
||||
throw new ChargeException(_("notEnoughMoney"));
|
||||
}
|
||||
|
@ -79,11 +81,10 @@ public class Trade
|
|||
settings.acquireReadLock();
|
||||
|
||||
if (command != null && !command.isEmpty()
|
||||
&& !user.isAuthorized("essentials.nocommandcost.all")
|
||||
&& !user.isAuthorized("essentials.nocommandcost." + command)
|
||||
&& !NoCommandCostPermissions.getPermission(command).isAuthorized(user)
|
||||
&& mon < settings.getData().getEconomy().getCommandCost(command.charAt(0) == '/' ? command.substring(1) : command)
|
||||
&& 0 < settings.getData().getEconomy().getCommandCost(command.charAt(0) == '/' ? command.substring(1) : command)
|
||||
&& !user.isAuthorized("essentials.eco.loan"))
|
||||
&& !Permissions.ECO_LOAN.isAuthorized(user))
|
||||
{
|
||||
throw new ChargeException(_("notEnoughMoney"));
|
||||
}
|
||||
|
@ -135,7 +136,7 @@ public class Trade
|
|||
if (getMoney() != null)
|
||||
{
|
||||
final double mon = user.getMoney();
|
||||
if (mon < getMoney() && getMoney() > 0 && !user.isAuthorized("essentials.eco.loan"))
|
||||
if (mon < getMoney() && getMoney() > 0 && !Permissions.ECO_LOAN.isAuthorized(user))
|
||||
{
|
||||
throw new ChargeException(_("notEnoughMoney"));
|
||||
}
|
||||
|
@ -151,15 +152,14 @@ public class Trade
|
|||
user.updateInventory();
|
||||
}
|
||||
if (command != null && !command.isEmpty()
|
||||
&& !user.isAuthorized("essentials.nocommandcost.all")
|
||||
&& !user.isAuthorized("essentials.nocommandcost." + command))
|
||||
&& !NoCommandCostPermissions.getPermission(command).isAuthorized(user))
|
||||
{
|
||||
@Cleanup
|
||||
final ISettings settings = ess.getSettings();
|
||||
settings.acquireReadLock();
|
||||
final double mon = user.getMoney();
|
||||
final double cost = settings.getData().getEconomy().getCommandCost(command.charAt(0) == '/' ? command.substring(1) : command);
|
||||
if (mon < cost && cost > 0 && !user.isAuthorized("essentials.eco.loan"))
|
||||
if (mon < cost && cost > 0 && !Permissions.ECO_LOAN.isAuthorized(user))
|
||||
{
|
||||
throw new ChargeException(_("notEnoughMoney"));
|
||||
}
|
||||
|
|
|
@ -66,7 +66,7 @@ public class Warps extends StorageObjectMap<IWarp> implements IWarps
|
|||
warp.acquireReadLock();
|
||||
try
|
||||
{
|
||||
return warp.getData().getLocation();
|
||||
return warp.getData().getLocation().getBukkitLocation();
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
@ -76,6 +76,11 @@ public class Warps extends StorageObjectMap<IWarp> implements IWarps
|
|||
|
||||
@Override
|
||||
public void setWarp(final String name, final Location loc) throws Exception
|
||||
{
|
||||
setWarp(name, new com.earth2me.essentials.storage.Location(loc));
|
||||
}
|
||||
|
||||
public void setWarp(final String name, final com.earth2me.essentials.storage.Location loc) throws Exception
|
||||
{
|
||||
IWarp warp = getObject(name);
|
||||
if (warp == null)
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.earth2me.essentials.api;
|
|||
|
||||
import com.earth2me.essentials.Util;
|
||||
import com.earth2me.essentials.craftbukkit.DummyOfflinePlayer;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import com.earth2me.essentials.user.User;
|
||||
import java.io.File;
|
||||
import java.util.logging.Level;
|
||||
|
@ -141,7 +142,7 @@ public final class Economy
|
|||
{
|
||||
throw new UserDoesNotExistException(name);
|
||||
}
|
||||
if (balance < 0.0 && !user.isAuthorized("essentials.eco.loan"))
|
||||
if (balance < 0.0 && !Permissions.ECO_LOAN.isAuthorized(user))
|
||||
{
|
||||
throw new NoLoanPermittedException();
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.earth2me.essentials.api;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.permissions.Permission;
|
||||
import org.bukkit.permissions.PermissionDefault;
|
||||
|
||||
|
@ -7,6 +8,8 @@ import org.bukkit.permissions.PermissionDefault;
|
|||
public interface IPermission
|
||||
{
|
||||
String getPermission();
|
||||
|
||||
boolean isAuthorized(CommandSender sender);
|
||||
|
||||
Permission getBukkitPermission();
|
||||
|
||||
|
|
|
@ -13,12 +13,6 @@ import org.bukkit.inventory.ItemStack;
|
|||
|
||||
public interface IUser extends Player, IStorageObjectHolder<UserData>, IReload, IReplyTo, Comparable<IUser>
|
||||
{
|
||||
boolean isAuthorized(String node);
|
||||
|
||||
boolean isAuthorized(IPermission node);
|
||||
|
||||
//boolean isAuthorized(IEssentialsCommand cmd);
|
||||
//boolean isAuthorized(IEssentialsCommand cmd, String permissionPrefix);
|
||||
Player getBase();
|
||||
|
||||
double getMoney();
|
||||
|
@ -53,7 +47,7 @@ public interface IUser extends Player, IStorageObjectHolder<UserData>, IReload,
|
|||
|
||||
ITeleport getTeleport();
|
||||
|
||||
void checkCooldown(UserData.TimestampType cooldownType, double cooldown, boolean set, String bypassPermission) throws CooldownException;
|
||||
void checkCooldown(UserData.TimestampType cooldownType, double cooldown, boolean set, IPermission bypassPermission) throws CooldownException;
|
||||
|
||||
boolean toggleAfk();
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ public class Commandafk extends EssentialsCommand
|
|||
@Override
|
||||
public void run(final IUser user, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
if (args.length > 0 && user.isAuthorized(Permissions.AFK_OTHERS))
|
||||
if (args.length > 0 && Permissions.AFK_OTHERS.isAuthorized(user))
|
||||
{
|
||||
IUser afkUser = ess.getUser((Player)ess.getServer().matchPlayer(args[0]));
|
||||
if (afkUser != null)
|
||||
|
|
|
@ -23,7 +23,7 @@ public class Commandbalance extends EssentialsCommand
|
|||
public void run(final IUser user, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
final double bal = (args.length < 1
|
||||
|| !user.isAuthorized(Permissions.BALANCE_OTHERS)
|
||||
|| !Permissions.BALANCE_OTHERS.isAuthorized(user)
|
||||
? user
|
||||
: getPlayer(args, 0, true)).getMoney();
|
||||
user.sendMessage(_("balance", Util.formatCurrency(bal, ess)));
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.earth2me.essentials.commands;
|
|||
import com.earth2me.essentials.Console;
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import com.earth2me.essentials.user.Ban;
|
||||
import lombok.Cleanup;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
@ -22,7 +23,7 @@ public class Commandban extends EssentialsCommand
|
|||
final IUser user = getPlayer(args, 0, true);
|
||||
if (user.isOnline())
|
||||
{
|
||||
if (user.isAuthorized("essentials.ban.exempt"))
|
||||
if (Permissions.BAN_EXEMPT.isAuthorized(user))
|
||||
{
|
||||
sender.sendMessage(_("banExempt"));
|
||||
return;
|
||||
|
@ -30,8 +31,7 @@ public class Commandban extends EssentialsCommand
|
|||
}
|
||||
else
|
||||
{
|
||||
if (sender instanceof Player
|
||||
&& !ess.getUser((Player)sender).isAuthorized("essentials.ban.offline"))
|
||||
if (Permissions.BAN_OFFLINE.isAuthorized(sender))
|
||||
{
|
||||
sender.sendMessage(_("banExempt"));
|
||||
return;
|
||||
|
@ -57,7 +57,7 @@ public class Commandban extends EssentialsCommand
|
|||
for (Player onlinePlayer : server.getOnlinePlayers())
|
||||
{
|
||||
final IUser player = ess.getUser(onlinePlayer);
|
||||
if (player.isAuthorized("essentials.ban.notify"))
|
||||
if (Permissions.BAN_NOTIFY.isAuthorized(player))
|
||||
{
|
||||
onlinePlayer.sendMessage(_("playerBanned", senderName, user.getName(), banReason));
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.earth2me.essentials.commands;
|
||||
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.event.block.BlockBreakEvent;
|
||||
|
@ -21,7 +22,7 @@ public class Commandbreak extends EssentialsCommand
|
|||
{
|
||||
throw new NoChargeException();
|
||||
}
|
||||
if (block.getType() == Material.BEDROCK && !user.isAuthorized("essentials.break.bedrock"))
|
||||
if (block.getType() == Material.BEDROCK && !Permissions.BREAK_BEDROCK.isAuthorized(user))
|
||||
{
|
||||
throw new Exception("You are not allowed to destroy bedrock."); //TODO: Translation
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.earth2me.essentials.commands;
|
|||
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import java.util.List;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
@ -13,7 +14,7 @@ public class Commandclearinventory extends EssentialsCommand
|
|||
@Override
|
||||
public void run(final IUser user, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
if (args.length > 0 && user.isAuthorized("essentials.clearinventory.others"))
|
||||
if (args.length > 0 && Permissions.CLEARINVENTORY_OTHERS.isAuthorized(user))
|
||||
{
|
||||
//TODO: Fix fringe user match case.
|
||||
if (args[0].length() >= 3)
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.earth2me.essentials.commands;
|
|||
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import java.util.Locale;
|
||||
import lombok.Cleanup;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
@ -34,7 +35,7 @@ public class Commanddelhome extends EssentialsCommand
|
|||
expandedArg = args;
|
||||
}
|
||||
|
||||
if (expandedArg.length > 1 && (user == null || user.isAuthorized("essentials.delhome.others")))
|
||||
if (expandedArg.length > 1 && (user == null || Permissions.DELHOME_OTHERS.isAuthorized(user)))
|
||||
{
|
||||
user = getPlayer(expandedArg, 0, true);
|
||||
name = expandedArg[1];
|
||||
|
|
|
@ -4,6 +4,7 @@ import com.earth2me.essentials.Enchantments;
|
|||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.Util;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.EnchantPermissions;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
@ -29,7 +30,7 @@ public class Commandenchant extends EssentialsCommand
|
|||
for (Map.Entry<String, Enchantment> entry : Enchantments.entrySet())
|
||||
{
|
||||
final String enchantmentName = entry.getValue().getName().toLowerCase(Locale.ENGLISH);
|
||||
if (enchantmentslist.contains(enchantmentName) || user.isAuthorized("essentials.enchant." + enchantmentName))
|
||||
if (enchantmentslist.contains(enchantmentName) || EnchantPermissions.getPermission(enchantmentName).isAuthorized(user))
|
||||
{
|
||||
enchantmentslist.add(entry.getKey());
|
||||
//enchantmentslist.add(enchantmentName);
|
||||
|
@ -84,7 +85,7 @@ public class Commandenchant extends EssentialsCommand
|
|||
throw new Exception(_("enchantmentNotFound"));
|
||||
}
|
||||
final String enchantmentName = enchantment.getName().toLowerCase(Locale.ENGLISH);
|
||||
if (user != null && !user.isAuthorized("essentials.enchant." + enchantmentName))
|
||||
if (user != null && !EnchantPermissions.getPermission(enchantmentName).isAuthorized(user))
|
||||
{
|
||||
throw new Exception(_("enchantmentPerm", enchantmentName));
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.earth2me.essentials.commands;
|
|||
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import java.util.List;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
@ -12,7 +13,7 @@ public class Commandfeed extends EssentialsCommand
|
|||
@Override
|
||||
protected void run(final IUser user, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
if (args.length > 0 && user.isAuthorized("essentials.feed.others"))
|
||||
if (args.length > 0 && Permissions.FEED_OTHERS.isAuthorized(user))
|
||||
{
|
||||
feedOtherPlayers(user, args[0]);
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.earth2me.essentials.commands;
|
|||
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import java.util.Locale;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
@ -24,7 +25,7 @@ public class Commandgamemode extends EssentialsCommand
|
|||
@Override
|
||||
protected void run(final IUser user, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
if (args.length > 0 && !args[0].trim().isEmpty() && user.isAuthorized("essentials.gamemode.others"))
|
||||
if (args.length > 0 && !args[0].trim().isEmpty() && Permissions.GAMEMODE_OTHERS.isAuthorized(user))
|
||||
{
|
||||
gamemodeOtherPlayers(user, args[0]);
|
||||
return;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.earth2me.essentials.commands;
|
||||
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
|
@ -10,7 +11,7 @@ public class Commandgetpos extends EssentialsCommand
|
|||
@Override
|
||||
public void run(final IUser user, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
if (args.length > 0 && user.isAuthorized("essentials.getpos.others"))
|
||||
if (args.length > 0 && Permissions.GETPOS_OTHERS.isAuthorized(user))
|
||||
{
|
||||
final IUser otherUser = getPlayer(args, 0);
|
||||
outputPosition(user, otherUser.getLocation(), user.getLocation());
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.earth2me.essentials.commands;
|
||||
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.GivePermissions;
|
||||
import java.util.Locale;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
|
@ -26,9 +27,7 @@ public class Commandgive extends EssentialsCommand
|
|||
final ItemStack stack = ess.getItemDb().get(args[1], giveTo);
|
||||
|
||||
final String itemname = stack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", "");
|
||||
if (sender instanceof Player
|
||||
&& (!ess.getUser((Player)sender).isAuthorized("essentials.give.item-" + itemname)
|
||||
&& !ess.getUser((Player)sender).isAuthorized("essentials.give.item-" + stack.getTypeId())))
|
||||
if (!GivePermissions.getPermission(stack.getType()).isAuthorized(sender))
|
||||
{
|
||||
throw new Exception(ChatColor.RED + "You are not allowed to spawn the item " + itemname);
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.earth2me.essentials.commands;
|
|||
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
@ -22,7 +23,7 @@ public class Commandgod extends EssentialsCommand
|
|||
@Override
|
||||
protected void run(final IUser user, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
if (args.length > 0 && !args[0].trim().isEmpty() && user.isAuthorized("essentials.god.others"))
|
||||
if (args.length > 0 && !args[0].trim().isEmpty() && Permissions.GOD_OTHERS.isAuthorized(user))
|
||||
{
|
||||
godOtherPlayers(user, args[0]);
|
||||
return;
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.earth2me.essentials.commands;
|
|||
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import com.earth2me.essentials.user.UserData.TimestampType;
|
||||
import java.util.List;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
@ -14,15 +15,15 @@ public class Commandheal extends EssentialsCommand
|
|||
public void run(final IUser user, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
|
||||
if (args.length > 0 && user.isAuthorized("essentials.heal.others"))
|
||||
if (args.length > 0 && Permissions.HEAL_OTHERS.isAuthorized(user))
|
||||
{
|
||||
user.checkCooldown(TimestampType.LASTHEAL, ess.getGroups().getHealCooldown(user), true, "essentials.heal.cooldown.bypass");
|
||||
user.checkCooldown(TimestampType.LASTHEAL, ess.getGroups().getHealCooldown(user), true, Permissions.HEAL_COOLDOWN_BYPASS);
|
||||
|
||||
healOtherPlayers(user, args[0]);
|
||||
return;
|
||||
}
|
||||
|
||||
user.checkCooldown(TimestampType.LASTHEAL, ess.getGroups().getHealCooldown(user), true, "essentials.heal.cooldown.bypass");
|
||||
user.checkCooldown(TimestampType.LASTHEAL, ess.getGroups().getHealCooldown(user), true, Permissions.HEAL_COOLDOWN_BYPASS);
|
||||
|
||||
user.setHealth(20);
|
||||
user.setFoodLevel(20);
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.earth2me.essentials.commands;
|
|||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.Util;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import java.util.logging.Level;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
@ -22,7 +23,7 @@ public class Commandhelpop extends EssentialsCommand
|
|||
for (Player onlinePlayer : server.getOnlinePlayers())
|
||||
{
|
||||
final IUser player = ess.getUser(onlinePlayer);
|
||||
if (!player.isAuthorized("essentials.helpop.receive"))
|
||||
if (!Permissions.HELPOP_RECEIVE.isAuthorized(player))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ import static com.earth2me.essentials.I18n._;
|
|||
import com.earth2me.essentials.Trade;
|
||||
import com.earth2me.essentials.Util;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import org.bukkit.Location;
|
||||
|
@ -24,7 +25,7 @@ public class Commandhome extends EssentialsCommand
|
|||
if (args.length > 0)
|
||||
{
|
||||
nameParts = args[0].split(":");
|
||||
if (nameParts[0].length() == args[0].length() || !user.isAuthorized("essentials.home.others"))
|
||||
if (nameParts[0].length() == args[0].length() || !Permissions.HOME_OTHERS.isAuthorized(user))
|
||||
{
|
||||
homeName = nameParts[0];
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.earth2me.essentials.commands;
|
|||
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.ItemPermissions;
|
||||
import java.util.Locale;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
|
@ -20,8 +21,7 @@ public class Commanditem extends EssentialsCommand
|
|||
final ItemStack stack = ess.getItemDb().get(args[0], user);
|
||||
|
||||
final String itemname = stack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", "");
|
||||
if (!user.isAuthorized("essentials.itemspawn.item-" + itemname)
|
||||
&& !user.isAuthorized("essentials.itemspawn.item-" + stack.getTypeId()))
|
||||
if (!ItemPermissions.getPermission(stack.getType()).isAuthorized(user))
|
||||
{
|
||||
throw new Exception(_("cantSpawnItem", itemname));
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.earth2me.essentials.commands;
|
|||
import com.earth2me.essentials.Console;
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
@ -18,7 +19,7 @@ public class Commandkick extends EssentialsCommand
|
|||
}
|
||||
|
||||
final IUser user = getPlayer(args, 0);
|
||||
if (user.isAuthorized("essentials.kick.exempt"))
|
||||
if (Permissions.KICK_EXEMPT.isAuthorized(user))
|
||||
{
|
||||
throw new Exception(_("kickExempt"));
|
||||
}
|
||||
|
@ -29,7 +30,7 @@ public class Commandkick extends EssentialsCommand
|
|||
for (Player onlinePlayer : server.getOnlinePlayers())
|
||||
{
|
||||
final IUser player = ess.getUser(onlinePlayer);
|
||||
if (player.isAuthorized("essentials.kick.notify"))
|
||||
if (Permissions.KICK_NOTIFY.isAuthorized(player))
|
||||
{
|
||||
onlinePlayer.sendMessage(_("playerKicked", senderName, user.getName(), kickReason));
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ import static com.earth2me.essentials.I18n._;
|
|||
import com.earth2me.essentials.Trade;
|
||||
import com.earth2me.essentials.Util;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.KitPermissions;
|
||||
import com.earth2me.essentials.settings.Kit;
|
||||
import java.util.Collection;
|
||||
import java.util.Locale;
|
||||
|
@ -25,7 +26,7 @@ public class Commandkit extends EssentialsCommand
|
|||
{
|
||||
for (String kitName : kitList)
|
||||
{
|
||||
if (!user.isAuthorized("essentials.kit." + kitName))
|
||||
if (!KitPermissions.getPermission(kitName).isAuthorized(user))
|
||||
{
|
||||
kitList.remove(kitName);
|
||||
}
|
||||
|
@ -39,7 +40,7 @@ public class Commandkit extends EssentialsCommand
|
|||
final String kitName = args[0].toLowerCase(Locale.ENGLISH);
|
||||
final Kit kit = ess.getKits().getKit(kitName);
|
||||
|
||||
if (!user.isAuthorized("essentials.kit." + kitName))
|
||||
if (!KitPermissions.getPermission(kitName).isAuthorized(user))
|
||||
{
|
||||
throw new Exception(_("noKitPermission", "essentials.kit." + kitName));
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.earth2me.essentials.commands;
|
|||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.api.ISettings;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import java.util.*;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
@ -14,14 +15,7 @@ public class Commandlist extends EssentialsCommand
|
|||
public void run(final CommandSender sender, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
boolean showhidden = false;
|
||||
if (sender instanceof Player)
|
||||
{
|
||||
if (ess.getUser((Player)sender).isAuthorized("essentials.list.hidden"))
|
||||
{
|
||||
showhidden = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
if (Permissions.LIST_HIDDEN.isAuthorized(sender))
|
||||
{
|
||||
showhidden = true;
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.earth2me.essentials.commands;
|
|||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.Util;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import java.util.List;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
@ -31,7 +32,7 @@ public class Commandmail extends EssentialsCommand
|
|||
}
|
||||
if (args.length >= 3 && "send".equalsIgnoreCase(args[0]))
|
||||
{
|
||||
if (!user.isAuthorized("essentials.mail.send"))
|
||||
if (!Permissions.MAIL_SEND.isAuthorized(user))
|
||||
{
|
||||
throw new Exception(_("noPerm", "essentials.mail.send"));
|
||||
}
|
||||
|
@ -59,7 +60,7 @@ public class Commandmail extends EssentialsCommand
|
|||
}
|
||||
if (args.length > 1 && "sendall".equalsIgnoreCase(args[0]))
|
||||
{
|
||||
if (!user.isAuthorized("essentials.mail.sendall"))
|
||||
if (!Permissions.MAIL_SENDALL.isAuthorized(user))
|
||||
{
|
||||
throw new Exception(_("noPerm", "essentials.mail.sendall"));
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.earth2me.essentials.commands;
|
|||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.Util;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
|
||||
|
||||
public class Commandme extends EssentialsCommand
|
||||
|
@ -21,7 +22,7 @@ public class Commandme extends EssentialsCommand
|
|||
}
|
||||
|
||||
String message = getFinalArg(args, 0);
|
||||
if (user.isAuthorized("essentials.chat.color"))
|
||||
if (Permissions.CHAT_COLOR.isAuthorized(user))
|
||||
{
|
||||
message = Util.replaceColor(message);
|
||||
}
|
||||
|
|
|
@ -3,7 +3,10 @@ package com.earth2me.essentials.commands;
|
|||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.api.ISettings;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.ItemPermissions;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import java.util.Locale;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
|
||||
|
@ -30,19 +33,18 @@ public class Commandmore extends EssentialsCommand
|
|||
{
|
||||
settings.unlock();
|
||||
}
|
||||
if (stack.getAmount() >= ((user.isAuthorized("essentials.oversizedstacks"))
|
||||
if (stack.getAmount() >= (Permissions.OVERSIZEDSTACKS.isAuthorized(user)
|
||||
? oversizedStackSize
|
||||
: defaultStackSize > 0 ? defaultStackSize : stack.getMaxStackSize()))
|
||||
{
|
||||
throw new NoChargeException();
|
||||
}
|
||||
final String itemname = stack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", "");
|
||||
if (!user.isAuthorized("essentials.itemspawn.item-" + itemname)
|
||||
&& !user.isAuthorized("essentials.itemspawn.item-" + stack.getTypeId()))
|
||||
if (!ItemPermissions.getPermission(stack.getType()).isAuthorized(user))
|
||||
{
|
||||
throw new Exception(_("cantSpawnItem", itemname));
|
||||
}
|
||||
if (user.isAuthorized("essentials.oversizedstacks"))
|
||||
if (Permissions.OVERSIZEDSTACKS.isAuthorized(user))
|
||||
{
|
||||
stack.setAmount(oversizedStackSize);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import static com.earth2me.essentials.I18n._;
|
|||
import com.earth2me.essentials.Util;
|
||||
import com.earth2me.essentials.api.IReplyTo;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import java.util.List;
|
||||
import lombok.Cleanup;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
@ -31,7 +32,7 @@ public class Commandmsg extends EssentialsCommand
|
|||
{
|
||||
throw new Exception(_("voiceSilenced"));
|
||||
}
|
||||
if (user.isAuthorized("essentials.msg.color"))
|
||||
if (Permissions.MSG_COLOR.isAuthorized(user))
|
||||
{
|
||||
message = Util.replaceColor(message);
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.earth2me.essentials.commands;
|
|||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.Util;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import com.earth2me.essentials.user.UserData.TimestampType;
|
||||
import lombok.Cleanup;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
@ -21,7 +22,7 @@ public class Commandmute extends EssentialsCommand
|
|||
@Cleanup
|
||||
final IUser player = getPlayer(args, 0, true);
|
||||
player.acquireReadLock();
|
||||
if (!player.getData().isMuted() && player.isAuthorized("essentials.mute.exempt"))
|
||||
if (!player.getData().isMuted() && Permissions.MUTE_EXEMPT.isAuthorized(player))
|
||||
{
|
||||
throw new Exception(_("muteExempt"));
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.earth2me.essentials.commands;
|
|||
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
@ -43,7 +44,7 @@ public class Commandnear extends EssentialsCommand
|
|||
{
|
||||
}
|
||||
}
|
||||
if (otherUser == null || user.isAuthorized("essentials.near.others"))
|
||||
if (otherUser == null || Permissions.NEAR_OTHERS.isAuthorized(user))
|
||||
{
|
||||
user.sendMessage(_("nearbyPlayers", getLocal(otherUser == null ? user : otherUser, radius)));
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ import static com.earth2me.essentials.I18n._;
|
|||
import com.earth2me.essentials.Util;
|
||||
import com.earth2me.essentials.api.ISettings;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import java.util.Locale;
|
||||
import lombok.Cleanup;
|
||||
import org.bukkit.Server;
|
||||
|
@ -29,7 +30,7 @@ public class Commandnick extends EssentialsCommand
|
|||
}
|
||||
if (args.length > 1)
|
||||
{
|
||||
if (!user.isAuthorized("essentials.nick.others"))
|
||||
if (!Permissions.NICK_OTHERS.isAuthorized(user))
|
||||
{
|
||||
throw new Exception(_("nickOthersPermission"));
|
||||
}
|
||||
|
@ -67,7 +68,7 @@ public class Commandnick extends EssentialsCommand
|
|||
|
||||
private String formatNickname(final IUser user, final String nick)
|
||||
{
|
||||
if (user == null || user.isAuthorized("essentials.nick.color"))
|
||||
if (user == null || Permissions.NICK_COLOR.isAuthorized(user))
|
||||
{
|
||||
return nick.replace('&', '\u00a7').replaceAll("\u00a7+k", "");
|
||||
} else {
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.earth2me.essentials.commands;
|
|||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.Util;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
@ -71,7 +72,7 @@ public class Commandpowertool extends EssentialsCommand
|
|||
{
|
||||
if (command.startsWith("a:"))
|
||||
{
|
||||
if (!user.isAuthorized("essentials.powertool.append"))
|
||||
if (!Permissions.POWERTOOL_APPEND.isAuthorized(user))
|
||||
{
|
||||
throw new Exception(_("noPerm", "essentials.powertool.append"));
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.earth2me.essentials.commands;
|
|||
import com.earth2me.essentials.DescParseTickFormat;
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import java.util.*;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
@ -40,7 +41,7 @@ public class Commandptime extends EssentialsCommand
|
|||
}
|
||||
|
||||
IUser user = sender instanceof Player ? ess.getUser((Player)sender) : null;
|
||||
if ((!users.contains(user) || users.size() > 1) && user != null && !user.isAuthorized("essentials.ptime.others"))
|
||||
if ((!users.contains(user) || users.size() > 1) && user != null && !Permissions.PTIME_OTHERS.isAuthorized(user))
|
||||
{
|
||||
user.sendMessage(_("pTimeOthersPermission"));
|
||||
return;
|
||||
|
|
|
@ -5,6 +5,7 @@ import static com.earth2me.essentials.I18n._;
|
|||
import com.earth2me.essentials.Util;
|
||||
import com.earth2me.essentials.api.IReplyTo;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
@ -26,7 +27,7 @@ public class Commandr extends EssentialsCommand
|
|||
if (sender instanceof Player)
|
||||
{
|
||||
IUser user = ess.getUser((Player)sender);
|
||||
if (user.isAuthorized("essentials.msg.color"))
|
||||
if (Permissions.MSG_COLOR.isAuthorized(user))
|
||||
{
|
||||
message = Util.replaceColor(message);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import static com.earth2me.essentials.I18n._;
|
|||
import com.earth2me.essentials.Trade;
|
||||
import com.earth2me.essentials.Util;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
@ -31,7 +32,7 @@ public class Commandrepair extends EssentialsCommand
|
|||
}
|
||||
|
||||
if (!item.getEnchantments().isEmpty()
|
||||
&& !user.isAuthorized("essentials.repair.enchanted"))
|
||||
&& !Permissions.REPAIR_ENCHANTED.isAuthorized(user))
|
||||
{
|
||||
throw new Exception(_("repairEnchanted"));
|
||||
}
|
||||
|
@ -52,7 +53,7 @@ public class Commandrepair extends EssentialsCommand
|
|||
final List<String> repaired = new ArrayList<String>();
|
||||
repairItems(user.getInventory().getContents(), user, repaired);
|
||||
|
||||
if (user.isAuthorized("essentials.repair.armor"))
|
||||
if (Permissions.REPAIR_ARMOR.isAuthorized(user))
|
||||
{
|
||||
repairItems(user.getInventory().getArmorContents(), user, repaired);
|
||||
}
|
||||
|
@ -109,7 +110,7 @@ public class Commandrepair extends EssentialsCommand
|
|||
continue;
|
||||
}
|
||||
if (!item.getEnchantments().isEmpty()
|
||||
&& !user.isAuthorized("essentials.repair.enchanted"))
|
||||
&& !Permissions.REPAIR_ENCHANTED.isAuthorized(user))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.earth2me.essentials.commands;
|
|||
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import lombok.Cleanup;
|
||||
|
@ -24,12 +25,12 @@ public class Commandsethome extends EssentialsCommand
|
|||
|
||||
if (args.length < 2)
|
||||
{
|
||||
if (user.isAuthorized("essentials.sethome.multiple"))
|
||||
if (Permissions.SETHOME_MULTIPLE.isAuthorized(user))
|
||||
{
|
||||
if ("bed".equals(args[0].toLowerCase(Locale.ENGLISH))) {
|
||||
throw new NotEnoughArgumentsException();
|
||||
}
|
||||
if ((user.isAuthorized("essentials.sethome.multiple.unlimited")) || (user.getHomes().size() < ess.getGroups().getHomeLimit(user))
|
||||
if ((user.getHomes().size() < ess.getGroups().getHomeLimit(user))
|
||||
|| (user.getHomes().contains(args[0].toLowerCase(Locale.ENGLISH))))
|
||||
{
|
||||
user.acquireWriteLock();
|
||||
|
@ -52,7 +53,7 @@ public class Commandsethome extends EssentialsCommand
|
|||
}
|
||||
else
|
||||
{
|
||||
if (user.isAuthorized("essentials.sethome.others"))
|
||||
if (Permissions.SETHOME_OTHERS.isAuthorized(user))
|
||||
{
|
||||
@Cleanup
|
||||
IUser usersHome = ess.getUser(ess.getServer().getPlayer(args[0]));
|
||||
|
@ -61,7 +62,7 @@ public class Commandsethome extends EssentialsCommand
|
|||
throw new Exception(_("playerNotFound"));
|
||||
}
|
||||
String name = args[1].toLowerCase(Locale.ENGLISH);
|
||||
if (!user.isAuthorized("essentials.sethome.multiple"))
|
||||
if (!Permissions.SETHOME_MULTIPLE.isAuthorized(user))
|
||||
{
|
||||
name = "home";
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ import static com.earth2me.essentials.I18n._;
|
|||
import com.earth2me.essentials.Mob;
|
||||
import com.earth2me.essentials.Util;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.SpawnerPermissions;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.CreatureSpawner;
|
||||
|
@ -36,7 +37,7 @@ public class Commandspawner extends EssentialsCommand
|
|||
user.sendMessage(_("invalidMob"));
|
||||
return;
|
||||
}
|
||||
if (!user.isAuthorized("essentials.spawner." + mob.name.toLowerCase()))
|
||||
if (!SpawnerPermissions.getPermission(mob.name).isAuthorized(user))
|
||||
{
|
||||
throw new Exception(_("unableToSpawnMob"));
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ import com.earth2me.essentials.Mob.MobException;
|
|||
import com.earth2me.essentials.Util;
|
||||
import com.earth2me.essentials.api.ISettings;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.SpawnmobPermissions;
|
||||
import java.util.Locale;
|
||||
import java.util.Random;
|
||||
import org.bukkit.DyeColor;
|
||||
|
@ -57,7 +58,7 @@ public class Commandspawnmob extends EssentialsCommand
|
|||
throw new Exception(_("invalidMob"));
|
||||
}
|
||||
|
||||
if (!user.isAuthorized("essentials.spawnmob." + mob.name.toLowerCase()))
|
||||
if (!SpawnmobPermissions.getPermission(mob.name).isAuthorized(user))
|
||||
{
|
||||
throw new Exception(_("noPermToSpawnMob"));
|
||||
}
|
||||
|
@ -92,7 +93,7 @@ public class Commandspawnmob extends EssentialsCommand
|
|||
return;
|
||||
}
|
||||
|
||||
if (!user.isAuthorized("essentials.spawnmob." + mobMount.name.toLowerCase()))
|
||||
if (!SpawnmobPermissions.getPermission(mobMount.name).isAuthorized(user))
|
||||
{
|
||||
throw new Exception(_("noPermToSpawnMob"));
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ import com.earth2me.essentials.Console;
|
|||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.Util;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import com.earth2me.essentials.user.Ban;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
@ -22,8 +23,7 @@ public class Commandtempban extends EssentialsCommand
|
|||
final IUser user = getPlayer(args, 0, true);
|
||||
if (user.getBase() instanceof OfflinePlayer)
|
||||
{
|
||||
if (sender instanceof Player
|
||||
&& !ess.getUser((Player)sender).isAuthorized("essentials.tempban.offline"))
|
||||
if (Permissions.TEMPBAN_OFFLINE.isAuthorized(sender))
|
||||
{
|
||||
sender.sendMessage(_("tempbanExempt"));
|
||||
return;
|
||||
|
@ -31,7 +31,7 @@ public class Commandtempban extends EssentialsCommand
|
|||
}
|
||||
else
|
||||
{
|
||||
if (user.isAuthorized("essentials.tempban.exempt"))
|
||||
if (Permissions.TEMPBAN_EXEMPT.isAuthorized(user))
|
||||
{
|
||||
sender.sendMessage(_("tempbanExempt"));
|
||||
return;
|
||||
|
@ -52,7 +52,7 @@ public class Commandtempban extends EssentialsCommand
|
|||
for (Player onlinePlayer : server.getOnlinePlayers())
|
||||
{
|
||||
final IUser player = ess.getUser(onlinePlayer);
|
||||
if (player.isAuthorized("essentials.ban.notify"))
|
||||
if (Permissions.BAN_NOTIFY.isAuthorized(player))
|
||||
{
|
||||
onlinePlayer.sendMessage(_("playerBanned", senderName, user.getName(), banReason));
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.earth2me.essentials.commands;
|
|||
import com.earth2me.essentials.DescParseTickFormat;
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import java.util.*;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
@ -29,10 +30,9 @@ public class Commandtime extends EssentialsCommand
|
|||
return;
|
||||
}
|
||||
|
||||
final IUser user = sender instanceof Player ? ess.getUser((Player)sender) : null;
|
||||
if (user != null && !user.isAuthorized("essentials.time.set"))
|
||||
if (Permissions.TIME_SET.isAuthorized(sender))
|
||||
{
|
||||
user.sendMessage(_("timeSetPermission"));
|
||||
sender.sendMessage(_("timeSetPermission"));
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.earth2me.essentials.commands;
|
|||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.Util;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import com.earth2me.essentials.user.UserData.TimestampType;
|
||||
import lombok.Cleanup;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
|
@ -28,8 +29,7 @@ public class Commandtogglejail extends EssentialsCommand
|
|||
{
|
||||
if (player.getBase() instanceof OfflinePlayer)
|
||||
{
|
||||
if (sender instanceof Player
|
||||
&& !ess.getUser((Player)sender).isAuthorized("essentials.togglejail.offline"))
|
||||
if (Permissions.TOGGLEJAIL_OFFLINE.isAuthorized(sender))
|
||||
{
|
||||
sender.sendMessage(_("mayNotJail"));
|
||||
return;
|
||||
|
@ -37,7 +37,7 @@ public class Commandtogglejail extends EssentialsCommand
|
|||
}
|
||||
else
|
||||
{
|
||||
if (player.isAuthorized("essentials.jail.exempt"))
|
||||
if (Permissions.JAIL_EXEMPT.isAuthorized(player))
|
||||
{
|
||||
sender.sendMessage(_("mayNotJail"));
|
||||
return;
|
||||
|
|
|
@ -4,6 +4,7 @@ import com.earth2me.essentials.Console;
|
|||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.Trade;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import lombok.Cleanup;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
||||
|
@ -34,7 +35,7 @@ public class Commandtp extends EssentialsCommand
|
|||
throw new NoChargeException();
|
||||
|
||||
default:
|
||||
if (!user.isAuthorized("essentials.tpohere"))
|
||||
if (!Permissions.TPOHERE.isAuthorized(user))
|
||||
{
|
||||
//TODO: Translate this
|
||||
throw new Exception("You need access to /tpohere to teleport other players.");
|
||||
|
|
|
@ -4,6 +4,7 @@ import static com.earth2me.essentials.I18n._;
|
|||
import com.earth2me.essentials.Trade;
|
||||
import com.earth2me.essentials.api.ISettings;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
||||
|
||||
|
@ -20,7 +21,7 @@ public class Commandtpaccept extends EssentialsCommand
|
|||
|
||||
final IUser target = user.getTeleportRequester();
|
||||
if (target.getBase() instanceof OfflinePlayer
|
||||
|| (user.isTeleportRequestHere() && !target.isAuthorized("essentials.tpahere")))
|
||||
|| (user.isTeleportRequestHere() && !Permissions.TPAHERE.isAuthorized(target)))
|
||||
{
|
||||
throw new Exception(_("noPendingRequest"));
|
||||
}
|
||||
|
|
|
@ -2,6 +2,8 @@ package com.earth2me.essentials.commands;
|
|||
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import com.earth2me.essentials.perm.Permissions2Handler;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
||||
|
||||
|
@ -25,7 +27,7 @@ public class Commandtpo extends EssentialsCommand
|
|||
}
|
||||
|
||||
// Verify permission
|
||||
if (!player.isHidden() || user.isAuthorized("essentials.teleport.hidden"))
|
||||
if (!player.isHidden() || Permissions.TELEPORT_HIDDEN.isAuthorized(user))
|
||||
{
|
||||
user.getTeleport().now(player, false, TeleportCause.COMMAND);
|
||||
user.sendMessage(_("teleporting"));
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.earth2me.essentials.commands;
|
|||
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
||||
|
||||
|
@ -26,7 +27,7 @@ public class Commandtpohere extends EssentialsCommand
|
|||
}
|
||||
|
||||
// Verify permission
|
||||
if (!player.isHidden() || user.isAuthorized("essentials.teleport.hidden"))
|
||||
if (!player.isHidden() || Permissions.TELEPORT_HIDDEN.isAuthorized(user))
|
||||
{
|
||||
player.getTeleport().now(user, false, TeleportCause.COMMAND);
|
||||
user.sendMessage(_("teleporting"));
|
||||
|
|
|
@ -3,6 +3,8 @@ package com.earth2me.essentials.commands;
|
|||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.craftbukkit.InventoryWorkaround;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import com.earth2me.essentials.perm.UnlimitedItemPermissions;
|
||||
import java.util.Locale;
|
||||
import java.util.Set;
|
||||
import lombok.Cleanup;
|
||||
|
@ -23,7 +25,7 @@ public class Commandunlimited extends EssentialsCommand
|
|||
@Cleanup
|
||||
IUser target = user;
|
||||
|
||||
if (args.length > 1 && user.isAuthorized("essentials.unlimited.others"))
|
||||
if (args.length > 1 && Permissions.UNLIMITED_OTHERS.isAuthorized(user))
|
||||
{
|
||||
target = getPlayer(args, 1);
|
||||
target.acquireReadLock();
|
||||
|
@ -80,8 +82,7 @@ public class Commandunlimited extends EssentialsCommand
|
|||
stack.setAmount(Math.min(stack.getType().getMaxStackSize(), 2));
|
||||
|
||||
final String itemname = stack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", "");
|
||||
if (!user.isAuthorized("essentials.unlimited.item-" + itemname)
|
||||
&& !user.isAuthorized("essentials.unlimited.item-" + stack.getTypeId()))
|
||||
if (!UnlimitedItemPermissions.getPermission(stack.getType()).isAuthorized(user))
|
||||
{
|
||||
throw new Exception(_("unlimitedItemPermission", itemname));
|
||||
}
|
||||
|
|
|
@ -5,6 +5,8 @@ import com.earth2me.essentials.Trade;
|
|||
import com.earth2me.essentials.Util;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.api.IWarps;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import com.earth2me.essentials.perm.WarpPermissions;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
@ -21,7 +23,7 @@ public class Commandwarp extends EssentialsCommand
|
|||
{
|
||||
if (args.length == 0 || args[0].matches("[0-9]+"))
|
||||
{
|
||||
if (!user.isAuthorized("essentials.warp.list"))
|
||||
if (!Permissions.WARP_LIST.isAuthorized(user))
|
||||
{
|
||||
throw new Exception(_("warpListPermission"));
|
||||
}
|
||||
|
@ -31,7 +33,7 @@ public class Commandwarp extends EssentialsCommand
|
|||
if (args.length > 0)
|
||||
{
|
||||
IUser otherUser = null;
|
||||
if (args.length == 2 && user.isAuthorized("essentials.warp.otherplayers"))
|
||||
if (args.length == 2 && Permissions.WARP_OTHERS.isAuthorized(user))
|
||||
{
|
||||
otherUser = ess.getUser(server.getPlayer(args[1]));
|
||||
if (otherUser == null)
|
||||
|
@ -80,7 +82,7 @@ public class Commandwarp extends EssentialsCommand
|
|||
while (iterator.hasNext())
|
||||
{
|
||||
final String warpName = iterator.next();
|
||||
if (!((IUser)sender).isAuthorized("essentials.warp." + warpName))
|
||||
if (!WarpPermissions.getPermission(warpName).isAuthorized(sender))
|
||||
{
|
||||
iterator.remove();
|
||||
}
|
||||
|
@ -111,7 +113,7 @@ public class Commandwarp extends EssentialsCommand
|
|||
final Trade charge = new Trade(commandName, ess);
|
||||
charge.isAffordableFor(user);
|
||||
|
||||
if (user.isAuthorized("essentials.warp." + name))
|
||||
if (WarpPermissions.getPermission(name).isAuthorized(user))
|
||||
{
|
||||
user.getTeleport().warp(name, charge, TeleportCause.COMMAND);
|
||||
return;
|
||||
|
|
|
@ -4,6 +4,7 @@ import static com.earth2me.essentials.I18n._;
|
|||
import com.earth2me.essentials.Util;
|
||||
import com.earth2me.essentials.api.ISettings;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import java.util.Locale;
|
||||
import lombok.Cleanup;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
@ -22,7 +23,7 @@ public class Commandwhois extends EssentialsCommand
|
|||
boolean showhidden = false;
|
||||
if (sender instanceof Player)
|
||||
{
|
||||
if (ess.getUser((Player)sender).isAuthorized("essentials.list.hidden"))
|
||||
if (Permissions.LIST_HIDDEN.isAuthorized(sender))
|
||||
{
|
||||
showhidden = true;
|
||||
}
|
||||
|
@ -67,7 +68,7 @@ public class Commandwhois extends EssentialsCommand
|
|||
sender.sendMessage(_("whoisIPAddress", user.getAddress().getAddress().toString()));
|
||||
final String location = user.getData().getGeolocation();
|
||||
if (location != null
|
||||
&& (sender instanceof Player ? ess.getUser((Player)sender).isAuthorized("essentials.geoip.show") : true))
|
||||
&& Permissions.GEOIP_SHOW.isAuthorized(sender))
|
||||
{
|
||||
sender.sendMessage(_("whoisGeoLocation", location));
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.earth2me.essentials.commands;
|
|||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.Trade;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.WorldPermissions;
|
||||
import java.util.List;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
|
@ -49,7 +50,7 @@ public class Commandworld extends EssentialsCommand
|
|||
}
|
||||
|
||||
|
||||
if (!user.isAuthorized("essentials.world." + world.getName()))
|
||||
if (!WorldPermissions.getPermission(world.getName()).isAuthorized(user))
|
||||
{
|
||||
user.sendMessage(_("invalidWorld")); //TODO: Make a "world teleport denied" translation
|
||||
throw new NoChargeException();
|
||||
|
|
|
@ -21,13 +21,14 @@ public abstract class EssentialsCommand extends AbstractSuperpermsPermission imp
|
|||
protected transient IEssentials ess;
|
||||
protected transient IEssentialsModule module;
|
||||
protected transient Server server;
|
||||
protected final static Logger logger = Logger.getLogger("Minecraft");
|
||||
protected transient Logger logger;
|
||||
private transient String permission;
|
||||
private transient Permission bukkitPerm;
|
||||
|
||||
public void init(final IEssentials ess, final String commandName)
|
||||
{
|
||||
this.ess = ess;
|
||||
this.logger = ess.getLogger();
|
||||
this.server = ess.getServer();
|
||||
this.commandName = commandName;
|
||||
this.permission = "essentials." + commandName;
|
||||
|
|
|
@ -1,254 +0,0 @@
|
|||
package com.earth2me.essentials.craftbukkit;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.*;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.event.world.WorldLoadEvent;
|
||||
import org.bukkit.event.world.WorldUnloadEvent;
|
||||
|
||||
|
||||
public class BetterLocation extends Location
|
||||
{
|
||||
private transient String worldName;
|
||||
private static BetterLocationListener listener = new BetterLocationListener();
|
||||
|
||||
public static BetterLocationListener getListener()
|
||||
{
|
||||
return listener;
|
||||
}
|
||||
|
||||
public static void cleanup()
|
||||
{
|
||||
synchronized (listener.locationMap)
|
||||
{
|
||||
listener.locationMap.clear();
|
||||
}
|
||||
}
|
||||
|
||||
public BetterLocation(final String worldName, final double x, final double y, final double z)
|
||||
{
|
||||
super(Bukkit.getWorld(worldName), x, y, z);
|
||||
this.worldName = worldName;
|
||||
addToMap(this);
|
||||
}
|
||||
|
||||
public BetterLocation(final String worldName, final double x, final double y,
|
||||
final double z, final float yaw, final float pitch)
|
||||
{
|
||||
super(Bukkit.getWorld(worldName), x, y, z, yaw, pitch);
|
||||
this.worldName = worldName;
|
||||
addToMap(this);
|
||||
}
|
||||
|
||||
public BetterLocation(final World world, final double x, final double y, final double z)
|
||||
{
|
||||
super(world, x, y, z);
|
||||
if (world == null)
|
||||
{
|
||||
throw new WorldNotLoadedException();
|
||||
}
|
||||
this.worldName = world.getName();
|
||||
addToMap(this);
|
||||
}
|
||||
|
||||
public BetterLocation(final World world, final double x, final double y,
|
||||
final double z, final float yaw, final float pitch)
|
||||
{
|
||||
super(world, x, y, z, yaw, pitch);
|
||||
if (world == null)
|
||||
{
|
||||
throw new WorldNotLoadedException();
|
||||
}
|
||||
this.worldName = world.getName();
|
||||
addToMap(this);
|
||||
}
|
||||
|
||||
public BetterLocation(final Location location)
|
||||
{
|
||||
super(location.getWorld(), location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch());
|
||||
if (location.getWorld() == null)
|
||||
{
|
||||
throw new WorldNotLoadedException();
|
||||
}
|
||||
this.worldName = location.getWorld().getName();
|
||||
addToMap(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public World getWorld()
|
||||
{
|
||||
World world = super.getWorld();
|
||||
if (world == null)
|
||||
{
|
||||
world = Bukkit.getWorld(worldName);
|
||||
}
|
||||
if (world == null)
|
||||
{
|
||||
throw new WorldNotLoadedException();
|
||||
}
|
||||
else
|
||||
{
|
||||
super.setWorld(world);
|
||||
}
|
||||
return world;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setWorld(final World world)
|
||||
{
|
||||
if (world == null)
|
||||
{
|
||||
throw new WorldNotLoadedException();
|
||||
}
|
||||
if (!world.getName().equals(this.worldName))
|
||||
{
|
||||
getListener().removeLocation(this);
|
||||
this.worldName = world.getName();
|
||||
addToMap(this);
|
||||
}
|
||||
super.setWorld(world);
|
||||
}
|
||||
|
||||
public String getWorldName()
|
||||
{
|
||||
return worldName;
|
||||
}
|
||||
|
||||
private void addToMap(final BetterLocation location)
|
||||
{
|
||||
synchronized (listener.locationMap)
|
||||
{
|
||||
List<WeakReference<Location>> locations = listener.locationMap.get(location.getWorldName());
|
||||
if (locations == null)
|
||||
{
|
||||
locations = new LinkedList<WeakReference<Location>>();
|
||||
listener.locationMap.put(location.getWorldName(), locations);
|
||||
}
|
||||
locations.add(new WeakReference<Location>(location));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static class WorldNotLoadedException extends RuntimeException
|
||||
{
|
||||
public WorldNotLoadedException()
|
||||
{
|
||||
super("World is not loaded.");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static class BetterLocationListener extends org.bukkit.event.world.WorldListener implements Runnable
|
||||
{
|
||||
private static Random random = new Random();
|
||||
private final transient Map<String, List<WeakReference<Location>>> locationMap = new HashMap<String, List<WeakReference<Location>>>();
|
||||
|
||||
@Override
|
||||
public void onWorldLoad(final WorldLoadEvent event)
|
||||
{
|
||||
final String worldName = event.getWorld().getName();
|
||||
synchronized (locationMap)
|
||||
{
|
||||
final List<WeakReference<Location>> locations = locationMap.get(worldName);
|
||||
if (locations != null)
|
||||
{
|
||||
for (final Iterator<WeakReference<Location>> it = locations.iterator(); it.hasNext();)
|
||||
{
|
||||
final WeakReference<Location> weakReference = it.next();
|
||||
final Location loc = weakReference.get();
|
||||
if (loc == null)
|
||||
{
|
||||
it.remove();
|
||||
}
|
||||
else
|
||||
{
|
||||
loc.setWorld(event.getWorld());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onWorldUnload(final WorldUnloadEvent event)
|
||||
{
|
||||
final String worldName = event.getWorld().getName();
|
||||
synchronized (locationMap)
|
||||
{
|
||||
final List<WeakReference<Location>> locations = locationMap.get(worldName);
|
||||
if (locations != null)
|
||||
{
|
||||
for (final Iterator<WeakReference<Location>> it = locations.iterator(); it.hasNext();)
|
||||
{
|
||||
final WeakReference<Location> weakReference = it.next();
|
||||
final Location loc = weakReference.get();
|
||||
if (loc == null)
|
||||
{
|
||||
it.remove();
|
||||
}
|
||||
else
|
||||
{
|
||||
loc.setWorld(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
synchronized (locationMap)
|
||||
{
|
||||
// Pick a world by random
|
||||
final Collection<List<WeakReference<Location>>> allWorlds = locationMap.values();
|
||||
final int randomPick = (allWorlds.isEmpty() ? 0 : random.nextInt(allWorlds.size()));
|
||||
List<WeakReference<Location>> locations = null;
|
||||
final Iterator<List<WeakReference<Location>>> iterator = allWorlds.iterator();
|
||||
for (int i = 0; iterator.hasNext() && i < randomPick; i++)
|
||||
{
|
||||
iterator.next();
|
||||
}
|
||||
if (iterator.hasNext())
|
||||
{
|
||||
locations = iterator.next();
|
||||
}
|
||||
if (locations != null)
|
||||
{
|
||||
for (final Iterator<WeakReference<Location>> it = locations.iterator(); it.hasNext();)
|
||||
{
|
||||
final WeakReference<Location> weakReference = it.next();
|
||||
final Location loc = weakReference.get();
|
||||
if (loc == null)
|
||||
{
|
||||
it.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void removeLocation(final BetterLocation location)
|
||||
{
|
||||
final String worldName = location.getWorldName();
|
||||
synchronized (locationMap)
|
||||
{
|
||||
final List<WeakReference<Location>> locations = locationMap.get(worldName);
|
||||
if (locations != null)
|
||||
{
|
||||
for (final Iterator<WeakReference<Location>> it = locations.iterator(); it.hasNext();)
|
||||
{
|
||||
final WeakReference<Location> weakReference = it.next();
|
||||
final Location loc = weakReference.get();
|
||||
if (loc == null || loc == location)
|
||||
{
|
||||
it.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,11 +1,11 @@
|
|||
package com.earth2me.essentials.craftbukkit;
|
||||
|
||||
import com.earth2me.essentials.api.IEssentials;
|
||||
import com.earth2me.essentials.storage.Location;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import net.minecraft.server.NBTTagCompound;
|
||||
import net.minecraft.server.WorldNBTStorage;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
|
||||
|
||||
|
@ -38,7 +38,7 @@ public class OfflineBedLocation
|
|||
{
|
||||
spawnWorld = cserver.getWorlds().get(0).getName();
|
||||
}
|
||||
return new BetterLocation(spawnWorld, playerStorage.getInt("SpawnX"), playerStorage.getInt("SpawnY"), playerStorage.getInt("SpawnZ"));
|
||||
return new Location(spawnWorld, playerStorage.getInt("SpawnX"), playerStorage.getInt("SpawnY"), playerStorage.getInt("SpawnZ"));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ import static com.earth2me.essentials.I18n._;
|
|||
import com.earth2me.essentials.api.IEssentials;
|
||||
import com.earth2me.essentials.api.ISettings;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import java.util.List;
|
||||
import lombok.Cleanup;
|
||||
import org.bukkit.Material;
|
||||
|
@ -98,7 +99,7 @@ public class EssentialsEntityListener extends EntityListener
|
|||
@Cleanup
|
||||
final ISettings settings = ess.getSettings();
|
||||
settings.acquireReadLock();
|
||||
if (user.isAuthorized("essentials.back.ondeath") && !settings.getData().getCommands().isDisabled("back"))
|
||||
if (Permissions.BACK_ONDEATH.isAuthorized(user) && !settings.getData().getCommands().isDisabled("back"))
|
||||
{
|
||||
user.setLastLocation();
|
||||
user.sendMessage(_("backAfterDeath"));
|
||||
|
|
|
@ -5,6 +5,7 @@ import com.earth2me.essentials.Util;
|
|||
import com.earth2me.essentials.api.IEssentials;
|
||||
import com.earth2me.essentials.api.ISettings;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import com.earth2me.essentials.textreader.IText;
|
||||
import com.earth2me.essentials.textreader.KeywordReplacer;
|
||||
import com.earth2me.essentials.textreader.TextInput;
|
||||
|
@ -150,7 +151,7 @@ public class EssentialsPlayerListener implements Listener
|
|||
user.updateDisplayName();
|
||||
user.getData().setIpAddress(user.getAddress().getAddress().getHostAddress());
|
||||
user.updateActivity(false);
|
||||
if (user.isAuthorized("essentials.sleepingignored"))
|
||||
if (Permissions.SLEEPINGIGNORED.isAuthorized(user))
|
||||
{
|
||||
user.setSleepingIgnored(true);
|
||||
}
|
||||
|
@ -159,7 +160,7 @@ public class EssentialsPlayerListener implements Listener
|
|||
final ISettings settings = ess.getSettings();
|
||||
settings.acquireReadLock();
|
||||
|
||||
if (!settings.getData().getCommands().isDisabled("motd") && user.isAuthorized("essentials.motd"))
|
||||
if (!settings.getData().getCommands().isDisabled("motd") && Permissions.MOTD.isAuthorized(user))
|
||||
{
|
||||
try
|
||||
{
|
||||
|
@ -181,7 +182,7 @@ public class EssentialsPlayerListener implements Listener
|
|||
}
|
||||
}
|
||||
|
||||
if (!settings.getData().getCommands().isDisabled("mail") && user.isAuthorized("essentials.mail"))
|
||||
if (!settings.getData().getCommands().isDisabled("mail") && Permissions.MAIL.isAuthorized(user))
|
||||
{
|
||||
final List<String> mail = user.getData().getMails();
|
||||
if (mail == null || mail.isEmpty())
|
||||
|
@ -219,7 +220,7 @@ public class EssentialsPlayerListener implements Listener
|
|||
return;
|
||||
}
|
||||
|
||||
if (server.getOnlinePlayers().length >= server.getMaxPlayers() && !user.isAuthorized("essentials.joinfullserver"))
|
||||
if (server.getOnlinePlayers().length >= server.getMaxPlayers() && !Permissions.JOINFULLSERVER.isAuthorized(user))
|
||||
{
|
||||
event.disallow(Result.KICK_FULL, _("serverFull"));
|
||||
return;
|
||||
|
@ -382,7 +383,7 @@ public class EssentialsPlayerListener implements Listener
|
|||
@Cleanup
|
||||
final IUser user = ess.getUser(event.getPlayer());
|
||||
user.acquireReadLock();
|
||||
if (!settings.getData().getWorldOptions(event.getPlayer().getLocation().getWorld().getName()).isGodmode() && !user.isAuthorized("essentials.nogod.override"))
|
||||
if (!settings.getData().getWorldOptions(event.getPlayer().getLocation().getWorld().getName()).isGodmode() && !Permissions.NOGOD_OVERRIDE.isAuthorized(user))
|
||||
{
|
||||
if (user.getData().isGodmode())
|
||||
{
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.earth2me.essentials.perm;
|
|||
|
||||
import com.earth2me.essentials.Util;
|
||||
import com.earth2me.essentials.api.IPermission;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.permissions.Permission;
|
||||
import org.bukkit.permissions.PermissionDefault;
|
||||
|
||||
|
@ -23,9 +24,19 @@ public abstract class AbstractSuperpermsPermission implements IPermission
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* PermissionDefault is OP, if the method is not overwritten.
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public PermissionDefault getPermissionDefault()
|
||||
{
|
||||
return PermissionDefault.OP;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAuthorized(CommandSender sender)
|
||||
{
|
||||
return sender.hasPermission(getBukkitPermission());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
package com.earth2me.essentials.perm;
|
||||
|
||||
import com.earth2me.essentials.api.IPermission;
|
||||
|
||||
public class BasePermission extends AbstractSuperpermsPermission {
|
||||
protected String permission;
|
||||
|
||||
public BasePermission(String base, String permission)
|
||||
{
|
||||
this.permission = base + permission;
|
||||
|
||||
}
|
||||
|
||||
public String getPermission()
|
||||
{
|
||||
return permission;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
package com.earth2me.essentials.perm;
|
||||
|
||||
import com.earth2me.essentials.api.IPermission;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
package com.earth2me.essentials.perm;
|
||||
|
||||
import com.earth2me.essentials.api.IPermission;
|
||||
import java.util.EnumMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.permissions.PermissionDefault;
|
||||
|
||||
public class GivePermissions {
|
||||
private static Map<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;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
package com.earth2me.essentials.perm;
|
||||
|
||||
import com.earth2me.essentials.api.IPermission;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
package com.earth2me.essentials.perm;
|
||||
|
||||
import com.earth2me.essentials.api.IPermission;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
package com.earth2me.essentials.perm;
|
||||
|
||||
import com.earth2me.essentials.api.IPermission;
|
||||
import java.util.EnumMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.permissions.PermissionDefault;
|
||||
|
||||
|
||||
public class ItemPermissions
|
||||
{
|
||||
private static Map<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;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
package com.earth2me.essentials.perm;
|
||||
|
||||
import com.earth2me.essentials.api.IPermission;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
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;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
package com.earth2me.essentials.perm;
|
||||
|
||||
import com.earth2me.essentials.api.IPermission;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
|
@ -3,14 +3,73 @@ package com.earth2me.essentials.perm;
|
|||
import com.earth2me.essentials.Util;
|
||||
import com.earth2me.essentials.api.IPermission;
|
||||
import java.util.Locale;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.permissions.Permission;
|
||||
import org.bukkit.permissions.PermissionDefault;
|
||||
|
||||
|
||||
public enum Permissions implements IPermission
|
||||
{
|
||||
AFK,
|
||||
AFK_KICKEXEMPT,
|
||||
AFK_OTHERS,
|
||||
BALANCE_OTHERS;
|
||||
BACK_ONDEATH,
|
||||
BALANCE_OTHERS,
|
||||
BAN_EXEMPT,
|
||||
BAN_NOTIFY,
|
||||
BAN_OFFLINE,
|
||||
BREAK_BEDROCK,
|
||||
CHAT_COLOR,
|
||||
CHAT_SPY,
|
||||
CLEARINVENTORY_OTHERS,
|
||||
DELHOME_OTHERS,
|
||||
ECO_LOAN(PermissionDefault.FALSE),
|
||||
FEED_OTHERS,
|
||||
GAMEMODE_OTHERS,
|
||||
GEOIP_HIDE(PermissionDefault.FALSE),
|
||||
GEOIP_SHOW(PermissionDefault.TRUE),
|
||||
GETPOS_OTHERS,
|
||||
GOD_OTHERS,
|
||||
HEAL_COOLDOWN_BYPASS,
|
||||
HEAL_OTHERS,
|
||||
HELPOP_RECEIVE,
|
||||
HOME_OTHERS,
|
||||
JAIL_EXEMPT,
|
||||
JOINFULLSERVER,
|
||||
KICK_EXEMPT,
|
||||
KICK_NOTIFY,
|
||||
LIST_HIDDEN,
|
||||
MAIL,
|
||||
MAIL_SEND,
|
||||
MAIL_SENDALL,
|
||||
MOTD,
|
||||
MSG_COLOR,
|
||||
MUTE_EXEMPT,
|
||||
NEAR_OTHERS,
|
||||
NICK_COLOR,
|
||||
NICK_OTHERS,
|
||||
NOGOD_OVERRIDE,
|
||||
OVERSIZEDSTACKS(PermissionDefault.FALSE),
|
||||
POWERTOOL_APPEND,
|
||||
PTIME_OTHERS,
|
||||
REPAIR_ARMOR,
|
||||
REPAIR_ENCHANTED,
|
||||
SETHOME_MULTIPLE,
|
||||
SETHOME_OTHERS,
|
||||
SLEEPINGIGNORED,
|
||||
SPAWN_OTHERS,
|
||||
TELEPORT_COOLDOWN_BYPASS,
|
||||
TELEPORT_HIDDEN,
|
||||
TELEPORT_TIMER_BYPASS,
|
||||
TEMPBAN_EXEMPT,
|
||||
TEMPBAN_OFFLINE,
|
||||
TIME_SET,
|
||||
TOGGLEJAIL_OFFLINE,
|
||||
TPAHERE,
|
||||
TPOHERE,
|
||||
UNLIMITED_OTHERS,
|
||||
WARP_LIST(PermissionDefault.TRUE),
|
||||
WARP_OTHERS;
|
||||
private static final String base = "essentials.";
|
||||
private final String permission;
|
||||
private final PermissionDefault defaultPerm;
|
||||
|
@ -51,4 +110,10 @@ public enum Permissions implements IPermission
|
|||
{
|
||||
return this.defaultPerm;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAuthorized(CommandSender sender)
|
||||
{
|
||||
return sender.hasPermission(getBukkitPermission());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
package com.earth2me.essentials.perm;
|
||||
|
||||
import com.earth2me.essentials.api.IPermission;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
package com.earth2me.essentials.perm;
|
||||
|
||||
import com.earth2me.essentials.api.IPermission;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
package com.earth2me.essentials.perm;
|
||||
|
||||
import com.earth2me.essentials.api.IPermission;
|
||||
import java.util.EnumMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import org.bukkit.Material;
|
||||
|
||||
public class UnlimitedItemPermissions
|
||||
{
|
||||
private static Map<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;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
package com.earth2me.essentials.perm;
|
||||
|
||||
import com.earth2me.essentials.api.IPermission;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
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;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
package com.earth2me.essentials.perm;
|
||||
|
||||
import com.earth2me.essentials.api.IPermission;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
|
@ -5,6 +5,7 @@ import com.earth2me.essentials.api.IEssentials;
|
|||
import com.earth2me.essentials.api.IGroups;
|
||||
import com.earth2me.essentials.api.ISettings;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.GroupsPermissions;
|
||||
import com.earth2me.essentials.storage.AsyncStorageObjectHolder;
|
||||
import java.io.File;
|
||||
import java.text.MessageFormat;
|
||||
|
@ -28,25 +29,7 @@ public class GroupsHolder extends AsyncStorageObjectHolder<Groups> implements IG
|
|||
{
|
||||
return new File(ess.getDataFolder(), "groups.yml");
|
||||
}
|
||||
|
||||
public void registerPermissions()
|
||||
{
|
||||
acquireReadLock();
|
||||
try
|
||||
{
|
||||
final Map<String, GroupOptions> groups = getData().getGroups();
|
||||
if (groups == null || groups.isEmpty())
|
||||
{
|
||||
return;
|
||||
}
|
||||
Util.registerPermissions("essentials.groups", groups.keySet(), true, ess);
|
||||
}
|
||||
finally
|
||||
{
|
||||
unlock();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public Collection<GroupOptions> getGroups(final IUser player)
|
||||
{
|
||||
acquireReadLock();
|
||||
|
@ -60,7 +43,7 @@ public class GroupsHolder extends AsyncStorageObjectHolder<Groups> implements IG
|
|||
final ArrayList<GroupOptions> list = new ArrayList();
|
||||
for (Entry<String, GroupOptions> entry : groups.entrySet())
|
||||
{
|
||||
if (player.isAuthorized("essentials.groups." + entry.getKey()))
|
||||
if (GroupsPermissions.getPermission(entry.getKey()).isAuthorized(player))
|
||||
{
|
||||
if(entry.getValue() != null)
|
||||
{
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
package com.earth2me.essentials.settings;
|
||||
|
||||
import com.earth2me.essentials.storage.Location;
|
||||
import com.earth2me.essentials.storage.MapValueType;
|
||||
import com.earth2me.essentials.storage.StorageObject;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.bukkit.Location;
|
||||
|
||||
|
||||
@Data
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
package com.earth2me.essentials.settings;
|
||||
|
||||
import com.earth2me.essentials.storage.MapValueType;
|
||||
import com.earth2me.essentials.storage.StorageObject;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.bukkit.Location;
|
||||
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class Locations implements StorageObject
|
||||
{
|
||||
@MapValueType(Location.class)
|
||||
Map<String, Location> jails = new HashMap<String, Location>();
|
||||
@MapValueType(Location.class)
|
||||
Map<String, Location> warps = new HashMap<String, Location>();
|
||||
@MapValueType(Location.class)
|
||||
Map<String, Location> spawns = new HashMap<String, Location>();
|
||||
}
|
|
@ -1,13 +1,13 @@
|
|||
package com.earth2me.essentials.settings;
|
||||
|
||||
import com.earth2me.essentials.storage.Comment;
|
||||
import com.earth2me.essentials.storage.Location;
|
||||
import com.earth2me.essentials.storage.MapValueType;
|
||||
import com.earth2me.essentials.storage.StorageObject;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.bukkit.Location;
|
||||
|
||||
|
||||
@Data
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package com.earth2me.essentials.settings;
|
||||
|
||||
import com.earth2me.essentials.storage.Location;
|
||||
import com.earth2me.essentials.storage.StorageObject;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.bukkit.Location;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
package com.earth2me.essentials.storage;
|
||||
|
||||
import com.earth2me.essentials.Essentials;
|
||||
import com.earth2me.essentials.craftbukkit.BetterLocation;
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.regex.Pattern;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
@ -280,11 +278,12 @@ public class BukkitConstructor extends Constructor
|
|||
{
|
||||
return null;
|
||||
}
|
||||
return new BetterLocation(worldName, x, y, z, yaw, pitch);
|
||||
return new Location(worldName, x, y, z, yaw, pitch);
|
||||
}
|
||||
return super.construct(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Object constructJavaBean2ndStep(final MappingNode node, final Object object)
|
||||
{
|
||||
Map<Class<? extends Object>, TypeDescription> typeDefinitions;
|
||||
|
|
|
@ -0,0 +1,111 @@
|
|||
package com.earth2me.essentials.storage;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.UUID;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.World;
|
||||
|
||||
|
||||
public class Location
|
||||
{
|
||||
private WeakReference<org.bukkit.Location> location;
|
||||
private final String worldname;
|
||||
private UUID worldUID = null;
|
||||
private final double x;
|
||||
private final double y;
|
||||
private final double z;
|
||||
private final float yaw;
|
||||
private final float pitch;
|
||||
|
||||
public Location(org.bukkit.Location loc)
|
||||
{
|
||||
location = new WeakReference<org.bukkit.Location>(loc);
|
||||
worldname = loc.getWorld().getName();
|
||||
worldUID = loc.getWorld().getUID();
|
||||
x = loc.getX();
|
||||
y = loc.getY();
|
||||
z = loc.getZ();
|
||||
yaw = loc.getYaw();
|
||||
pitch = loc.getPitch();
|
||||
}
|
||||
|
||||
public Location(String worldname, double x, double y, double z, float yaw, float pitch)
|
||||
{
|
||||
this.worldname = worldname;
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.z = z;
|
||||
this.yaw = yaw;
|
||||
this.pitch = pitch;
|
||||
}
|
||||
|
||||
public Location(String worldname, double x, double y, double z)
|
||||
{
|
||||
this.worldname = worldname;
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.z = z;
|
||||
this.yaw = 0f;
|
||||
this.pitch = 0f;
|
||||
}
|
||||
|
||||
public org.bukkit.Location getBukkitLocation() throws WorldNotLoadedException
|
||||
{
|
||||
|
||||
org.bukkit.Location loc = location == null ? null : location.get();
|
||||
if (loc == null)
|
||||
{
|
||||
World world = null;
|
||||
if (worldUID != null) {
|
||||
world = Bukkit.getWorld(worldUID);
|
||||
}
|
||||
if (world == null) {
|
||||
world = Bukkit.getWorld(worldname);
|
||||
}
|
||||
if (world == null) {
|
||||
throw new WorldNotLoadedException(worldname);
|
||||
}
|
||||
loc = new org.bukkit.Location(world, getX(), getY(), getZ(), getYaw(), getPitch());
|
||||
location = new WeakReference<org.bukkit.Location>(loc);
|
||||
}
|
||||
return loc;
|
||||
}
|
||||
|
||||
public String getWorldName()
|
||||
{
|
||||
return worldname;
|
||||
}
|
||||
|
||||
public double getX()
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
public double getY()
|
||||
{
|
||||
return y;
|
||||
}
|
||||
|
||||
public double getZ()
|
||||
{
|
||||
return z;
|
||||
}
|
||||
|
||||
public float getYaw()
|
||||
{
|
||||
return yaw;
|
||||
}
|
||||
|
||||
public float getPitch()
|
||||
{
|
||||
return pitch;
|
||||
}
|
||||
|
||||
public static class WorldNotLoadedException extends Exception
|
||||
{
|
||||
public WorldNotLoadedException(String worldname)
|
||||
{
|
||||
super("World "+worldname+" is not loaded.");
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,6 +1,5 @@
|
|||
package com.earth2me.essentials.storage;
|
||||
|
||||
import com.earth2me.essentials.craftbukkit.BetterLocation;
|
||||
import java.io.PrintWriter;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Modifier;
|
||||
|
@ -12,7 +11,6 @@ import java.util.Map.Entry;
|
|||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import java.util.regex.Pattern;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
@ -330,14 +328,7 @@ public class YamlStorageWriter implements IStorageWriter
|
|||
writer.println();
|
||||
writeIndention(depth);
|
||||
writer.print("world: ");
|
||||
if (entry instanceof BetterLocation)
|
||||
{
|
||||
writeScalar(((BetterLocation)entry).getWorldName());
|
||||
}
|
||||
else
|
||||
{
|
||||
writeScalar(entry.getWorld().getName());
|
||||
}
|
||||
writeScalar(entry.getWorldName());
|
||||
writeIndention(depth);
|
||||
writer.print("x: ");
|
||||
writeScalar(entry.getX());
|
||||
|
|
|
@ -4,6 +4,7 @@ import static com.earth2me.essentials.I18n._;
|
|||
import com.earth2me.essentials.api.IEssentials;
|
||||
import com.earth2me.essentials.api.ISettings;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.HelpPermissions;
|
||||
import java.io.IOException;
|
||||
import java.util.*;
|
||||
import java.util.logging.Level;
|
||||
|
@ -53,7 +54,7 @@ public class HelpInput implements IText
|
|||
if (pluginName.contains("essentials"))
|
||||
{
|
||||
final String node = "essentials." + k.getKey();
|
||||
if (!settings.getData().getCommands().isDisabled(k.getKey()) && user.isAuthorized(node))
|
||||
if (!settings.getData().getCommands().isDisabled(k.getKey()) && user.hasPermission(node))
|
||||
{
|
||||
lines.add("§c" + k.getKey() + "§7: " + k.getValue().get(DESCRIPTION));
|
||||
}
|
||||
|
@ -72,7 +73,7 @@ public class HelpInput implements IText
|
|||
{
|
||||
permissions = value.get(PERMISSIONS);
|
||||
}
|
||||
if (user.isAuthorized("essentials.help." + pluginName))
|
||||
if (HelpPermissions.getPermission(pluginName).isAuthorized(user))
|
||||
{
|
||||
lines.add("§c" + k.getKey() + "§7: " + value.get(DESCRIPTION));
|
||||
}
|
||||
|
@ -81,7 +82,7 @@ public class HelpInput implements IText
|
|||
boolean enabled = false;
|
||||
for (Object o : (List<Object>)permissions)
|
||||
{
|
||||
if (o instanceof String && user.isAuthorized(o.toString()))
|
||||
if (o instanceof String && user.hasPermission(o.toString()))
|
||||
{
|
||||
enabled = true;
|
||||
break;
|
||||
|
@ -94,7 +95,7 @@ public class HelpInput implements IText
|
|||
}
|
||||
else if (permissions instanceof String && !"".equals(permissions))
|
||||
{
|
||||
if (user.isAuthorized(permissions.toString()))
|
||||
if (user.hasPermission(permissions.toString()))
|
||||
{
|
||||
lines.add("§c" + k.getKey() + "§7: " + value.get(DESCRIPTION));
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@ import com.earth2me.essentials.Teleport;
|
|||
import com.earth2me.essentials.Util;
|
||||
import com.earth2me.essentials.api.*;
|
||||
import com.earth2me.essentials.craftbukkit.InventoryWorkaround;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import com.earth2me.essentials.register.payment.Method;
|
||||
import java.util.Calendar;
|
||||
import java.util.GregorianCalendar;
|
||||
|
@ -76,41 +77,7 @@ public class User extends UserBase implements IUser
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean isAuthorized(String node)
|
||||
{
|
||||
if (!isOnlineUser())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (getData().isJailed())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
//TODO: switch to Superperms only
|
||||
return ess.getPermissionsHandler().hasPermission(base, node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAuthorized(IPermission permission)
|
||||
{
|
||||
return isAuthorized(permission.getPermission());
|
||||
}
|
||||
|
||||
/*@Override
|
||||
public boolean isAuthorized(IEssentialsCommand cmd)
|
||||
{
|
||||
return isAuthorized(cmd, "essentials.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAuthorized(IEssentialsCommand cmd, String permissionPrefix)
|
||||
{
|
||||
return isAuthorized(permissionPrefix + (cmd.getName().equals("r") ? "msg" : cmd.getName()));
|
||||
}*/
|
||||
|
||||
@Override
|
||||
public void checkCooldown(final UserData.TimestampType cooldownType, final double cooldown, final boolean set, final String bypassPermission) throws CooldownException
|
||||
public void checkCooldown(final UserData.TimestampType cooldownType, final double cooldown, final boolean set, final IPermission bypassPermission) throws CooldownException
|
||||
{
|
||||
final Calendar now = new GregorianCalendar();
|
||||
if (getTimestamp(cooldownType) > 0)
|
||||
|
@ -119,7 +86,7 @@ public class User extends UserBase implements IUser
|
|||
cooldownTime.setTimeInMillis(getTimestamp(cooldownType));
|
||||
cooldownTime.add(Calendar.SECOND, (int)cooldown);
|
||||
cooldownTime.add(Calendar.MILLISECOND, (int)((cooldown * 1000.0) % 1000.0));
|
||||
if (cooldownTime.after(now) && !isAuthorized(bypassPermission))
|
||||
if (cooldownTime.after(now) && !bypassPermission.isAuthorized(this))
|
||||
{
|
||||
throw new CooldownException(Util.formatDateDiff(cooldownTime.getTimeInMillis()));
|
||||
}
|
||||
|
@ -204,7 +171,7 @@ public class User extends UserBase implements IUser
|
|||
public boolean canAfford(final double cost)
|
||||
{
|
||||
final double mon = getMoney();
|
||||
return mon >= cost || isAuthorized("essentials.eco.loan");
|
||||
return mon >= cost || Permissions.ECO_LOAN.isAuthorized(this);
|
||||
}
|
||||
|
||||
public void setHome()
|
||||
|
@ -372,7 +339,7 @@ public class User extends UserBase implements IUser
|
|||
acquireWriteLock();
|
||||
try
|
||||
{
|
||||
this.setSleepingIgnored(this.isAuthorized("essentials.sleepingignored") ? true : set);
|
||||
this.setSleepingIgnored(Permissions.SLEEPINGIGNORED.isAuthorized(this) ? true : set);
|
||||
if (set && !getData().isAfk())
|
||||
{
|
||||
afkPosition = getLocation();
|
||||
|
@ -389,7 +356,7 @@ public class User extends UserBase implements IUser
|
|||
public boolean toggleAfk()
|
||||
{
|
||||
final boolean now = super.toggleAfk();
|
||||
this.setSleepingIgnored(this.isAuthorized("essentials.sleepingignored") ? true : now);
|
||||
this.setSleepingIgnored(Permissions.SLEEPINGIGNORED.isAuthorized(this) ? true : now);
|
||||
return now;
|
||||
}
|
||||
|
||||
|
@ -497,7 +464,9 @@ public class User extends UserBase implements IUser
|
|||
settings.acquireReadLock();
|
||||
final long autoafkkick = settings.getData().getCommands().getAfk().getAutoAFKKick();
|
||||
if (autoafkkick > 0 && lastActivity > 0 && (lastActivity + (autoafkkick * 1000)) < System.currentTimeMillis()
|
||||
&& !hidden && !isAuthorized("essentials.kick.exempt") && !isAuthorized("essentials.afk.kickexempt"))
|
||||
&& !hidden
|
||||
&& !Permissions.KICK_EXEMPT.isAuthorized(this)
|
||||
&& !Permissions.AFK_KICKEXEMPT.isAuthorized(this))
|
||||
{
|
||||
final String kickReason = _("autoAfkKickReason", autoafkkick / 60.0);
|
||||
lastActivity = 0;
|
||||
|
@ -507,7 +476,7 @@ public class User extends UserBase implements IUser
|
|||
for (Player player : ess.getServer().getOnlinePlayers())
|
||||
{
|
||||
final IUser user = ess.getUser(player);
|
||||
if (user.isAuthorized("essentials.kick.notify"))
|
||||
if (Permissions.KICK_NOTIFY.isAuthorized(user))
|
||||
{
|
||||
player.sendMessage(_("playerKicked", Console.NAME, getName(), kickReason));
|
||||
}
|
||||
|
@ -517,7 +486,7 @@ public class User extends UserBase implements IUser
|
|||
acquireReadLock();
|
||||
try
|
||||
{
|
||||
if (!getData().isAfk() && autoafk > 0 && lastActivity + autoafk * 1000 < System.currentTimeMillis() && isAuthorized("essentials.afk"))
|
||||
if (!getData().isAfk() && autoafk > 0 && lastActivity + autoafk * 1000 < System.currentTimeMillis() && Permissions.AFK.isAuthorized(this))
|
||||
{
|
||||
setAfk(true);
|
||||
if (!hidden)
|
||||
|
@ -688,7 +657,7 @@ public class User extends UserBase implements IUser
|
|||
}
|
||||
|
||||
final Map<Integer, ItemStack> overfilled;
|
||||
if (isAuthorized("essentials.oversizedstacks"))
|
||||
if (Permissions.OVERSIZEDSTACKS.isAuthorized(this))
|
||||
{
|
||||
@Cleanup
|
||||
final ISettings settings = ess.getSettings();
|
||||
|
|
|
@ -4,12 +4,14 @@ import com.earth2me.essentials.Util;
|
|||
import com.earth2me.essentials.api.IEssentials;
|
||||
import com.earth2me.essentials.api.ISettings;
|
||||
import com.earth2me.essentials.api.InvalidNameException;
|
||||
import com.earth2me.essentials.craftbukkit.BetterLocation;
|
||||
import com.earth2me.essentials.craftbukkit.OfflineBedLocation;
|
||||
import com.earth2me.essentials.storage.AsyncStorageObjectHolder;
|
||||
import com.earth2me.essentials.storage.Location.WorldNotLoadedException;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.*;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import lombok.Cleanup;
|
||||
import lombok.Delegate;
|
||||
import org.bukkit.Bukkit;
|
||||
|
@ -32,7 +34,7 @@ public abstract class UserBase extends AsyncStorageObjectHolder<UserData> implem
|
|||
Player.class, Entity.class, CommandSender.class, ServerOperator.class,
|
||||
HumanEntity.class, ConfigurationSerializable.class, LivingEntity.class,
|
||||
Permissible.class
|
||||
}, excludes = {IOfflinePlayer.class, OtherExcludes.class})
|
||||
}, excludes = {IOfflinePlayer.class})
|
||||
protected Player base;
|
||||
protected transient OfflinePlayer offlinePlayer;
|
||||
|
||||
|
@ -116,7 +118,14 @@ public abstract class UserBase extends AsyncStorageObjectHolder<UserData> implem
|
|||
}
|
||||
else
|
||||
{
|
||||
return OfflineBedLocation.getBedLocation(base.getName(), ess);
|
||||
try
|
||||
{
|
||||
return OfflineBedLocation.getBedLocation(base.getName(), ess).getBukkitLocation();
|
||||
}
|
||||
catch (WorldNotLoadedException ex)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -437,14 +446,4 @@ public abstract class UserBase extends AsyncStorageObjectHolder<UserData> implem
|
|||
unlock();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Location getLocation()
|
||||
{
|
||||
return new BetterLocation(base.getLocation());
|
||||
}
|
||||
|
||||
public static interface OtherExcludes {
|
||||
Location getLocation();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,8 +2,8 @@ package com.earth2me.essentials;
|
|||
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.api.IEssentials;
|
||||
import com.earth2me.essentials.craftbukkit.FakeWorld;
|
||||
import com.earth2me.essentials.settings.Spawns;
|
||||
import com.earth2me.essentials.storage.Location;
|
||||
import com.earth2me.essentials.storage.YamlStorageWriter;
|
||||
import java.io.*;
|
||||
import java.math.BigInteger;
|
||||
|
@ -13,11 +13,11 @@ import java.util.*;
|
|||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
|
||||
@Deprecated
|
||||
public class EssentialsUpgrade
|
||||
{
|
||||
|
@ -211,14 +211,10 @@ public class EssentialsUpgrade
|
|||
continue;
|
||||
}
|
||||
World world = ess.getServer().getWorlds().get(0);
|
||||
if (vals.size() > 5)
|
||||
{
|
||||
world = ess.getServer().getWorld((String)vals.get(5));
|
||||
}
|
||||
if (world != null)
|
||||
{
|
||||
final Location loc = new Location(
|
||||
world,
|
||||
(String)vals.get(5),
|
||||
((Number)vals.get(0)).doubleValue(),
|
||||
((Number)vals.get(1)).doubleValue(),
|
||||
((Number)vals.get(2)).doubleValue(),
|
||||
|
@ -352,7 +348,7 @@ public class EssentialsUpgrade
|
|||
{
|
||||
continue;
|
||||
}
|
||||
worldName = loc.getWorld().getName().toLowerCase(Locale.ENGLISH);
|
||||
worldName = loc.getWorldName().toLowerCase(Locale.ENGLISH);
|
||||
if (worldName != null && !worldName.isEmpty())
|
||||
{
|
||||
config.setProperty("homes." + worldName, loc);
|
||||
|
@ -373,54 +369,21 @@ public class EssentialsUpgrade
|
|||
doneFile.save();
|
||||
}
|
||||
|
||||
/*private void moveUsersDataToUserdataFolder()
|
||||
{
|
||||
final File usersFile = new File(ess.getDataFolder(), "users.yml");
|
||||
if (!usersFile.exists())
|
||||
{
|
||||
return;
|
||||
}
|
||||
final EssentialsConf usersConfig = new EssentialsConf(usersFile);
|
||||
usersConfig.load();
|
||||
for (String username : usersConfig.getKeys(null))
|
||||
{
|
||||
final User user = new User(new OfflinePlayer(username, ess), ess);
|
||||
final String nickname = usersConfig.getString(username + ".nickname");
|
||||
if (nickname != null && !nickname.isEmpty() && !nickname.equals(username))
|
||||
{
|
||||
user.setNickname(nickname);
|
||||
}
|
||||
final List<String> mails = usersConfig.getStringList(username + ".mail", null);
|
||||
if (mails != null && !mails.isEmpty())
|
||||
{
|
||||
user.setMails(mails);
|
||||
}
|
||||
if (!user.hasHome())
|
||||
{
|
||||
@SuppressWarnings("unchecked")
|
||||
final List<Object> vals = (List<Object>)usersConfig.getProperty(username + ".home");
|
||||
if (vals != null)
|
||||
{
|
||||
World world = ess.getServer().getWorlds().get(0);
|
||||
if (vals.size() > 5)
|
||||
{
|
||||
world = getFakeWorld((String)vals.get(5));
|
||||
}
|
||||
if (world != null)
|
||||
{
|
||||
user.setHome("home", new Location(world,
|
||||
((Number)vals.get(0)).doubleValue(),
|
||||
((Number)vals.get(1)).doubleValue(),
|
||||
((Number)vals.get(2)).doubleValue(),
|
||||
((Number)vals.get(3)).floatValue(),
|
||||
((Number)vals.get(4)).floatValue()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
usersFile.renameTo(new File(usersFile.getAbsolutePath() + ".old"));
|
||||
}*/
|
||||
|
||||
/*
|
||||
* private void moveUsersDataToUserdataFolder() { final File usersFile = new File(ess.getDataFolder(), "users.yml");
|
||||
* if (!usersFile.exists()) { return; } final EssentialsConf usersConfig = new EssentialsConf(usersFile);
|
||||
* usersConfig.load(); for (String username : usersConfig.getKeys(null)) { final User user = new User(new
|
||||
* OfflinePlayer(username, ess), ess); final String nickname = usersConfig.getString(username + ".nickname"); if
|
||||
* (nickname != null && !nickname.isEmpty() && !nickname.equals(username)) { user.setNickname(nickname); } final
|
||||
* List<String> mails = usersConfig.getStringList(username + ".mail", null); if (mails != null && !mails.isEmpty())
|
||||
* { user.setMails(mails); } if (!user.hasHome()) { @SuppressWarnings("unchecked") final List<Object> vals =
|
||||
* (List<Object>)usersConfig.getProperty(username + ".home"); if (vals != null) { World world =
|
||||
* ess.getServer().getWorlds().get(0); if (vals.size() > 5) { world = getFakeWorld((String)vals.get(5)); } if (world
|
||||
* != null) { user.setHome("home", new Location(world, ((Number)vals.get(0)).doubleValue(),
|
||||
* ((Number)vals.get(1)).doubleValue(), ((Number)vals.get(2)).doubleValue(), ((Number)vals.get(3)).floatValue(),
|
||||
* ((Number)vals.get(4)).floatValue())); } } } } usersFile.renameTo(new File(usersFile.getAbsolutePath() + ".old"));
|
||||
* }
|
||||
*/
|
||||
private void convertWarps()
|
||||
{
|
||||
final File warpsFolder = new File(ess.getDataFolder(), "warps");
|
||||
|
@ -475,31 +438,16 @@ public class EssentialsUpgrade
|
|||
{
|
||||
rx.close();
|
||||
}
|
||||
World w = null;
|
||||
for (World world : ess.getServer().getWorlds())
|
||||
{
|
||||
if (world.getEnvironment() != World.Environment.NETHER)
|
||||
{
|
||||
w = world;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (worldName != null)
|
||||
{
|
||||
worldName = worldName.trim();
|
||||
World w1 = null;
|
||||
w1 = getFakeWorld(worldName);
|
||||
if (w1 != null)
|
||||
final Location loc = new Location(worldName, x, y, z, yaw, pitch);
|
||||
((Warps)ess.getWarps()).setWarp(filename.substring(0, filename.length() - 4), loc);
|
||||
if (!listOfFiles[i].renameTo(new File(warpsFolder, filename + ".old")))
|
||||
{
|
||||
w = w1;
|
||||
throw new Exception(_("fileRenameError", filename));
|
||||
}
|
||||
}
|
||||
final Location loc = new Location(w, x, y, z, yaw, pitch);
|
||||
ess.getWarps().setWarp(filename.substring(0, filename.length() - 4), loc);
|
||||
if (!listOfFiles[i].renameTo(new File(warpsFolder, filename + ".old")))
|
||||
{
|
||||
throw new Exception(_("fileRenameError", filename));
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
@ -509,7 +457,7 @@ public class EssentialsUpgrade
|
|||
}
|
||||
|
||||
}
|
||||
final File warpFile = new File(ess.getDataFolder(), "warps.txt");
|
||||
/*final File warpFile = new File(ess.getDataFolder(), "warps.txt");
|
||||
if (warpFile.exists())
|
||||
{
|
||||
try
|
||||
|
@ -542,7 +490,7 @@ public class EssentialsUpgrade
|
|||
break;
|
||||
}
|
||||
}
|
||||
final Location loc = new Location(w, x, y, z, yaw, pitch);
|
||||
final Location loc = new Location(name, x, y, z, yaw, pitch);
|
||||
ess.getWarps().setWarp(name, loc);
|
||||
if (!warpFile.renameTo(new File(ess.getDataFolder(), "warps.txt.old")))
|
||||
{
|
||||
|
@ -559,65 +507,30 @@ public class EssentialsUpgrade
|
|||
{
|
||||
LOGGER.log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
/*private void sanitizeAllUserFilenames()
|
||||
{
|
||||
if (doneFile.getBoolean("sanitizeAllUserFilenames", false))
|
||||
{
|
||||
return;
|
||||
}
|
||||
final File usersFolder = new File(ess.getDataFolder(), "userdata");
|
||||
if (!usersFolder.exists())
|
||||
{
|
||||
return;
|
||||
}
|
||||
final File[] listOfFiles = usersFolder.listFiles();
|
||||
for (int i = 0; i < listOfFiles.length; i++)
|
||||
{
|
||||
final String filename = listOfFiles[i].getName();
|
||||
if (!listOfFiles[i].isFile() || !filename.endsWith(".yml"))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
final String sanitizedFilename = Util.sanitizeFileName(filename.substring(0, filename.length() - 4)) + ".yml";
|
||||
if (sanitizedFilename.equals(filename))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
final File tmpFile = new File(listOfFiles[i].getParentFile(), sanitizedFilename + ".tmp");
|
||||
final File newFile = new File(listOfFiles[i].getParentFile(), sanitizedFilename);
|
||||
if (!listOfFiles[i].renameTo(tmpFile))
|
||||
{
|
||||
LOGGER.log(Level.WARNING, _("userdataMoveError", filename, sanitizedFilename));
|
||||
continue;
|
||||
}
|
||||
if (newFile.exists())
|
||||
{
|
||||
LOGGER.log(Level.WARNING, _("duplicatedUserdata", filename, sanitizedFilename));
|
||||
continue;
|
||||
}
|
||||
if (!tmpFile.renameTo(newFile))
|
||||
{
|
||||
LOGGER.log(Level.WARNING, _("userdataMoveBackError", sanitizedFilename, sanitizedFilename));
|
||||
}
|
||||
}
|
||||
doneFile.setProperty("sanitizeAllUserFilenames", true);
|
||||
doneFile.save();
|
||||
}*/
|
||||
|
||||
private World getFakeWorld(final String name)
|
||||
{
|
||||
final File bukkitDirectory = ess.getDataFolder().getParentFile().getParentFile();
|
||||
final File worldDirectory = new File(bukkitDirectory, name);
|
||||
if (worldDirectory.exists() && worldDirectory.isDirectory())
|
||||
{
|
||||
return new FakeWorld(worldDirectory.getName(), World.Environment.NORMAL);
|
||||
}
|
||||
return null;
|
||||
/*
|
||||
* private void sanitizeAllUserFilenames() { if (doneFile.getBoolean("sanitizeAllUserFilenames", false)) { return; }
|
||||
* final File usersFolder = new File(ess.getDataFolder(), "userdata"); if (!usersFolder.exists()) { return; } final
|
||||
* File[] listOfFiles = usersFolder.listFiles(); for (int i = 0; i < listOfFiles.length; i++) { final String
|
||||
* filename = listOfFiles[i].getName(); if (!listOfFiles[i].isFile() || !filename.endsWith(".yml")) { continue; }
|
||||
* final String sanitizedFilename = Util.sanitizeFileName(filename.substring(0, filename.length() - 4)) + ".yml"; if
|
||||
* (sanitizedFilename.equals(filename)) { continue; } final File tmpFile = new File(listOfFiles[i].getParentFile(),
|
||||
* sanitizedFilename + ".tmp"); final File newFile = new File(listOfFiles[i].getParentFile(), sanitizedFilename); if
|
||||
* (!listOfFiles[i].renameTo(tmpFile)) { LOGGER.log(Level.WARNING, _("userdataMoveError", filename,
|
||||
* sanitizedFilename)); continue; } if (newFile.exists()) { LOGGER.log(Level.WARNING, _("duplicatedUserdata",
|
||||
* filename, sanitizedFilename)); continue; } if (!tmpFile.renameTo(newFile)) { LOGGER.log(Level.WARNING,
|
||||
* _("userdataMoveBackError", sanitizedFilename, sanitizedFilename)); } }
|
||||
* doneFile.setProperty("sanitizeAllUserFilenames", true); doneFile.save(); }
|
||||
*/
|
||||
/*
|
||||
* private World getFakeWorld(final String name) { final File bukkitDirectory =
|
||||
* ess.getDataFolder().getParentFile().getParentFile(); final File worldDirectory = new File(bukkitDirectory, name);
|
||||
* if (worldDirectory.exists() && worldDirectory.isDirectory()) { return new FakeWorld(worldDirectory.getName(),
|
||||
* World.Environment.NORMAL); } return null;
|
||||
}
|
||||
|
||||
*/
|
||||
public Location getFakeLocation(EssentialsConf config, String path)
|
||||
{
|
||||
String worldName = config.getString((path != null ? path + "." : "") + "world");
|
||||
|
@ -625,12 +538,7 @@ public class EssentialsUpgrade
|
|||
{
|
||||
return null;
|
||||
}
|
||||
World world = getFakeWorld(worldName);
|
||||
if (world == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return new Location(world,
|
||||
return new Location(worldName,
|
||||
config.getDouble((path != null ? path + "." : "") + "x", 0),
|
||||
config.getDouble((path != null ? path + "." : "") + "y", 0),
|
||||
config.getDouble((path != null ? path + "." : "") + "z", 0),
|
||||
|
@ -731,7 +639,7 @@ public class EssentialsUpgrade
|
|||
doneFile.setProperty("updateSpawnsToNewSpawnsConfig", true);
|
||||
doneFile.save();
|
||||
}
|
||||
|
||||
|
||||
private void updateJailsToNewJailsConfig()
|
||||
{
|
||||
if (doneFile.getBoolean("updateJailsToNewJailsConfig", false))
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
package com.earth2me.essentials.chat;
|
||||
|
||||
import com.earth2me.essentials.api.IPermission;
|
||||
import com.earth2me.essentials.perm.BasePermission;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
public class ChatPermissions {
|
||||
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.chat.",groupName.toLowerCase(Locale.ENGLISH));
|
||||
permissions.put(groupName, perm);
|
||||
}
|
||||
return perm;
|
||||
}
|
||||
}
|
|
@ -8,6 +8,7 @@ import com.earth2me.essentials.api.IEssentials;
|
|||
import com.earth2me.essentials.api.IGroups;
|
||||
import com.earth2me.essentials.api.ISettings;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.logging.Logger;
|
||||
|
@ -77,7 +78,7 @@ public abstract class EssentialsChatPlayer implements Listener
|
|||
protected void formatChat(final PlayerChatEvent event, final ChatStore chatStore)
|
||||
{
|
||||
final IUser user = chatStore.getUser();
|
||||
if (user.isAuthorized("essentials.chat.color"))
|
||||
if (Permissions.CHAT_COLOR.isAuthorized(user))
|
||||
{
|
||||
event.setMessage(Util.stripColor(event.getMessage()));
|
||||
}
|
||||
|
@ -141,10 +142,7 @@ public abstract class EssentialsChatPlayer implements Listener
|
|||
|
||||
if (event.getMessage().length() > 1 && chatStore.getType().length() > 0)
|
||||
{
|
||||
final StringBuilder permission = new StringBuilder();
|
||||
permission.append("essentials.chat.").append(chatStore.getType());
|
||||
|
||||
if (user.isAuthorized(permission.toString()))
|
||||
if (ChatPermissions.getPermission(chatStore.getType()).isAuthorized(user))
|
||||
{
|
||||
final StringBuilder format = new StringBuilder();
|
||||
format.append(chatStore.getType()).append("Format");
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.earth2me.essentials.chat;
|
|||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.api.IEssentials;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import java.util.logging.Logger;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Server;
|
||||
|
@ -52,7 +53,7 @@ public class EssentialsLocalChatEventListener implements Listener
|
|||
|
||||
if (delta > event.getRadius())
|
||||
{
|
||||
if (user.isAuthorized("essentials.chat.spy"))
|
||||
if (Permissions.CHAT_SPY.isAuthorized(user))
|
||||
{
|
||||
type = type.concat(_("chatTypeSpy"));
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ import static com.earth2me.essentials.I18n._;
|
|||
import com.earth2me.essentials.api.IEssentials;
|
||||
import com.earth2me.essentials.api.IReload;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import com.maxmind.geoip.Location;
|
||||
import com.maxmind.geoip.LookupService;
|
||||
import com.maxmind.geoip.regionName;
|
||||
|
@ -45,7 +46,7 @@ public class EssentialsGeoIPPlayerListener implements Listener, IReload
|
|||
public void onPlayerJoin(final PlayerJoinEvent event)
|
||||
{
|
||||
final IUser u = ess.getUser(event.getPlayer());
|
||||
if (u.isAuthorized("essentials.geoip.hide"))
|
||||
if (Permissions.GEOIP_HIDE.isAuthorized(u))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@ -93,7 +94,7 @@ public class EssentialsGeoIPPlayerListener implements Listener, IReload
|
|||
for (Player player : event.getPlayer().getServer().getOnlinePlayers())
|
||||
{
|
||||
final IUser user = ess.getUser(player);
|
||||
if (user.isAuthorized("essentials.geoip.show"))
|
||||
if (Permissions.GEOIP_SHOW.isAuthorized(user))
|
||||
{
|
||||
user.sendMessage(_("geoipJoinFormat", user.getDisplayName(), builder.toString()));
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@ public class EssentialsConnect
|
|||
return ess;
|
||||
}
|
||||
|
||||
public void alert(final IUser user, final String item, final String type)
|
||||
public void alert(final Player user, final String item, final String type)
|
||||
{
|
||||
final Location loc = user.getLocation();
|
||||
final String warnMessage = _("alertFormat", user.getName(), type, item,
|
||||
|
@ -53,7 +53,7 @@ public class EssentialsConnect
|
|||
for (Player p : ess.getServer().getOnlinePlayers())
|
||||
{
|
||||
final IUser alertUser = ess.getUser(p);
|
||||
if (alertUser.isAuthorized("essentials.protect.alerts"))
|
||||
if (Permissions.ALERTS.isAuthorized(alertUser))
|
||||
{
|
||||
alertUser.sendMessage(warnMessage);
|
||||
}
|
||||
|
|
|
@ -2,13 +2,13 @@ package com.earth2me.essentials.protect;
|
|||
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.api.IEssentials;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.protect.data.IProtectedBlock;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
|
@ -34,12 +34,12 @@ public class EssentialsProtectBlockListener implements Listener
|
|||
return;
|
||||
}
|
||||
|
||||
final IUser user = ess.getUser(event.getPlayer());
|
||||
final Player user = event.getPlayer();
|
||||
final ProtectHolder settings = prot.getSettings();
|
||||
settings.acquireReadLock();
|
||||
try
|
||||
{
|
||||
if (!user.isAuthorized(Permissions.BUILD))
|
||||
if (!Permissions.BUILD.isAuthorized(user))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
|
@ -48,13 +48,13 @@ public class EssentialsProtectBlockListener implements Listener
|
|||
final Block blockPlaced = event.getBlockPlaced();
|
||||
final int id = blockPlaced.getTypeId();
|
||||
|
||||
if (!user.isAuthorized(BlockPlacePermissions.getPermission(blockPlaced.getType())))
|
||||
if (!BlockPlacePermissions.getPermission(blockPlaced.getType()).isAuthorized(user))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!user.hasPermission("essentials.protect.alerts.notrigger") &&
|
||||
if (!Permissions.ALERTS_NOTRIGGER.isAuthorized(user) &&
|
||||
settings.getData().getAlertOnPlacement().contains(blockPlaced.getType()))
|
||||
{
|
||||
prot.getEssentialsConnect().alert(user, blockPlaced.getType().toString(), _("alertPlaced"));
|
||||
|
@ -72,7 +72,7 @@ public class EssentialsProtectBlockListener implements Listener
|
|||
final List<Block> protect = new ArrayList<Block>();
|
||||
if ((blockPlaced.getType() == Material.RAILS || blockPlaced.getType() == Material.POWERED_RAIL || blockPlaced.getType() == Material.DETECTOR_RAIL)
|
||||
&& settings.getData().getSignsAndRails().isProtectRails()
|
||||
&& user.isAuthorized("essentials.protect"))
|
||||
&& Permissions.RAILS.isAuthorized(user))
|
||||
{
|
||||
protect.add(blockPlaced);
|
||||
if (settings.getData().getSignsAndRails().isBlockBelow()
|
||||
|
@ -81,7 +81,7 @@ public class EssentialsProtectBlockListener implements Listener
|
|||
protect.add(blockPlaced.getRelative(BlockFace.DOWN));
|
||||
}
|
||||
}
|
||||
if ((blockPlaced.getType() == Material.SIGN_POST || blockPlaced.getType() == Material.WALL_SIGN)
|
||||
/*if ((blockPlaced.getType() == Material.SIGN_POST || blockPlaced.getType() == Material.WALL_SIGN)
|
||||
&& settings.getData().getSignsAndRails().isProtectSigns()
|
||||
&& user.isAuthorized("essentials.protect"))
|
||||
{
|
||||
|
@ -93,7 +93,7 @@ public class EssentialsProtectBlockListener implements Listener
|
|||
{
|
||||
protect.add(event.getBlockAgainst());
|
||||
}
|
||||
}
|
||||
}*/
|
||||
for (Block block : protect)
|
||||
{
|
||||
prot.getStorage().protectBlock(block, user.getName());
|
||||
|
@ -144,7 +144,7 @@ public class EssentialsProtectBlockListener implements Listener
|
|||
|
||||
if (event.getCause().equals(BlockIgniteEvent.IgniteCause.FLINT_AND_STEEL) && event.getPlayer() != null)
|
||||
{
|
||||
event.setCancelled(ess.getUser(event.getPlayer()).isAuthorized(Permissions.USEFLINTSTEEL));
|
||||
event.setCancelled(Permissions.USEFLINTSTEEL.isAuthorized(event.getPlayer()));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -267,9 +267,9 @@ public class EssentialsProtectBlockListener implements Listener
|
|||
{
|
||||
return;
|
||||
}
|
||||
final IUser user = ess.getUser(event.getPlayer());
|
||||
final Player user = event.getPlayer();
|
||||
|
||||
if (!user.isAuthorized(Permissions.BUILD))
|
||||
if (!Permissions.BUILD.isAuthorized(user))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
|
@ -277,7 +277,7 @@ public class EssentialsProtectBlockListener implements Listener
|
|||
final Block block = event.getBlock();
|
||||
final int typeId = block.getTypeId();
|
||||
|
||||
if (!user.isAuthorized(BlockBreakPermissions.getPermission(block.getType())))
|
||||
if (!BlockBreakPermissions.getPermission(block.getType()).isAuthorized(user))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
|
@ -288,13 +288,13 @@ public class EssentialsProtectBlockListener implements Listener
|
|||
{
|
||||
final Material type = block.getType();
|
||||
|
||||
if (!user.hasPermission("essentials.protect.alerts.notrigger") && settings.getData().getAlertOnBreak().contains(type))
|
||||
if (!Permissions.ALERTS_NOTRIGGER.isAuthorized(user) && settings.getData().getAlertOnBreak().contains(type))
|
||||
{
|
||||
prot.getEssentialsConnect().alert(user, type.toString(), _("alertBroke"));
|
||||
}
|
||||
final IProtectedBlock storage = prot.getStorage();
|
||||
|
||||
if (user.isAuthorized("essentials.protect.admin"))
|
||||
if (Permissions.ADMIN.isAuthorized(user))
|
||||
{
|
||||
if (type == Material.WALL_SIGN || type == Material.SIGN_POST || type == Material.RAILS || type == Material.POWERED_RAIL || type == Material.DETECTOR_RAIL)
|
||||
{
|
||||
|
@ -489,7 +489,7 @@ public class EssentialsProtectBlockListener implements Listener
|
|||
}
|
||||
}
|
||||
|
||||
private boolean isProtected(final Block block, final IUser user, final ProtectHolder settings)
|
||||
private boolean isProtected(final Block block, final Player user, final ProtectHolder settings)
|
||||
{
|
||||
final Material type = block.getType();
|
||||
if (settings.getData().getSignsAndRails().isProtectSigns())
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package com.earth2me.essentials.protect;
|
||||
|
||||
import com.earth2me.essentials.api.IEssentials;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.craftbukkit.FakeExplosion;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
|
@ -46,28 +45,28 @@ public class EssentialsProtectEntityListener implements Listener
|
|||
return;
|
||||
}
|
||||
|
||||
final IUser user = target instanceof Player ? ess.getUser((Player)target) : null;
|
||||
final Player user = target instanceof Player ? (Player)target : null;
|
||||
if (target instanceof Player && event instanceof EntityDamageByBlockEvent)
|
||||
{
|
||||
final DamageCause cause = event.getCause();
|
||||
|
||||
if (cause == DamageCause.CONTACT
|
||||
&& (user.isAuthorized(Permissions.PREVENTDAMAGE_CONTACT)
|
||||
&& !user.isAuthorized(Permissions.PREVENTDAMAGE_NONE)))
|
||||
&& (Permissions.PREVENTDAMAGE_CONTACT.isAuthorized(user)
|
||||
&& !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
if (cause == DamageCause.LAVA
|
||||
&& (user.isAuthorized(Permissions.PREVENTDAMAGE_LAVADAMAGE)
|
||||
&& !user.isAuthorized(Permissions.PREVENTDAMAGE_NONE)))
|
||||
&& (Permissions.PREVENTDAMAGE_LAVADAMAGE.isAuthorized(user)
|
||||
&& !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
if (cause == DamageCause.BLOCK_EXPLOSION
|
||||
&& (user.isAuthorized(Permissions.PREVENTDAMAGE_TNT)
|
||||
&& !user.isAuthorized(Permissions.PREVENTDAMAGE_NONE)))
|
||||
&& (Permissions.PREVENTDAMAGE_TNT.isAuthorized(user)
|
||||
&& !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
|
@ -78,11 +77,11 @@ public class EssentialsProtectEntityListener implements Listener
|
|||
{
|
||||
final EntityDamageByEntityEvent edEvent = (EntityDamageByEntityEvent)event;
|
||||
final Entity eAttack = edEvent.getDamager();
|
||||
final IUser attacker = eAttack instanceof Player ? ess.getUser((Player)eAttack) : null;
|
||||
final Player attacker = eAttack instanceof Player ? (Player)eAttack : null;
|
||||
|
||||
// PVP Settings
|
||||
if (target instanceof Player && eAttack instanceof Player
|
||||
&& (!user.isAuthorized(Permissions.PVP) || !attacker.isAuthorized(Permissions.PVP)))
|
||||
&& (!Permissions.PVP.isAuthorized(user) || !Permissions.PVP.isAuthorized(attacker)))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
|
@ -90,35 +89,35 @@ public class EssentialsProtectEntityListener implements Listener
|
|||
|
||||
//Creeper explode prevention
|
||||
if (eAttack instanceof Creeper && settings.getData().getPrevent().isCreeperExplosion()
|
||||
|| (user.isAuthorized(Permissions.PREVENTDAMAGE_CREEPER)
|
||||
&& !user.isAuthorized(Permissions.PREVENTDAMAGE_NONE)))
|
||||
|| (Permissions.PREVENTDAMAGE_CREEPER.isAuthorized(user)
|
||||
&& !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((event.getEntity() instanceof Fireball || event.getEntity() instanceof SmallFireball)
|
||||
&& (user.isAuthorized(Permissions.PREVENTDAMAGE_FIREBALL)
|
||||
&& !user.isAuthorized(Permissions.PREVENTDAMAGE_NONE)))
|
||||
&& (Permissions.PREVENTDAMAGE_FIREBALL.isAuthorized(user)
|
||||
&& !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
|
||||
if (eAttack instanceof TNTPrimed
|
||||
&& (user.isAuthorized(Permissions.PREVENTDAMAGE_TNT)
|
||||
&& !user.isAuthorized(Permissions.PREVENTDAMAGE_NONE)))
|
||||
&& (Permissions.PREVENTDAMAGE_TNT.isAuthorized(user)
|
||||
&& !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
|
||||
if (edEvent.getDamager() instanceof Projectile
|
||||
&& ((user.isAuthorized(Permissions.PREVENTDAMAGE_PROJECTILES)
|
||||
&& !user.isAuthorized(Permissions.PREVENTDAMAGE_NONE))
|
||||
&& ((Permissions.PREVENTDAMAGE_PROJECTILES.isAuthorized(user)
|
||||
&& !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user))
|
||||
|| (((Projectile)edEvent.getDamager()).getShooter() instanceof Player
|
||||
&& (!user.isAuthorized(Permissions.PVP)
|
||||
|| !ess.getUser((Player)((Projectile)edEvent.getDamager()).getShooter()).isAuthorized(Permissions.PVP)))))
|
||||
&& (!Permissions.PVP.isAuthorized(user)
|
||||
|| !Permissions.PVP.isAuthorized((Player)((Projectile)edEvent.getDamager()).getShooter())))))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
|
@ -129,38 +128,38 @@ public class EssentialsProtectEntityListener implements Listener
|
|||
if (target instanceof Player)
|
||||
{
|
||||
if (cause == DamageCause.FALL
|
||||
&& (user.isAuthorized(Permissions.PREVENTDAMAGE_FALL)
|
||||
&& !user.isAuthorized(Permissions.PREVENTDAMAGE_NONE)))
|
||||
&& (Permissions.PREVENTDAMAGE_FALL.isAuthorized(user)
|
||||
&& !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
|
||||
if (cause == DamageCause.SUFFOCATION
|
||||
&& (user.isAuthorized(Permissions.PREVENTDAMAGE_SUFFOCATION)
|
||||
&& !user.isAuthorized(Permissions.PREVENTDAMAGE_NONE)))
|
||||
&& (Permissions.PREVENTDAMAGE_SUFFOCATION.isAuthorized(user)
|
||||
&& !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
if ((cause == DamageCause.FIRE
|
||||
|| cause == DamageCause.FIRE_TICK)
|
||||
&& (user.isAuthorized(Permissions.PREVENTDAMAGE_FIRE)
|
||||
&& !user.isAuthorized(Permissions.PREVENTDAMAGE_NONE)))
|
||||
&& (Permissions.PREVENTDAMAGE_FIRE.isAuthorized(user)
|
||||
&& !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
if (cause == DamageCause.DROWNING
|
||||
&& (user.isAuthorized(Permissions.PREVENTDAMAGE_DROWNING)
|
||||
&& !user.isAuthorized(Permissions.PREVENTDAMAGE_NONE)))
|
||||
&& (Permissions.PREVENTDAMAGE_DROWNING.isAuthorized(user)
|
||||
&& !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
if (cause == DamageCause.LIGHTNING
|
||||
&& (user.isAuthorized(Permissions.PREVENTDAMAGE_LIGHTNING)
|
||||
&& !user.isAuthorized(Permissions.PREVENTDAMAGE_NONE)))
|
||||
&& (Permissions.PREVENTDAMAGE_LIGHTNING.isAuthorized(user)
|
||||
&& !Permissions.PREVENTDAMAGE_NONE.isAuthorized(user)))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
|
@ -289,14 +288,14 @@ public class EssentialsProtectEntityListener implements Listener
|
|||
{
|
||||
return;
|
||||
}
|
||||
final IUser user = ess.getUser((Player)event.getTarget());
|
||||
final Player user = (Player)event.getTarget();
|
||||
if ((event.getReason() == TargetReason.CLOSEST_PLAYER
|
||||
|| event.getReason() == TargetReason.TARGET_ATTACKED_ENTITY
|
||||
|| event.getReason() == TargetReason.PIG_ZOMBIE_TARGET
|
||||
|| event.getReason() == TargetReason.RANDOM_TARGET
|
||||
|| event.getReason() == TargetReason.TARGET_ATTACKED_OWNER
|
||||
|| event.getReason() == TargetReason.OWNER_ATTACKED_TARGET)
|
||||
&& user.isAuthorized(Permissions.ENTITYTARGET))
|
||||
&& Permissions.ENTITYTARGET.isAuthorized(user))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
|
|
|
@ -2,9 +2,9 @@ package com.earth2me.essentials.protect;
|
|||
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.api.IEssentials;
|
||||
import com.earth2me.essentials.api.IUser;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
|
@ -28,7 +28,7 @@ public class EssentialsProtectPlayerListener implements Listener
|
|||
public void onPlayerInteract(final PlayerInteractEvent event)
|
||||
{
|
||||
// Do not return if cancelled, because the interact event has 2 cancelled states.
|
||||
final IUser user = ess.getUser(event.getPlayer());
|
||||
final Player user = event.getPlayer();
|
||||
|
||||
final ProtectHolder settings = prot.getSettings();
|
||||
settings.acquireReadLock();
|
||||
|
@ -37,7 +37,7 @@ public class EssentialsProtectPlayerListener implements Listener
|
|||
if (event.hasItem()
|
||||
&& (event.getItem().getType() == Material.WATER_BUCKET
|
||||
|| event.getItem().getType() == Material.LAVA_BUCKET)
|
||||
&& !user.isAuthorized(Permissions.BUILD))
|
||||
&& !Permissions.BUILD.isAuthorized(user))
|
||||
{
|
||||
if (settings.getData().isWarnOnBuildDisallow())
|
||||
{
|
||||
|
@ -47,7 +47,7 @@ public class EssentialsProtectPlayerListener implements Listener
|
|||
return;
|
||||
}
|
||||
|
||||
if (!user.isAuthorized(Permissions.INTERACT))
|
||||
if (!Permissions.INTERACT.isAuthorized(user))
|
||||
{
|
||||
if (settings.getData().isWarnOnBuildDisallow())
|
||||
{
|
||||
|
@ -59,13 +59,13 @@ public class EssentialsProtectPlayerListener implements Listener
|
|||
|
||||
final ItemStack item = event.getItem();
|
||||
if (item != null
|
||||
&& !user.isAuthorized(ItemUsePermissions.getPermission(item.getType())))
|
||||
&& !ItemUsePermissions.getPermission(item.getType()).isAuthorized(user))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
|
||||
if (user.isAuthorized("essentials.protect.ownerinfo") && event.getAction() == Action.RIGHT_CLICK_BLOCK)
|
||||
if (Permissions.OWNERINFO.isAuthorized(user) && event.getAction() == Action.RIGHT_CLICK_BLOCK)
|
||||
{
|
||||
final StringBuilder stringBuilder = new StringBuilder();
|
||||
boolean first = true;
|
||||
|
@ -86,8 +86,8 @@ public class EssentialsProtectPlayerListener implements Listener
|
|||
}
|
||||
}
|
||||
if (item != null
|
||||
&& !user.hasPermission("essentials.protect.alerts.notrigger")
|
||||
&& settings.getData().getAlertOnUse().contains(item.getType()))
|
||||
&& !Permissions.ALERTS_NOTRIGGER.isAuthorized(user)
|
||||
&& settings.getData().getAlertOnUse().contains(item.getType()))
|
||||
{
|
||||
prot.getEssentialsConnect().alert(user, item.getType().toString(), _("alertUsed"));
|
||||
}
|
||||
|
|
|
@ -3,17 +3,21 @@ package com.earth2me.essentials.protect;
|
|||
import com.earth2me.essentials.Util;
|
||||
import com.earth2me.essentials.api.IPermission;
|
||||
import java.util.Locale;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.permissions.Permission;
|
||||
import org.bukkit.permissions.PermissionDefault;
|
||||
|
||||
|
||||
public enum Permissions implements IPermission
|
||||
{
|
||||
ALERTS,
|
||||
ALERTS_NOTRIGGER,
|
||||
ADMIN,
|
||||
BUILD(PermissionDefault.TRUE),
|
||||
INTERACT(PermissionDefault.TRUE),
|
||||
USEFLINTSTEEL(PermissionDefault.TRUE),
|
||||
PVP(PermissionDefault.TRUE),
|
||||
ENTITYTARGET(PermissionDefault.TRUE),
|
||||
INTERACT(PermissionDefault.TRUE),
|
||||
OWNERINFO,
|
||||
PVP(PermissionDefault.TRUE),
|
||||
PREVENTDAMAGE_FALL(PermissionDefault.FALSE),
|
||||
PREVENTDAMAGE_CREEPER(PermissionDefault.FALSE),
|
||||
PREVENTDAMAGE_CONTACT(PermissionDefault.FALSE),
|
||||
|
@ -25,7 +29,9 @@ public enum Permissions implements IPermission
|
|||
PREVENTDAMAGE_FIRE(PermissionDefault.FALSE),
|
||||
PREVENTDAMAGE_DROWNING(PermissionDefault.FALSE),
|
||||
PREVENTDAMAGE_LIGHTNING(PermissionDefault.FALSE),
|
||||
PREVENTDAMAGE_NONE(PermissionDefault.FALSE);
|
||||
PREVENTDAMAGE_NONE(PermissionDefault.FALSE),
|
||||
RAILS(PermissionDefault.TRUE),
|
||||
USEFLINTSTEEL(PermissionDefault.TRUE);
|
||||
private static final String base = "essentials.protect.";
|
||||
private final String permission;
|
||||
private final PermissionDefault defaultPerm;
|
||||
|
@ -66,4 +72,10 @@ public enum Permissions implements IPermission
|
|||
{
|
||||
return this.defaultPerm;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAuthorized(CommandSender sender)
|
||||
{
|
||||
return sender.hasPermission(getBukkitPermission());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import com.earth2me.essentials.Trade;
|
|||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.commands.EssentialsCommand;
|
||||
import com.earth2me.essentials.commands.NotEnoughArgumentsException;
|
||||
import com.earth2me.essentials.perm.Permissions;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
||||
|
@ -17,7 +18,7 @@ public class Commandspawn extends EssentialsCommand
|
|||
{
|
||||
final Trade charge = new Trade(commandName, ess);
|
||||
charge.isAffordableFor(user);
|
||||
if (args.length > 0 && user.isAuthorized("essentials.spawn.others"))
|
||||
if (args.length > 0 && Permissions.SPAWN_OTHERS.isAuthorized(user))
|
||||
{
|
||||
final IUser otherUser = getPlayer(args, 0);
|
||||
respawn(otherUser, null);
|
||||
|
|
|
@ -5,6 +5,7 @@ import com.earth2me.essentials.api.IEssentialsModule;
|
|||
import com.earth2me.essentials.api.IUser;
|
||||
import com.earth2me.essentials.settings.Spawns;
|
||||
import com.earth2me.essentials.storage.AsyncStorageObjectHolder;
|
||||
import com.earth2me.essentials.storage.Location.WorldNotLoadedException;
|
||||
import java.io.File;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
|
@ -35,9 +36,9 @@ public class SpawnStorage extends AsyncStorageObjectHolder<Spawns> implements IE
|
|||
{
|
||||
if (getData().getSpawns() == null)
|
||||
{
|
||||
getData().setSpawns(new HashMap<String, Location>());
|
||||
getData().setSpawns(new HashMap<String, com.earth2me.essentials.storage.Location>());
|
||||
}
|
||||
getData().getSpawns().put(group.toLowerCase(Locale.ENGLISH), loc);
|
||||
getData().getSpawns().put(group.toLowerCase(Locale.ENGLISH), new com.earth2me.essentials.storage.Location(loc));
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
@ -59,7 +60,7 @@ public class SpawnStorage extends AsyncStorageObjectHolder<Spawns> implements IE
|
|||
{
|
||||
return getWorldSpawn();
|
||||
}
|
||||
final Map<String, Location> spawnMap = getData().getSpawns();
|
||||
final Map<String, com.earth2me.essentials.storage.Location> spawnMap = getData().getSpawns();
|
||||
String groupName = group.toLowerCase(Locale.ENGLISH);
|
||||
if (!spawnMap.containsKey(groupName))
|
||||
{
|
||||
|
@ -69,7 +70,14 @@ public class SpawnStorage extends AsyncStorageObjectHolder<Spawns> implements IE
|
|||
{
|
||||
return getWorldSpawn();
|
||||
}
|
||||
return spawnMap.get(groupName);
|
||||
try
|
||||
{
|
||||
return spawnMap.get(groupName).getBukkitLocation();
|
||||
}
|
||||
catch (WorldNotLoadedException ex)
|
||||
{
|
||||
return getWorldSpawn();
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue