@Command(command = "warp",
			arguments = {"warp name"},
			description = "Warps you to the given warp",
			permissions = "warp.self",
			playerOnly = true)
	public static boolean warp(CommandSender sender, String warpName) throws EssentialsCommandException {
		// get our player
		Player player = (Player)sender;
		
		// try to get that warp
		// get a resultset of all our warps
		ArrayList<HashMap<String, Object>> results = null;
		if(!PermissionsManager.playerHasPermission(sender, "warp.warp.any")) {
			results = DatabaseManager.accessQuery(
					"select * from warps where name=? and (public=? or owner=?) limit 1;",
					warpName,
					true,
					sender.getName());
			if(results.size() == 0) {
				throw new EssentialsCommandException("&eThe warp '%s' doesn't exist!", warpName);
			}
		}
		else {
			results = DatabaseManager.accessQuery(
					"select * from warps where name=? limit 1;",
					warpName);
			if(results.size() == 0) {
				throw new EssentialsCommandException("&eThe warp '%s' doesn't exist!", warpName);
			}
		}
		
		// make sure we have it
		if(results.size() != 1) {
			throw new EssentialsCommandException("&eThe warp '%s' doesn't exist!", warpName);
		}
		
		// ok, we have it
		// build a location
		HashMap<String, Object> result = results.get(0);
		Location location = new Location(
				Bukkit.getServer().getWorld((String)result.get("world")),
				(Float)result.get("x"),
				(Float)result.get("y"),
				(Float)result.get("z"),
				(Float)result.get("yaw"),
				(Float)result.get("pitch"));
		
		// teleport them!
		player.teleport(location);
		ColourHandler.sendMessage(sender, "&6Woosh!");
		
		return true;
	}