5.0.4 • Published 3 years ago

league-connect-regex v5.0.4

Weekly downloads
5
License
MIT
Repository
github
Last release
3 years ago

Table of Contents

Getting Started

League Connect is a NodeJs module for consuming the League of Legends Client APIs

Prerequisites

To start using League Connect, ensure the following packages are installed:

  • Node (any recent version should run (download))
  • Yarn or NPM
  • League of Legends (download)

Installation

League Connect ships as an NPM module, installable through Yarn or NPM. To add the package to your project, install it through your package manager of choice.

$ yarn install league-connect
# Or ...
$ npm install league-connect

Usage

League Connect ships 4 primary APIs:

Authenticate

Credentials are passed around as an object containing a port and a password (see source). These credentials are pulled from the LeagueClientUx process and will be used to authenticate any requests or connections to the APIs.

Code Example

import { authenticate } from 'league-connect'

const credentials = await authenticate()
console.log(credentials) // { password: '37dn2gsxH3ns', port: 37241 }

By default, the authenticate function will return a rejected promise if it failed to locate a running LeagueClientUx process. If you wish to await until a client is found, you can use the optional options:

OptionDefault ValueDescription
awaitConnectionfalseAwait until a LeagueClientUx process is found
pollInterval2500Duration in milliseconds between each poll. No-op if awaitConnection is false.
import { authenticate } from 'league-connect'

const credentials = await authenticate({
  awaitConnection: true,
  pollInterval: 5000
})
See source for available options

Connect

The League Client runs a WebSocket for an event bus which anything using the client may connect to. Developers may also connect to this socket over wss. LeagueConnect provides a function to retrieve a WebSocket connection.

import { connect, authenticate } from 'league-connect'

const credentials = await authenticate()
const ws = await connect(credentials)

League Connect uses its own extended WebSocket class which allows subscriptions to certain API endpoints.

The socket instance automatically subscribes to Json events from the API which will be ran on the message event.

Code Example

import { connect, authenticate } from 'league-connect'

const credentials = await authenticate()
const ws = await connect(credentials)

ws.on('message', message => {
  // Subscribe to any websocket event
})
import { connect, authenticate } from 'league-connect'

const credentials = await authenticate()
const ws = await connect(credentials)

ws.subscribe('/lol-chat/v1/conversations/active', (data, event) => {
  // data: deseralized json object from the event payload
  // event: the entire event (see EventResponse<T>)
})
See source for LeagueWebSocket

Request

LeagueConnect supports sending HTTP requests to any of the League Client API endpoints (endpoints can be discovered and viewed with rift-explorer)

Once you've found the endpoint you want to use, use the request function to send the http request.

import { request, authenticate } from 'league-connect'

const credentials = await authenticate()
const response = await request({
  method: 'GET',
  url: '/lol-summoner/v1/current-summoner'
}, credentials)

The options you pass into request decide where your http request goes. Available options:

OptionDescription
urlRelative URI to send the http request to
methodHTTP verb to use
bodyOptional post body (for non GET requests) as object literal. (library serializes it)
See source for available options

LeagueClient

The LeagueClient class is an EventEmitter which will listen for the LeagueClientUx process, reporting shutdown/startup of the application. The emitter has two listeners: connect and disconnect.

Code Example

import { authenticate, LeagueClient } from 'league-connect'

const credentials = await authenticate()
const client = new LeagueClient(credentials)

client.on('connect', (newCredentials) => {
  // newCredentials: Each time the Client is started, new credentials are made
  // this variable contains the new credentials.
})

client.on('disconnect', () => {

})

client.start() // Start listening for process updates
client.stop()  // Stop listening for process updates

By default, the LeagueClient class will check for a client connection/disconnection every 2.5 seconds. This can be changed by passing an options object into the constructor.

OptionDefault ValueDescription
pollInterval2500Duration in milliseconds between process existence check
import { authenticate, LeagueClient } from 'league-connect'

const credentials = await authenticate()
const client = new LeagueClient(credentials, {
  pollInterval: 1000 // Check every second
})
See source for available options

License

Distributed under the MIT License. See LICENSE for more information.