From 21c38412ad1ea80e849d7379af9003f94786bce0 Mon Sep 17 00:00:00 2001 From: RogueException Date: Sat, 8 Oct 2016 18:38:41 -0300 Subject: [PATCH] Changed snowflake GetCreatedAt() -> CreatedAt --- src/Discord.Net.Core/Entities/ISnowflakeEntity.cs | 3 +++ .../Extensions/SnowflakeEntityExtensions.cs | 10 ---------- src/Discord.Net.Rest/Entities/Channels/RestChannel.cs | 2 ++ .../Entities/Channels/RestVirtualMessageChannel.cs | 4 ++-- src/Discord.Net.Rest/Entities/Guilds/RestGuild.cs | 1 + src/Discord.Net.Rest/Entities/Guilds/RestUserGuild.cs | 4 +++- src/Discord.Net.Rest/Entities/Messages/RestMessage.cs | 1 + src/Discord.Net.Rest/Entities/RestApplication.cs | 1 + src/Discord.Net.Rest/Entities/Roles/RestRole.cs | 1 + src/Discord.Net.Rest/Entities/Users/RestUser.cs | 4 +++- src/Discord.Net.Rpc/Entities/Channels/RpcChannel.cs | 2 ++ src/Discord.Net.Rpc/Entities/Messages/RpcMessage.cs | 1 + src/Discord.Net.Rpc/Entities/Users/RpcUser.cs | 2 ++ .../Entities/Channels/SocketChannel.cs | 1 + .../Entities/Guilds/SocketGuild.cs | 1 + .../Entities/Messages/SocketMessage.cs | 1 + .../Entities/Messages/SocketUserMessage.cs | 2 +- src/Discord.Net.WebSocket/Entities/Roles/SocketRole.cs | 1 + src/Discord.Net.WebSocket/Entities/Users/SocketUser.cs | 2 ++ 19 files changed, 29 insertions(+), 15 deletions(-) delete mode 100644 src/Discord.Net.Core/Extensions/SnowflakeEntityExtensions.cs diff --git a/src/Discord.Net.Core/Entities/ISnowflakeEntity.cs b/src/Discord.Net.Core/Entities/ISnowflakeEntity.cs index 6eb947bf8..5b099b5ac 100644 --- a/src/Discord.Net.Core/Entities/ISnowflakeEntity.cs +++ b/src/Discord.Net.Core/Entities/ISnowflakeEntity.cs @@ -1,6 +1,9 @@ +using System; + namespace Discord { public interface ISnowflakeEntity : IEntity { + DateTimeOffset CreatedAt { get; } } } diff --git a/src/Discord.Net.Core/Extensions/SnowflakeEntityExtensions.cs b/src/Discord.Net.Core/Extensions/SnowflakeEntityExtensions.cs deleted file mode 100644 index 271ad9e00..000000000 --- a/src/Discord.Net.Core/Extensions/SnowflakeEntityExtensions.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; - -namespace Discord.Extensions -{ - public static class SnowflakeEntityExtensions - { - //TODO: C#7 Candidate for extension property. - public static DateTimeOffset GetCreatedAt(this ISnowflakeEntity entity) => DateTimeUtils.FromSnowflake(entity.Id); - } -} diff --git a/src/Discord.Net.Rest/Entities/Channels/RestChannel.cs b/src/Discord.Net.Rest/Entities/Channels/RestChannel.cs index e2a98e282..0481d37ed 100644 --- a/src/Discord.Net.Rest/Entities/Channels/RestChannel.cs +++ b/src/Discord.Net.Rest/Entities/Channels/RestChannel.cs @@ -8,6 +8,8 @@ namespace Discord.Rest { public abstract class RestChannel : RestEntity, IChannel, IUpdateable { + public DateTimeOffset CreatedAt => DateTimeUtils.FromSnowflake(Id); + internal RestChannel(BaseDiscordClient discord, ulong id) : base(discord, id) { diff --git a/src/Discord.Net.Rest/Entities/Channels/RestVirtualMessageChannel.cs b/src/Discord.Net.Rest/Entities/Channels/RestVirtualMessageChannel.cs index 75f6e836f..d9fcfb358 100644 --- a/src/Discord.Net.Rest/Entities/Channels/RestVirtualMessageChannel.cs +++ b/src/Discord.Net.Rest/Entities/Channels/RestVirtualMessageChannel.cs @@ -1,5 +1,4 @@ -using Discord.Rest; -using System; +using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; @@ -12,6 +11,7 @@ namespace Discord.Rest [DebuggerDisplay(@"{DebuggerDisplay,nq}")] internal class RestVirtualMessageChannel : RestEntity, IMessageChannel { + public DateTimeOffset CreatedAt => DateTimeUtils.FromSnowflake(Id); public string Mention => MentionUtils.MentionChannel(Id); internal RestVirtualMessageChannel(BaseDiscordClient discord, ulong id) diff --git a/src/Discord.Net.Rest/Entities/Guilds/RestGuild.cs b/src/Discord.Net.Rest/Entities/Guilds/RestGuild.cs index 7b68260de..a0ba7a6de 100644 --- a/src/Discord.Net.Rest/Entities/Guilds/RestGuild.cs +++ b/src/Discord.Net.Rest/Entities/Guilds/RestGuild.cs @@ -33,6 +33,7 @@ namespace Discord.Rest public string SplashId { get; private set; } internal bool Available { get; private set; } + public DateTimeOffset CreatedAt => DateTimeUtils.FromSnowflake(Id); public ulong DefaultChannelId => Id; public string IconUrl => API.CDN.GetGuildIconUrl(Id, IconId); public string SplashUrl => API.CDN.GetGuildSplashUrl(Id, SplashId); diff --git a/src/Discord.Net.Rest/Entities/Guilds/RestUserGuild.cs b/src/Discord.Net.Rest/Entities/Guilds/RestUserGuild.cs index c6334bfb1..69c2c9362 100644 --- a/src/Discord.Net.Rest/Entities/Guilds/RestUserGuild.cs +++ b/src/Discord.Net.Rest/Entities/Guilds/RestUserGuild.cs @@ -1,4 +1,5 @@ -using System.Diagnostics; +using System; +using System.Diagnostics; using System.Threading.Tasks; using Model = Discord.API.UserGuild; @@ -13,6 +14,7 @@ namespace Discord.Rest public bool IsOwner { get; private set; } public GuildPermissions Permissions { get; private set; } + public DateTimeOffset CreatedAt => DateTimeUtils.FromSnowflake(Id); public string IconUrl => API.CDN.GetGuildIconUrl(Id, _iconId); internal RestUserGuild(BaseDiscordClient discord, ulong id) diff --git a/src/Discord.Net.Rest/Entities/Messages/RestMessage.cs b/src/Discord.Net.Rest/Entities/Messages/RestMessage.cs index ff54dad98..e89d6faf7 100644 --- a/src/Discord.Net.Rest/Entities/Messages/RestMessage.cs +++ b/src/Discord.Net.Rest/Entities/Messages/RestMessage.cs @@ -17,6 +17,7 @@ namespace Discord.Rest public string Content { get; private set; } + public DateTimeOffset CreatedAt => DateTimeUtils.FromSnowflake(Id); public virtual bool IsTTS => false; public virtual bool IsPinned => false; public virtual DateTimeOffset? EditedTimestamp => null; diff --git a/src/Discord.Net.Rest/Entities/RestApplication.cs b/src/Discord.Net.Rest/Entities/RestApplication.cs index f06f03485..62b434044 100644 --- a/src/Discord.Net.Rest/Entities/RestApplication.cs +++ b/src/Discord.Net.Rest/Entities/RestApplication.cs @@ -17,6 +17,7 @@ namespace Discord.Rest public IUser Owner { get; private set; } + public DateTimeOffset CreatedAt => DateTimeUtils.FromSnowflake(Id); public string IconUrl => API.CDN.GetApplicationIconUrl(Id, _iconId); internal RestApplication(BaseDiscordClient discord, ulong id) diff --git a/src/Discord.Net.Rest/Entities/Roles/RestRole.cs b/src/Discord.Net.Rest/Entities/Roles/RestRole.cs index 16b521b1d..6e81ce9df 100644 --- a/src/Discord.Net.Rest/Entities/Roles/RestRole.cs +++ b/src/Discord.Net.Rest/Entities/Roles/RestRole.cs @@ -18,6 +18,7 @@ namespace Discord.Rest public GuildPermissions Permissions { get; private set; } public int Position { get; private set; } + public DateTimeOffset CreatedAt => DateTimeUtils.FromSnowflake(Id); public bool IsEveryone => Id == Guild.Id; public string Mention => MentionUtils.MentionRole(Id); diff --git a/src/Discord.Net.Rest/Entities/Users/RestUser.cs b/src/Discord.Net.Rest/Entities/Users/RestUser.cs index 681be24c4..25419932f 100644 --- a/src/Discord.Net.Rest/Entities/Users/RestUser.cs +++ b/src/Discord.Net.Rest/Entities/Users/RestUser.cs @@ -1,4 +1,5 @@ -using System.Diagnostics; +using System; +using System.Diagnostics; using System.Threading.Tasks; using Model = Discord.API.User; @@ -13,6 +14,7 @@ namespace Discord.Rest public string AvatarId { get; private set; } public string AvatarUrl => API.CDN.GetUserAvatarUrl(Id, AvatarId); + public DateTimeOffset CreatedAt => DateTimeUtils.FromSnowflake(Id); public string Discriminator => DiscriminatorValue.ToString("D4"); public string Mention => MentionUtils.MentionUser(Id); public virtual Game? Game => null; diff --git a/src/Discord.Net.Rpc/Entities/Channels/RpcChannel.cs b/src/Discord.Net.Rpc/Entities/Channels/RpcChannel.cs index cd69fd38e..934dae94b 100644 --- a/src/Discord.Net.Rpc/Entities/Channels/RpcChannel.cs +++ b/src/Discord.Net.Rpc/Entities/Channels/RpcChannel.cs @@ -8,6 +8,8 @@ namespace Discord.Rpc { public string Name { get; private set; } + public DateTimeOffset CreatedAt => DateTimeUtils.FromSnowflake(Id); + internal RpcChannel(DiscordRpcClient discord, ulong id) : base(discord, id) { diff --git a/src/Discord.Net.Rpc/Entities/Messages/RpcMessage.cs b/src/Discord.Net.Rpc/Entities/Messages/RpcMessage.cs index 72c2e134a..3f4d102bf 100644 --- a/src/Discord.Net.Rpc/Entities/Messages/RpcMessage.cs +++ b/src/Discord.Net.Rpc/Entities/Messages/RpcMessage.cs @@ -15,6 +15,7 @@ namespace Discord.Rpc public string Content { get; private set; } public Color AuthorColor { get; private set; } + public DateTimeOffset CreatedAt => DateTimeUtils.FromSnowflake(Id); public virtual bool IsTTS => false; public virtual bool IsPinned => false; public virtual bool IsBlocked => false; diff --git a/src/Discord.Net.Rpc/Entities/Users/RpcUser.cs b/src/Discord.Net.Rpc/Entities/Users/RpcUser.cs index be2562114..360039beb 100644 --- a/src/Discord.Net.Rpc/Entities/Users/RpcUser.cs +++ b/src/Discord.Net.Rpc/Entities/Users/RpcUser.cs @@ -1,4 +1,5 @@ using Discord.Rest; +using System; using System.Diagnostics; using System.Threading.Tasks; using Model = Discord.API.User; @@ -14,6 +15,7 @@ namespace Discord.Rpc public string AvatarId { get; private set; } public string AvatarUrl => API.CDN.GetUserAvatarUrl(Id, AvatarId); + public DateTimeOffset CreatedAt => DateTimeUtils.FromSnowflake(Id); public string Discriminator => DiscriminatorValue.ToString("D4"); public string Mention => MentionUtils.MentionUser(Id); public virtual Game? Game => null; diff --git a/src/Discord.Net.WebSocket/Entities/Channels/SocketChannel.cs b/src/Discord.Net.WebSocket/Entities/Channels/SocketChannel.cs index 820f3dbcb..f982e66b5 100644 --- a/src/Discord.Net.WebSocket/Entities/Channels/SocketChannel.cs +++ b/src/Discord.Net.WebSocket/Entities/Channels/SocketChannel.cs @@ -10,6 +10,7 @@ namespace Discord.WebSocket [DebuggerDisplay(@"{DebuggerDisplay,nq}")] public abstract class SocketChannel : SocketEntity, IChannel { + public DateTimeOffset CreatedAt => DateTimeUtils.FromSnowflake(Id); public IReadOnlyCollection Users => GetUsersInternal(); internal SocketChannel(DiscordSocketClient discord, ulong id) diff --git a/src/Discord.Net.WebSocket/Entities/Guilds/SocketGuild.cs b/src/Discord.Net.WebSocket/Entities/Guilds/SocketGuild.cs index 54a4d5153..d87b82c6f 100644 --- a/src/Discord.Net.WebSocket/Entities/Guilds/SocketGuild.cs +++ b/src/Discord.Net.WebSocket/Entities/Guilds/SocketGuild.cs @@ -51,6 +51,7 @@ namespace Discord.WebSocket public string IconId { get; private set; } public string SplashId { get; private set; } + public DateTimeOffset CreatedAt => DateTimeUtils.FromSnowflake(Id); public ulong DefaultChannelId => Id; public string IconUrl => API.CDN.GetGuildIconUrl(Id, IconId); public string SplashUrl => API.CDN.GetGuildSplashUrl(Id, SplashId); diff --git a/src/Discord.Net.WebSocket/Entities/Messages/SocketMessage.cs b/src/Discord.Net.WebSocket/Entities/Messages/SocketMessage.cs index 709f36fa0..0043ff8d2 100644 --- a/src/Discord.Net.WebSocket/Entities/Messages/SocketMessage.cs +++ b/src/Discord.Net.WebSocket/Entities/Messages/SocketMessage.cs @@ -15,6 +15,7 @@ namespace Discord.WebSocket public string Content { get; private set; } + public DateTimeOffset CreatedAt => DateTimeUtils.FromSnowflake(Id); public virtual bool IsTTS => false; public virtual bool IsPinned => false; public virtual DateTimeOffset? EditedTimestamp => null; diff --git a/src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs b/src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs index 91d798f5b..81a9ff4c7 100644 --- a/src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs +++ b/src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs @@ -18,7 +18,7 @@ namespace Discord.WebSocket private ImmutableArray _attachments; private ImmutableArray _embeds; private ImmutableArray _tags; - + public override bool IsTTS => _isTTS; public override bool IsPinned => _isPinned; public override ulong? WebhookId => _webhookId; diff --git a/src/Discord.Net.WebSocket/Entities/Roles/SocketRole.cs b/src/Discord.Net.WebSocket/Entities/Roles/SocketRole.cs index 7b47709f5..515389da1 100644 --- a/src/Discord.Net.WebSocket/Entities/Roles/SocketRole.cs +++ b/src/Discord.Net.WebSocket/Entities/Roles/SocketRole.cs @@ -20,6 +20,7 @@ namespace Discord.WebSocket public GuildPermissions Permissions { get; private set; } public int Position { get; private set; } + public DateTimeOffset CreatedAt => DateTimeUtils.FromSnowflake(Id); public bool IsEveryone => Id == Guild.Id; public string Mention => MentionUtils.MentionRole(Id); diff --git a/src/Discord.Net.WebSocket/Entities/Users/SocketUser.cs b/src/Discord.Net.WebSocket/Entities/Users/SocketUser.cs index 14018b9e2..674239be7 100644 --- a/src/Discord.Net.WebSocket/Entities/Users/SocketUser.cs +++ b/src/Discord.Net.WebSocket/Entities/Users/SocketUser.cs @@ -1,4 +1,5 @@ using Discord.Rest; +using System; using System.Threading.Tasks; using Model = Discord.API.User; using PresenceModel = Discord.API.Presence; @@ -15,6 +16,7 @@ namespace Discord.WebSocket internal abstract SocketPresence Presence { get; set; } public string AvatarUrl => API.CDN.GetUserAvatarUrl(Id, AvatarId); + public DateTimeOffset CreatedAt => DateTimeUtils.FromSnowflake(Id); public string Discriminator => DiscriminatorValue.ToString("D4"); public string Mention => MentionUtils.MentionUser(Id); public Game? Game => Presence.Game;