Ejemplo n.º 1
0
 public void SetManualLobbyDataCallback(ulong steamId, Action <Lobby> callback)
 {
     if (callback != null)
     {
         if (ManualLobbyDataCallbacks == null)
         {
             ManualLobbyDataCallbacks = new Dictionary <ulong, Action <Lobby> >();
         }
         if (!ManualLobbyDataCallbacks.ContainsKey(steamId))
         {
             ManualLobbyDataCallbacks.Add(steamId, callback);
         }
         else
         {
             ManualLobbyDataCallbacks[steamId] = callback;
         }
     }
     else
     {
         if (ManualLobbyDataCallbacks == null)
         {
             return;
         }
         if (ManualLobbyDataCallbacks.ContainsKey(steamId))
         {
             ManualLobbyDataCallbacks.Remove(steamId);
         }
     }
 }
Ejemplo n.º 2
0
        void OnLobbyDataUpdated(LobbyDataUpdate_t callback)
        {
            if (callback.Success == 1) //1 if success, 0 if failure
            {
                if (ManualLobbyDataCallbacks.ContainsKey(callback.SteamIDLobby))
                {
                    ManualLobbyDataCallbacks[callback.SteamIDLobby]?.Invoke(Lobby.FromSteam(client, callback.SteamIDLobby));
                }

                //find the lobby that has been updated
                Lobby lobby = Lobbies.Find(x => x != null && x.LobbyID == callback.SteamIDLobby);

                //if this lobby isn't yet in the list of lobbies, we know that we should add it
                if (lobby == null)
                {
                    if (requests.Contains(callback.SteamIDLobby))
                    {
                        lobby = Lobby.FromSteam(client, callback.SteamIDLobby);
                        Lobbies.Add(lobby);
                        checkFinished();
                    }
                }

                //otherwise lobby data in general was updated and you should listen to see what changed
                if (requests.Contains(callback.SteamIDLobby))
                {
                    OnLobbiesUpdated?.Invoke();
                }
            }
        }