Skip to content

Lavalink RoutePlanner support

Mateusz Brawański requested to merge github/fork/Neuheit/routePlannerAPI into master

Created by: Neuheit

Summary

Implements route planner support for Lavalink as described here.

Details

With the recent IP bans YouTube has been issuing against music bots, Lavaplayer implemented this strategy of switching IPs to counter it. Lavalink implemented support for this as well, and has added several new endpoints to its API.

I created a RoutePlanner class to handle the requests to Lavalink, and I also made several payload handlers to decode the responses in LavalinkRouteStatusPayload.cs. The endpoints serve to get the status of the route planner, as well as either freeing a single banned address, or every banned address.

Further details about the route planners can be found here.

Changes proposed

  • Created LavalinkRoutePlanner, which was added as a property to LavalinkNodeConnection and serves to make route planner requests to Lavalink.
  • Created LavalinkRouteStatusPayload, which are entities used to get information from the route planner status endpoint.

Merge request reports

Loading