Beispiel #1
0
        public static List <NebulaConnection> GetSubscribers(int planetId, int stationId, int stationGId)
        {
            if (!_stationUISubscribers.TryGetValue(Subscribers.GetKey(planetId, stationId, stationGId), out Subscribers subscribers))
            {
                return(new List <NebulaConnection>());
            }

            return(subscribers.Connections);
        }
Beispiel #2
0
        public static void RemoveSubscriber(int planetId, int stationId, int stationGId, NebulaConnection connection)
        {
            if (_stationUISubscribers.TryGetValue(Subscribers.GetKey(planetId, stationId, stationGId), out Subscribers subscribers))
            {
                subscribers.Connections.Remove(connection);

                if (subscribers.Connections.Count == 0)
                {
                    _stationUISubscribers.Remove(subscribers.ToString());
                }
            }
        }
Beispiel #3
0
        // When a client opens a station's UI he requests a subscription for live updates, so add him to the list
        public static void AddSubscriber(int planetId, int stationId, int stationGId, NebulaConnection connection)
        {
            // Attempt to find existing subscribers to a specific station, if we couldn't find an existing one
            // we must initialize a new Subscribers for this specific station.
            if (!_stationUISubscribers.TryGetValue(Subscribers.GetKey(planetId, stationId, stationGId), out Subscribers subscribers))
            {
                _stationUISubscribers.Add(Subscribers.GetKey(planetId, stationId, stationGId), new Subscribers(planetId, stationId, stationGId));
            }

            _stationUISubscribers.TryGetValue(Subscribers.GetKey(planetId, stationId, stationGId), out subscribers);

            subscribers?.Connections.Add(connection);
        }