From ea0e6ab62b004438aaee2016d4d59728c328784c Mon Sep 17 00:00:00 2001 From: RogueException Date: Mon, 11 Jan 2016 05:34:45 -0400 Subject: [PATCH] Added IMentionable --- src/Discord.Net.Net45/Discord.Net.csproj | 3 +++ src/Discord.Net/IMentionable.cs | 7 +++++++ src/Discord.Net/Models/Channel.cs | 2 +- src/Discord.Net/Models/Role.cs | 13 ++----------- src/Discord.Net/Models/User.cs | 2 +- 5 files changed, 14 insertions(+), 13 deletions(-) create mode 100644 src/Discord.Net/IMentionable.cs diff --git a/src/Discord.Net.Net45/Discord.Net.csproj b/src/Discord.Net.Net45/Discord.Net.csproj index c86d20878..68a8e952a 100644 --- a/src/Discord.Net.Net45/Discord.Net.csproj +++ b/src/Discord.Net.Net45/Discord.Net.csproj @@ -424,6 +424,9 @@ Format.cs + + IMentionable.cs + IService.cs diff --git a/src/Discord.Net/IMentionable.cs b/src/Discord.Net/IMentionable.cs new file mode 100644 index 000000000..0a4bf439c --- /dev/null +++ b/src/Discord.Net/IMentionable.cs @@ -0,0 +1,7 @@ +namespace Discord +{ + public interface IMentionable + { + string Mention { get; } + } +} diff --git a/src/Discord.Net/Models/Channel.cs b/src/Discord.Net/Models/Channel.cs index 78c593840..a2d046687 100644 --- a/src/Discord.Net/Models/Channel.cs +++ b/src/Discord.Net/Models/Channel.cs @@ -12,7 +12,7 @@ using APIChannel = Discord.API.Client.Channel; namespace Discord { - public sealed class Channel + public sealed class Channel : IMentionable { private struct Member { diff --git a/src/Discord.Net/Models/Role.cs b/src/Discord.Net/Models/Role.cs index 33d62b3a9..82af792c3 100644 --- a/src/Discord.Net/Models/Role.cs +++ b/src/Discord.Net/Models/Role.cs @@ -9,7 +9,7 @@ using APIRole = Discord.API.Client.Role; namespace Discord { - public sealed class Role + public sealed class Role : IMentionable { internal DiscordClient Client => Server.Client; @@ -37,16 +37,7 @@ namespace Discord public IEnumerable Members => IsEveryone ? Server.Users : Server.Users.Where(x => x.HasRole(this)); /// Gets the string used to mention this role. - public string Mention - { - get - { - if (IsEveryone) - return "@everyone"; - else - throw new InvalidOperationException("Roles may only be mentioned if IsEveryone is true"); - } - } + public string Mention => IsEveryone ? "@everyone" : ""; internal Role(ulong id, Server server) { diff --git a/src/Discord.Net/Models/User.cs b/src/Discord.Net/Models/User.cs index c3caf589d..96d0a5e41 100644 --- a/src/Discord.Net/Models/User.cs +++ b/src/Discord.Net/Models/User.cs @@ -9,7 +9,7 @@ using APIMember = Discord.API.Client.Member; namespace Discord { - public sealed class User + public sealed class User : IMentionable { internal static string GetAvatarUrl(ulong userId, string avatarId) => avatarId != null ? $"{DiscordConfig.ClientAPIUrl}users/{userId}/avatars/{avatarId}.jpg" : null;