38 lines
1.5 KiB
Java
38 lines
1.5 KiB
Java
package com.earth2me.essentials.commands;
|
|
|
|
import com.earth2me.essentials.User;
|
|
import net.ess3.api.TranslatableException;
|
|
import org.bukkit.Location;
|
|
import org.bukkit.Server;
|
|
import org.bukkit.event.player.PlayerTeleportEvent;
|
|
|
|
public class Commandtpoffline extends EssentialsCommand {
|
|
|
|
public Commandtpoffline() {
|
|
super("tpoffline");
|
|
}
|
|
|
|
@Override
|
|
public void run(final Server server, final User user, final String label, final String[] args) throws Exception {
|
|
if (args.length == 0) {
|
|
throw new NotEnoughArgumentsException();
|
|
} else {
|
|
final User target = getPlayer(server, args, 0, true, true);
|
|
final Location logout = target.getLogoutLocation();
|
|
|
|
if (logout == null) {
|
|
user.sendTl("teleportOfflineUnknown", user.getDisplayName());
|
|
throw new NoChargeException();
|
|
}
|
|
|
|
if (user.getWorld() != logout.getWorld() && ess.getSettings().isWorldTeleportPermissions() && !user.isAuthorized("essentials.worlds." + logout.getWorld().getName())) {
|
|
throw new TranslatableException("noPerm", "essentials.worlds." + logout.getWorld().getName());
|
|
}
|
|
|
|
user.sendTl("teleporting", logout.getWorld().getName(), logout.getBlockX(), logout.getBlockY(), logout.getBlockZ());
|
|
user.getAsyncTeleport().now(logout, false, PlayerTeleportEvent.TeleportCause.COMMAND, getNewExceptionFuture(user.getSource(), label));
|
|
}
|
|
}
|
|
}
|
|
|