package tv.mineinthebox.essentials.commands; import org.bukkit.Location; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import tv.mineinthebox.essentials.xEssentials; import tv.mineinthebox.essentials.enums.PermissionKey; import tv.mineinthebox.essentials.interfaces.CommandTemplate; import tv.mineinthebox.essentials.managers.TeleportManager; public class CmdBack extends CommandTemplate { private final TeleportManager manager; private final xEssentials pl; public CmdBack(xEssentials pl, Command cmd, CommandSender sender) { super(pl, cmd, sender); this.pl = pl; this.manager = pl.getManagers().getTeleportManager(); } public boolean execute(CommandSender sender, Command cmd, String[] args) { if(cmd.getName().equalsIgnoreCase("back")) { if(sender.hasPermission(PermissionKey.CMD_BACK.getPermission())) { if(args.length == 0) { if(sender instanceof Player) { Player p = (Player)sender; if(manager.hasLastLocation(p.getName())) { Location loc = manager.getLastLocation(p.getName()); p.teleport(loc); sendMessage("teleporting to your last location!"); } else { sendMessage("no location data found for /back"); } } else { getWarning(WarningType.PLAYER_ONLY); } } else if(args.length == 1) { Player p = pl.getManagers().getPlayerManager().getOfflinePlayer(args[0]).getBukkitPlayer(); if(sender instanceof Player) { if(manager.hasLastLocation(p.getName())) { Location loc = manager.getLastLocation(p.getName()); p.teleport(loc); sendMessageTo(p, sender.getName() + " has teleported you to your last location"); sendMessage("teleported " + p.getName() + " to his last location"); } else { sendMessage("no location data found for /back"); } } else { sendMessage("this player is not online!"); } } } else { getWarning(WarningType.NO_PERMISSION); } } return false; } }