NintendoClients icon indicating copy to clipboard operation
NintendoClients copied to clipboard

MatchamkeExtensionServer issues with single Data<Gathering> outputs

Open EpicUsername12 opened this issue 1 year ago • 0 comments

The following methods have an implementation issue:

They all respond with a single Data<Gathering>

But in the python MatchmakeExtensionServer, the handler expects that:

https://github.com/kinnay/NintendoClients/blob/0d2adcdf8212cdffe59dc5d83a0ddf9fa27c31e8/nintendo/nex/matchmaking.py#L3779-L3784

This check is generated if and only if a method returns a single Data<T>, otherwise it just checks that the response contain the correct fields, with no typechecking.

So if the implementation returns a MatchmakeSession, it should be valid, but since it doesn't inherit from common.Data (but common.Structure, even though it's registered in the DataHolder list), this check fails, and the error is raised.

  • A quick manual fix is to remove the if case, and it works as expected since the Gathering types are all registered in the DataHolder

NOTE: This might be occuring in other protocols, but i didn't bother checking

So a long term fix may be to add a check in the generate_protocols.py script so it checks the object is of a type registered in the DataHolder registry instead of checking the response is an instance of common.Data, i'm waiting for your input on that.

EpicUsername12 avatar Apr 16 '23 17:04 EpicUsername12