Lavalink RoutePlanner support
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 toLavalinkNodeConnection
and serves to make route planner requests to Lavalink. - Created
LavalinkRouteStatusPayload
, which are entities used to get information from the route planner status endpoint.