MatchamkeExtensionServer issues with single Data<Gathering> outputs
EpicUsername12 opened this issue · 0 comments
The following methods have an implementation issue:
- AutoMatchmake_Postpone
- AutoMatchmakeWithSearchCriteria_Postpone
- AutoMatchmakeWithGatheringId_Postpone
They all respond with a single Data<Gathering>
But in the python MatchmakeExtensionServer, the handler expects that:
NintendoClients/nintendo/nex/matchmaking.py
Lines 3779 to 3784 in 0d2adcd
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 theDataHolder
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.