Don't crash when user/channel mentions are received in a PM

This commit is contained in:
RogueException
2015-11-01 23:29:18 -04:00
parent 50d8d76e73
commit acc192c689

View File

@@ -24,21 +24,24 @@ namespace Discord
text = _userRegex.Replace(text, new MatchEvaluator(e => text = _userRegex.Replace(text, new MatchEvaluator(e =>
{ {
string id = e.Value.Substring(2, e.Value.Length - 3); string id = e.Value.Substring(2, e.Value.Length - 3);
var user = client.Users[id, server.Id]; var user = client.Users[id, server?.Id];
if (user != null) if (user != null)
return '@' + user.Name; return '@' + user.Name;
else //User not found else //User not found
return '@' + e.Value; return '@' + e.Value;
})); }));
text = _channelRegex.Replace(text, new MatchEvaluator(e => if (server != null)
{ {
string id = e.Value.Substring(2, e.Value.Length - 3); text = _channelRegex.Replace(text, new MatchEvaluator(e =>
var channel = client.Channels[id]; {
if (channel != null && channel.Server.Id == server.Id) string id = e.Value.Substring(2, e.Value.Length - 3);
return '#' + channel.Name; var channel = client.Channels[id];
else //Channel not found if (channel != null && channel.Server.Id == server.Id)
return '#' + channel.Name;
else //Channel not found
return '#' + e.Value; return '#' + e.Value;
})); }));
}
return text; return text;
} }