/// <summary> /// Retrieves a list of public games, which pass a provided filter. /// (You can implement your own filtering by extending modules or "classes" /// that implement <see cref="IGamesProvider" />) /// </summary> public void FindGames(Dictionary <string, string> filter, FindGamesCallback callback, IClientSocket connection) { if (!connection.IsConnected) { Logs.Error("Not connected"); callback.Invoke(new List <GameInfoPacket>()); return; } connection.SendMessage((short)MsfOpCodes.FindGames, filter.ToBytes(), (status, response) => { if (status != ResponseStatus.Success) { Logs.Error(response.AsString("Unknown error while requesting a list of games")); callback.Invoke(new List <GameInfoPacket>()); return; } var games = response.DeserializeList(() => new GameInfoPacket()).ToList(); callback.Invoke(games); }); }
/// <summary> /// Retrieves a list of public games, which pass a provided filter. /// (You can implement your own filtering by extending modules or "classes" /// that implement <see cref="IGamesProvider" />) /// </summary> public void FindGames(Dictionary <string, string> filter, FindGamesCallback callback, ErrorCallback errorCallback) { if (!Client.IsConnected) { errorCallback.Invoke("Not connected"); return; } Client.SendMessage((ushort)OpCodes.FindGames, filter.ToBytes(), (status, response) => { if (status != ResponseStatus.Success) { errorCallback.Invoke(response.AsString("Unknown error while requesting a list of games")); return; } var games = response.DeserializeList <GameInfoPacket>().ToList(); callback.Invoke(games); }); }