public static async void InitializeList(RoleType roleType, ObservableCollection <Player> playerList, Server server) { List <string> names; string path; if (server.Version.CompareTo(new ServerVersion { Version = "1.7.5" }) <= 0) { path = Path.Combine(new DirectoryInfo(Path.Combine(App.ServerPath, server.Name)).FullName, roleType.TxtName()); switch (roleType) { case RoleType.WHITELIST: names = FileReader.ReadWhiteListTxT(path); break; case RoleType.OP_LIST: names = FileReader.ReadOPListTxT(path); break; case RoleType.BAN_LIST: names = FileReader.ReadBanListTxT(path); break; default: throw new ArgumentException("RoleUpdater.InitializeList() is ignoring an enum value!"); } } else { path = Path.Combine(new DirectoryInfo(Path.Combine(App.ServerPath, server.Name)).FullName, roleType.JsonName()); switch (roleType) { case RoleType.WHITELIST: names = FileReader.ReadWhiteListJson(path); break; case RoleType.OP_LIST: names = FileReader.ReadOPListJson(path); break; case RoleType.BAN_LIST: names = FileReader.ReadBanListJson(path); break; default: throw new ArgumentException("RoleUpdater.InitializeList() is ignoring an enum value!"); } } //Add names to PlayerList Dispatcher viewDisp = Application.Current.Dispatcher; foreach (string name in names) { Player p = await PlayerManager.Instance.GetPlayer(name); //Player p = new Player(name); viewDisp.Invoke(() => playerList.Add(p), DispatcherPriority.Background); } }