diff --git a/src/Discord.Net.Core/Utils/MentionsHelper.cs b/src/Discord.Net.Core/Utils/MentionsHelper.cs index 3c2812595..269e235aa 100644 --- a/src/Discord.Net.Core/Utils/MentionsHelper.cs +++ b/src/Discord.Net.Core/Utils/MentionsHelper.cs @@ -62,6 +62,9 @@ namespace Discord internal static ImmutableArray GetRoleMentions(string text, IGuild guild) where TRole : class, IRole { + if (guild == null) + return ImmutableArray.Create(); + var matches = _roleRegex.Matches(text); var builder = ImmutableArray.CreateBuilder(matches.Count); foreach (var match in matches.OfType()) diff --git a/src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs b/src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs index 9f389ad9a..a7c8059ef 100644 --- a/src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs +++ b/src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs @@ -96,10 +96,11 @@ namespace Discord.WebSocket if (model.Content.IsSpecified) { var text = model.Content.Value; + var guild = (Channel as SocketGuildChannel)?.Guild; - _mentionedUsers = MentionsHelper.GetUserMentions(text, null, mentions); - _mentionedChannelIds = MentionsHelper.GetChannelMentions(text, null); - _mentionedRoles = MentionsHelper.GetRoleMentions(text, null); + _mentionedUsers = MentionsHelper.GetUserMentions(text, Channel, mentions); + _mentionedChannelIds = MentionsHelper.GetChannelMentions(text, guild); + _mentionedRoles = MentionsHelper.GetRoleMentions(text, guild); model.Content = text; } }