From ac6b263516cf254cede4848094e65452b5e2f4e2 Mon Sep 17 00:00:00 2001 From: Chris Johnston Date: Sun, 2 Jun 2019 16:34:47 -0700 Subject: [PATCH] Set the @everyone IRole for @everyone and @here tags Adds support for setting the IRole corresponding to @everyone or @here in a the tags of a message. Previously this would only set the TagType, but leave the value as null. This does not distinguish between @everyone and @here, as that's done using TagType. The values of both will be the same. This issue was suggested by @TheCasino --- .../Entities/Messages/MessageHelper.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Discord.Net.Rest/Entities/Messages/MessageHelper.cs b/src/Discord.Net.Rest/Entities/Messages/MessageHelper.cs index b963fd532..1cbd533c6 100644 --- a/src/Discord.Net.Rest/Entities/Messages/MessageHelper.cs +++ b/src/Discord.Net.Rest/Entities/Messages/MessageHelper.cs @@ -152,10 +152,13 @@ namespace Discord.Rest { index = text.IndexOf("@everyone", index); if (index == -1) break; + IRole mentionedRole = null; + if (guild != null) + mentionedRole = guild.GetRole(guild.Id); var tagIndex = FindIndex(tags, index); if (tagIndex.HasValue) - tags.Insert(tagIndex.Value, new Tag(TagType.EveryoneMention, index, "@everyone".Length, 0, null)); + tags.Insert(tagIndex.Value, new Tag(TagType.EveryoneMention, index, "@everyone".Length, 0, mentionedRole)); index++; } @@ -164,10 +167,13 @@ namespace Discord.Rest { index = text.IndexOf("@here", index); if (index == -1) break; + IRole mentionedRole = null; + if (guild != null) + mentionedRole = guild.GetRole(guild.Id); var tagIndex = FindIndex(tags, index); if (tagIndex.HasValue) - tags.Insert(tagIndex.Value, new Tag(TagType.HereMention, index, "@here".Length, 0, null)); + tags.Insert(tagIndex.Value, new Tag(TagType.HereMention, index, "@here".Length, 0, mentionedRole)); index++; }