summaryrefslogtreecommitdiffstats
path: root/Essentials/src/com/earth2me/essentials/commands/Commandtpaccept.java
diff options
context:
space:
mode:
Diffstat (limited to 'Essentials/src/com/earth2me/essentials/commands/Commandtpaccept.java')
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandtpaccept.java54
1 files changed, 20 insertions, 34 deletions
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandtpaccept.java b/Essentials/src/com/earth2me/essentials/commands/Commandtpaccept.java
index 9203f9015..e0f3b7d0c 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandtpaccept.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandtpaccept.java
@@ -1,57 +1,43 @@
package com.earth2me.essentials.commands;
import static com.earth2me.essentials.I18n._;
-import com.earth2me.essentials.Trade;
-import com.earth2me.essentials.User;
-import org.bukkit.Server;
+import com.earth2me.essentials.api.ISettings;
+import com.earth2me.essentials.api.IUser;
+import com.earth2me.essentials.economy.Trade;
+import com.earth2me.essentials.permissions.Permissions;
+import com.earth2me.essentials.permissions.WorldPermissions;
+import lombok.Cleanup;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
public class Commandtpaccept extends EssentialsCommand
{
- public Commandtpaccept()
- {
- super("tpaccept");
- }
-
@Override
- public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
+ public void run(final IUser user, final String commandLabel, final String[] args) throws Exception
{
-
- final User target = user.getTeleportRequest();
-
- if (target == null || !target.isOnline())
- {
- throw new Exception(_("noPendingRequest"));
- }
-
- if (user.isTpRequestHere() && ((!target.isAuthorized("essentials.tpahere") && !target.isAuthorized("essentials.tpaall"))
- || (user.getWorld() != target.getWorld() && ess.getSettings().isWorldTeleportPermissions()
- && !user.isAuthorized("essentials.world." + user.getWorld().getName()))))
- {
- throw new Exception(_("noPendingRequest"));
- }
-
- if (!user.isTpRequestHere() && (!target.isAuthorized("essentials.tpa")
- || (user.getWorld() != target.getWorld() && ess.getSettings().isWorldTeleportPermissions()
- && !user.isAuthorized("essentials.world." + target.getWorld().getName()))))
- {
- throw new Exception(_("noPendingRequest"));
- }
-
- if (args.length > 0 && !target.getName().contains(args[0]))
+ final IUser target = user.getTeleportRequester();
+ @Cleanup
+ ISettings settings = ess.getSettings();
+ settings.acquireReadLock();
+ if (target == null || !target.isOnline()
+ || (args.length > 0 && !target.getName().contains(args[0]))
+ || (user.isTpRequestHere() && !Permissions.TPAHERE.isAuthorized(target))
+ || (!user.isTpRequestHere() && ((!Permissions.TPA.isAuthorized(target) && !Permissions.TPAALL.isAuthorized(target))
+ || (user.getWorld() != target.getWorld()
+ && settings.getData().getGeneral().isWorldTeleportPermissions()
+ && !WorldPermissions.getPermission(user.getWorld().getName()).isAuthorized(user)))))
{
throw new Exception(_("noPendingRequest"));
}
- long timeout = ess.getSettings().getTpaAcceptCancellation();
+ long timeout = settings.getData().getCommands().getTpa().getTimeout();
if (timeout != 0 && (System.currentTimeMillis() - user.getTeleportRequestTime()) / 1000 > timeout)
{
user.requestTeleport(null, false);
throw new Exception(_("requestTimedOut"));
}
- final Trade charge = new Trade(this.getName(), ess);
+ final Trade charge = new Trade(this.commandName, ess);
if (user.isTpRequestHere())
{
charge.isAffordableFor(user);