fix: crashing if user doesn't have access to channel
This commit is contained in:
parent
57734b62dd
commit
1d940b0f7d
1 changed files with 53 additions and 49 deletions
102
Program.cs
102
Program.cs
|
@ -186,62 +186,66 @@ namespace chord
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var restSharpClient = new RestClient("https://discord.com/api/v9");
|
try {
|
||||||
var restSharpReq = new RestRequest($"channels/{currentSelectedChannel}/messages");
|
var restSharpClient = new RestClient("https://discord.com/api/v9");
|
||||||
restSharpClient.AddDefaultHeader("Authorization", settings.Token);
|
var restSharpReq = new RestRequest($"channels/{currentSelectedChannel}/messages");
|
||||||
|
restSharpClient.AddDefaultHeader("Authorization", settings.Token);
|
||||||
|
|
||||||
var response = await restSharpClient.GetAsync<List<GetMessagesResponse>>(restSharpReq);
|
var response = await restSharpClient.GetAsync<List<GetMessagesResponse>>(restSharpReq);
|
||||||
|
|
||||||
var messages = new List<string>();
|
var messages = new List<string>();
|
||||||
|
|
||||||
foreach (var msg in response)
|
foreach (var msg in response)
|
||||||
{
|
|
||||||
var msgNewLines = msg.content.Split("\n").ToList();
|
|
||||||
|
|
||||||
var firstMsg = msgNewLines[0];
|
|
||||||
|
|
||||||
msgNewLines.RemoveAt(0);
|
|
||||||
msgNewLines.Reverse();
|
|
||||||
|
|
||||||
messages.AddRange(msgNewLines.Select(message => $"{message}"));
|
|
||||||
|
|
||||||
messages.Add($"{msg.author.username}#{msg.author.discriminator} | {firstMsg}");
|
|
||||||
|
|
||||||
if (msg.embeds.Count != 0)
|
|
||||||
messages.Add($"{msg.author.username}#{msg.author.discriminator} | [Unable to display embed]");
|
|
||||||
|
|
||||||
if (msg.attachments.Count == 0) continue;
|
|
||||||
messages.AddRange(msg.attachments
|
|
||||||
.Select(attachment => $"{msg.author.username}#{msg.author.discriminator} | {attachment.url}")
|
|
||||||
.Select(dummy => dummy));
|
|
||||||
}
|
|
||||||
|
|
||||||
messages.Reverse();
|
|
||||||
|
|
||||||
await chatBoxList.SetSourceAsync(messages);
|
|
||||||
currentChannelMessages = messages;
|
|
||||||
|
|
||||||
chatBoxList.ScrollDown(currentChannelMessages.Count - chatBoxList.Bounds.Height);
|
|
||||||
chatBoxList.SelectedItem = currentChannelMessages.Count - 1;
|
|
||||||
|
|
||||||
var rolesDict = new SortedDictionary<int, TreeNode>();
|
|
||||||
|
|
||||||
foreach (var roles in client.GetGuild(currentSelectedGuild).Roles)
|
|
||||||
{
|
|
||||||
var roleName = Regex.Replace(roles.Name, @"[^\u0000-\u007F]+", string.Empty);
|
|
||||||
var node = new TreeNode(roleName);
|
|
||||||
|
|
||||||
foreach (var users in roles.Members)
|
|
||||||
{
|
{
|
||||||
node.Children.Add(new TreeNode($"{users.Username}#{users.Discriminator} ({users.Nickname})"));
|
var msgNewLines = msg.content.Split("\n").ToList();
|
||||||
|
|
||||||
|
var firstMsg = msgNewLines[0];
|
||||||
|
|
||||||
|
msgNewLines.RemoveAt(0);
|
||||||
|
msgNewLines.Reverse();
|
||||||
|
|
||||||
|
messages.AddRange(msgNewLines.Select(message => $"{message}"));
|
||||||
|
|
||||||
|
messages.Add($"{msg.author.username}#{msg.author.discriminator} | {firstMsg}");
|
||||||
|
|
||||||
|
if (msg.embeds.Count != 0)
|
||||||
|
messages.Add($"{msg.author.username}#{msg.author.discriminator} | [Unable to display embed]");
|
||||||
|
|
||||||
|
if (msg.attachments.Count == 0) continue;
|
||||||
|
messages.AddRange(msg.attachments
|
||||||
|
.Select(attachment => $"{msg.author.username}#{msg.author.discriminator} | {attachment.url}")
|
||||||
|
.Select(dummy => dummy));
|
||||||
}
|
}
|
||||||
|
|
||||||
rolesDict.Add(roles.Position, node);
|
messages.Reverse();
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var role in rolesDict)
|
await chatBoxList.SetSourceAsync(messages);
|
||||||
{
|
currentChannelMessages = messages;
|
||||||
userListTree.AddObject(role.Value);
|
|
||||||
|
chatBoxList.ScrollDown(currentChannelMessages.Count - chatBoxList.Bounds.Height);
|
||||||
|
chatBoxList.SelectedItem = currentChannelMessages.Count - 1;
|
||||||
|
|
||||||
|
var rolesDict = new SortedDictionary<int, TreeNode>();
|
||||||
|
|
||||||
|
foreach (var roles in client.GetGuild(currentSelectedGuild).Roles)
|
||||||
|
{
|
||||||
|
var roleName = Regex.Replace(roles.Name, @"[^\u0000-\u007F]+", string.Empty);
|
||||||
|
var node = new TreeNode(roleName);
|
||||||
|
|
||||||
|
foreach (var users in roles.Members)
|
||||||
|
{
|
||||||
|
node.Children.Add(new TreeNode($"{users.Username}#{users.Discriminator} ({users.Nickname})"));
|
||||||
|
}
|
||||||
|
|
||||||
|
rolesDict.Add(roles.Position, node);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var role in rolesDict)
|
||||||
|
{
|
||||||
|
userListTree.AddObject(role.Value);
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
await chatBoxList.SetSourceAsync(new List<string>());
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Reference in a new issue