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); }
public void Add(int port, string serverName) { var embedInfo = new ServerEmbedInfo(Config, Resources, port, serverName); Interlocked.Exchange(ref embeds, embeds.SetItem(port, embedInfo)); }