From 846e29946154eafff1d2010c4fddf1395932b43e Mon Sep 17 00:00:00 2001 From: RogueException Date: Sun, 27 Dec 2015 15:56:10 -0400 Subject: [PATCH] Made Message.IsMentioningMe a function with includeRoles flag --- src/Discord.Net/Models/Message.cs | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/src/Discord.Net/Models/Message.cs b/src/Discord.Net/Models/Message.cs index 803a22993..43f5cb9d8 100644 --- a/src/Discord.Net/Models/Message.cs +++ b/src/Discord.Net/Models/Message.cs @@ -172,8 +172,6 @@ namespace Discord /// Returns the channel this message was sent to. public Channel Channel { get; } - /// Returns true if the logged-in user was mentioned. - public bool IsMentioningMe { get; private set; } /// Returns true if the message was sent as text-to-speech by someone with permissions to do so. public bool IsTTS { get; private set; } /// Returns the state of this message. Only useful if UseMessageQueue is true. @@ -197,7 +195,7 @@ namespace Discord public IEnumerable MentionedChannels { get; internal set; } /// Returns a collection of all roles mentioned in this message. public IEnumerable MentionedRoles { get; internal set; } - + /// Returns the server containing the channel this message was sent to. public Server Server => Channel.Server; /// Returns the author of this message. @@ -299,18 +297,6 @@ namespace Discord MentionedChannels = mentionedChannels; //MentionedRoles = mentionedRoles; } - - if (server != null) - { - var me = server.CurrentUser; - IsMentioningMe = (MentionedUsers?.Contains(me) ?? false) || - (MentionedRoles?.Any(x => me.HasRole(x)) ?? false); - } - else - { - var me = Channel.Client.PrivateUser; - IsMentioningMe = MentionedUsers?.Contains(me) ?? false; - } } public async Task Edit(string text) @@ -333,7 +319,6 @@ namespace Discord await Client.ClientAPI.Send(request).ConfigureAwait(false); } } - public async Task Delete() { var request = new DeleteMessageRequest(Channel.Id, Id); @@ -349,6 +334,19 @@ namespace Discord return TaskHelper.CompletedTask; } + /// Returns true if the logged-in user was mentioned. + public bool IsMentioningMe(bool includeRoles = false) + { + User me = Server != null ? Server.CurrentUser : Channel.Client.PrivateUser; + if (includeRoles) + { + return (MentionedUsers?.Contains(me) ?? false) || + (MentionedRoles?.Any(x => me.HasRole(x)) ?? false); + } + else + return MentionedUsers?.Contains(me) ?? false; + } + /// Resolves all mentions in a provided string to those users, channels or roles' names. public string Resolve(string text) {