Beispiel #1
0
        private void OnServerStatusChange(ServerStatusChangedEventArgs args)
        {
            if (!embeds.TryGetValue(args.Port, out var embedInfo))
            {
                embedInfo = new ServerEmbedInfo(Config, Resources, args.Port, "Unknown");
                Interlocked.Exchange(ref embeds, embeds.SetItem(args.Port, embedInfo));
            }

            if (args.Type == ServerEventType.Updated &&
                args.ServerInfo.Players.Count == args.OldServerInfo.Players.Count &&
                args.ServerInfo.Status.GameType == args.OldServerInfo.Status.GameType &&
                args.ServerInfo.Status.MapName == args.OldServerInfo.Status.MapName)
            {
                return;
            }

            embedInfo.OnChange(args);
            subject.OnNext(embedInfo);
        }
Beispiel #2
0
        public void Add(int port, string serverName)
        {
            var embedInfo = new ServerEmbedInfo(Config, Resources, port, serverName);

            Interlocked.Exchange(ref embeds, embeds.SetItem(port, embedInfo));
        }