Fixed nullref in channel mention resolving for DM channels

This commit is contained in:
RogueException
2016-08-16 20:29:39 -03:00
parent 8ea812cba3
commit 7b130f6528
2 changed files with 15 additions and 16 deletions

View File

@@ -1,5 +1,4 @@
using Discord.API.Rest;
using Discord.Rest;
using System;
using System.Collections.Generic;
using System.Collections.Immutable;

View File

@@ -208,30 +208,30 @@ namespace Discord
{
if (mode == ChannelMentionHandling.Ignore) return text;
if (guild.IsAttached) //It's too expensive to do a channel lookup in REST mode
return _channelRegex.Replace(text, new MatchEvaluator(e =>
{
return _channelRegex.Replace(text, new MatchEvaluator(e =>
ulong id;
if (ulong.TryParse(e.Groups[1].Value, NumberStyles.None, CultureInfo.InvariantCulture, out id))
{
ulong id;
if (ulong.TryParse(e.Groups[1].Value, NumberStyles.None, CultureInfo.InvariantCulture, out id))
switch (mode)
{
switch (mode)
{
case ChannelMentionHandling.Remove:
return "";
case ChannelMentionHandling.Name:
case ChannelMentionHandling.Remove:
return "";
case ChannelMentionHandling.Name:
if (guild != null && guild.IsAttached) //It's too expensive to do a channel lookup in REST mode
{
IGuildChannel channel = null;
channel = guild?.GetChannel(id);
channel = guild.GetChannel(id);
if (channel != null)
return $"#{channel.Name}";
else
return $"#deleted-channel";
}
}
break;
}
return e.Value;
}));
}
return text;
}
return e.Value;
}));
}
internal static string ResolveRoleMentions(string text, IReadOnlyCollection<IRole> mentions, RoleMentionHandling mode)
{