diff --git a/src/Discord.Net/Helpers/Mention.cs b/src/Discord.Net/Helpers/Mention.cs index 69553fbd7..b3c6ac649 100644 --- a/src/Discord.Net/Helpers/Mention.cs +++ b/src/Discord.Net/Helpers/Mention.cs @@ -52,11 +52,12 @@ namespace Discord return '#' + e.Value; })); } - internal static string CleanRoleMentions(DiscordClient client, Server server, string text, List roles = null) + internal static string CleanRoleMentions(DiscordClient client, User user, Channel channel, string text, List roles = null) { return _roleRegex.Replace(text, new MatchEvaluator(e => { - roles.Add(server.EveryoneRole); + if (roles != null && user.GetPermissions(channel).MentionEveryone) + roles.Add(channel.Server.EveryoneRole); return e.Value; })); } diff --git a/src/Discord.Net/Models/Message.cs b/src/Discord.Net/Models/Message.cs index 57efc1e64..a9d045414 100644 --- a/src/Discord.Net/Models/Message.cs +++ b/src/Discord.Net/Models/Message.cs @@ -177,7 +177,8 @@ namespace Discord internal void Update(MessageInfo model) { - var server = Server; + var channel = Channel; + var server = channel.Server; if (model.Attachments != null) { Attachments = model.Attachments @@ -226,7 +227,7 @@ namespace Discord if (server != null) { text = Mention.CleanChannelMentions(_client, server, text, mentionedChannels); - text = Mention.CleanRoleMentions(_client, server, text, mentionedRoles); + text = Mention.CleanRoleMentions(_client, User, channel, text, mentionedRoles); } Text = text;