//Guild and GuildChannel Stuff public async void ChannelSelectionChanged(object s, ListViewItemSelectionChangedEventArgs e) { if (e.IsSelected) { Regex r = new Regex(@"\[(.*?)\]"); SocketTextChannel SelectedChannel = Global.Kuro.Client.Guilds.Where(z => z.Name.Trim() == r.Match(e.Item.Text.Trim()).Groups[1].Value.Trim()).FirstOrDefault().Channels.Where(k => k.Name == e.Item.Text.Substring(e.Item.Text.LastIndexOf("#") + 1)).FirstOrDefault() as SocketTextChannel; if (SelectedChannels.Count != 0) { int Findindex = SelectedChannels.FindIndex(k => k.Guild.Name == SelectedChannel.Guild.Name); if (Findindex > -1) { SelectedChannels[Findindex] = SelectedChannel; } else { SelectedChannels.Add(SelectedChannel); } } else { SelectedChannels.Add(SelectedChannel); } Program.UserInterface.Text = "[" + SelectedChannel.Guild.Name + "] " + "#" + SelectedChannel.Name; Program.UserInterface.Refresh(); IEnumerable <IMessage> messages = await(Global.Kuro.Client.GetChannel(SelectedChannel.Id) as SocketTextChannel).GetMessagesAsync(60).Flatten <IMessage>(); await ControlHandler.ClearAsync(SelectedChannel.Guild.Name); for (int i = messages.Count() - 1; i >= 0; i--) { IMessage message = messages.ElementAt(i); string Guild = (message.Channel as SocketGuildChannel).Guild.Name; await ControlHandler.LogCacheAsync("[" + message.Timestamp.LocalDateTime + "] " + "#" + message.Channel.Name + " | " + message.Author + ": " + (message.Attachments.Count != 0 ? "[" + message.Attachments.FirstOrDefault().Url + "] " + message.Content : message.Content), Guild); } } }