[Update: this ext is now obsolete; ignore it. See OID instead.]
Here is the description of an extension called LOLI, the purpose of which is to allow users to exchange their League of Legends profile information.
League of Legends is a game on which players have profiles identified by their “summoner name” and the server it is registered on (there are separate servers for different regions).
Clients that support the LOLI feature must announce it in the SU field of their INF.
They have a new command at their disposal: the LOL command.
The LOL command must be sent from one client to another (D type message). When it is sent with no parameter, the receiving client MUST answer with at least one LOL command that MUST contain the SE and SU parameters. If the receiving client doesn’t want to answer or if it doesn’t know what to answer, it MUST still answer with empty SE and SU parameters.
Parameters accepted by the LOL command:
- SE: Server identifier; must be one of “br”, “eune”, “euw”, “kr”, “na”, “tr”, “ru” that stand for, respectively, “Brazil”, “EU Nordic & East”, “EU West”, “Korea”, “North America”, “Turkey”, “Russia”. This list of servers may change in the future to reflect those available in the game.
- SU: Summoner name.
More parameters may be added in the future without requiring a new version of this extension.
- A separate message is preferrable over new INF fields because users may not want to divulgate their LoL profile information to everyone on the hub.
- The feature is announced in SU and there are restrictions on those that support it to be forced to send back a message in order to allow responsive feedback. Without these restrictions, a client would wait endlessly for an answer that would never come.
- I have chosen a LOL with empty SE and SU parameters instead of an STA when a client doesn’t have a meaningful answer to give: 1) to simplify parsing; 2) to avoid having to add a new STA code.
A DC++ plugin that implements this is available on https://code.launchpad.net/~dcplusplus-team/dcpp-plugin-sdk-cpp/LoLPlugin. It hasn’t been published yet, so I am open to suggestions regarding its use of the protocol.