Browse Source

Fixed websocket message mention detection

tags/1.0-rc
RogueException 8 years ago
parent
commit
c67bd04c5a
2 changed files with 7 additions and 3 deletions
  1. +3
    -0
      src/Discord.Net.Core/Utils/MentionsHelper.cs
  2. +4
    -3
      src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs

+ 3
- 0
src/Discord.Net.Core/Utils/MentionsHelper.cs View File

@@ -62,6 +62,9 @@ namespace Discord
internal static ImmutableArray<TRole> GetRoleMentions<TRole>(string text, IGuild guild)
where TRole : class, IRole
{
if (guild == null)
return ImmutableArray.Create<TRole>();

var matches = _roleRegex.Matches(text);
var builder = ImmutableArray.CreateBuilder<TRole>(matches.Count);
foreach (var match in matches.OfType<Match>())


+ 4
- 3
src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs View File

@@ -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<RestRole>(text, null);
_mentionedUsers = MentionsHelper.GetUserMentions(text, Channel, mentions);
_mentionedChannelIds = MentionsHelper.GetChannelMentions(text, guild);
_mentionedRoles = MentionsHelper.GetRoleMentions<RestRole>(text, guild);
model.Content = text;
}
}


Loading…
Cancel
Save