| @@ -6,7 +6,7 @@ | |||||
| public abstract DiscordClient Discord { get; } | public abstract DiscordClient Discord { get; } | ||||
| public bool IsAttached => this is ICachedEntity<T>; | |||||
| bool IEntity<T>.IsAttached => false; | |||||
| public Entity(T id) | public Entity(T id) | ||||
| { | { | ||||
| @@ -8,6 +8,8 @@ namespace Discord | |||||
| { | { | ||||
| internal class CachedDMChannel : DMChannel, IDMChannel, ICachedChannel, ICachedMessageChannel, ICachedPrivateChannel | internal class CachedDMChannel : DMChannel, IDMChannel, ICachedChannel, ICachedMessageChannel, ICachedPrivateChannel | ||||
| { | { | ||||
| bool IEntity<ulong>.IsAttached => true; | |||||
| private readonly MessageManager _messages; | private readonly MessageManager _messages; | ||||
| public new DiscordSocketClient Discord => base.Discord as DiscordSocketClient; | public new DiscordSocketClient Discord => base.Discord as DiscordSocketClient; | ||||
| @@ -7,6 +7,8 @@ namespace Discord | |||||
| [DebuggerDisplay("{DebuggerDisplay,nq}")] | [DebuggerDisplay("{DebuggerDisplay,nq}")] | ||||
| internal class CachedDMUser : ICachedUser | internal class CachedDMUser : ICachedUser | ||||
| { | { | ||||
| bool IEntity<ulong>.IsAttached => true; | |||||
| public CachedGlobalUser User { get; } | public CachedGlobalUser User { get; } | ||||
| public DiscordSocketClient Discord => User.Discord; | public DiscordSocketClient Discord => User.Discord; | ||||
| @@ -6,6 +6,8 @@ namespace Discord | |||||
| { | { | ||||
| internal class CachedGlobalUser : User, ICachedUser | internal class CachedGlobalUser : User, ICachedUser | ||||
| { | { | ||||
| bool IEntity<ulong>.IsAttached => true; | |||||
| private ushort _references; | private ushort _references; | ||||
| public Presence Presence { get; private set; } | public Presence Presence { get; private set; } | ||||
| @@ -13,6 +13,8 @@ namespace Discord | |||||
| { | { | ||||
| internal class CachedGroupChannel : GroupChannel, IGroupChannel, ICachedChannel, ICachedMessageChannel, ICachedPrivateChannel | internal class CachedGroupChannel : GroupChannel, IGroupChannel, ICachedChannel, ICachedMessageChannel, ICachedPrivateChannel | ||||
| { | { | ||||
| bool IEntity<ulong>.IsAttached => true; | |||||
| private readonly MessageManager _messages; | private readonly MessageManager _messages; | ||||
| private ConcurrentDictionary<ulong, VoiceState> _voiceStates; | private ConcurrentDictionary<ulong, VoiceState> _voiceStates; | ||||
| @@ -5,6 +5,8 @@ namespace Discord | |||||
| [DebuggerDisplay("{DebuggerDisplay,nq}")] | [DebuggerDisplay("{DebuggerDisplay,nq}")] | ||||
| internal class CachedGroupUser : GroupUser, ICachedUser | internal class CachedGroupUser : GroupUser, ICachedUser | ||||
| { | { | ||||
| bool IEntity<ulong>.IsAttached => true; | |||||
| public new DiscordSocketClient Discord => base.Discord as DiscordSocketClient; | public new DiscordSocketClient Discord => base.Discord as DiscordSocketClient; | ||||
| public new CachedGroupChannel Channel => base.Channel as CachedGroupChannel; | public new CachedGroupChannel Channel => base.Channel as CachedGroupChannel; | ||||
| public new CachedGlobalUser User => base.User as CachedGlobalUser; | public new CachedGlobalUser User => base.User as CachedGlobalUser; | ||||
| @@ -19,8 +19,10 @@ using VoiceStateModel = Discord.API.VoiceState; | |||||
| namespace Discord | namespace Discord | ||||
| { | { | ||||
| internal class CachedGuild : Guild, ICachedEntity<ulong>, IGuild, IUserGuild | |||||
| internal class CachedGuild : Guild, IGuild, IUserGuild | |||||
| { | { | ||||
| bool IEntity<ulong>.IsAttached => true; | |||||
| private readonly SemaphoreSlim _audioLock; | private readonly SemaphoreSlim _audioLock; | ||||
| private TaskCompletionSource<bool> _syncPromise, _downloaderPromise; | private TaskCompletionSource<bool> _syncPromise, _downloaderPromise; | ||||
| private ConcurrentHashSet<ulong> _channels; | private ConcurrentHashSet<ulong> _channels; | ||||
| @@ -5,6 +5,8 @@ namespace Discord | |||||
| { | { | ||||
| internal class CachedGuildUser : GuildUser, ICachedUser | internal class CachedGuildUser : GuildUser, ICachedUser | ||||
| { | { | ||||
| bool IEntity<ulong>.IsAttached => true; | |||||
| public new DiscordSocketClient Discord => base.Discord as DiscordSocketClient; | public new DiscordSocketClient Discord => base.Discord as DiscordSocketClient; | ||||
| public new CachedGuild Guild => base.Guild as CachedGuild; | public new CachedGuild Guild => base.Guild as CachedGuild; | ||||
| public new CachedGlobalUser User => base.User as CachedGlobalUser; | public new CachedGlobalUser User => base.User as CachedGlobalUser; | ||||
| @@ -2,8 +2,10 @@ | |||||
| namespace Discord | namespace Discord | ||||
| { | { | ||||
| internal class CachedMessage : Message, ICachedEntity<ulong> | |||||
| internal class CachedMessage : Message | |||||
| { | { | ||||
| bool IEntity<ulong>.IsAttached => true; | |||||
| public new DiscordSocketClient Discord => base.Discord as DiscordSocketClient; | public new DiscordSocketClient Discord => base.Discord as DiscordSocketClient; | ||||
| public new ICachedMessageChannel Channel => base.Channel as ICachedMessageChannel; | public new ICachedMessageChannel Channel => base.Channel as ICachedMessageChannel; | ||||
| @@ -5,6 +5,8 @@ namespace Discord | |||||
| { | { | ||||
| internal class CachedSelfUser : SelfUser, ICachedUser | internal class CachedSelfUser : SelfUser, ICachedUser | ||||
| { | { | ||||
| bool IEntity<ulong>.IsAttached => true; | |||||
| public new DiscordSocketClient Discord => base.Discord as DiscordSocketClient; | public new DiscordSocketClient Discord => base.Discord as DiscordSocketClient; | ||||
| CachedGlobalUser ICachedUser.User { get { throw new NotSupportedException(); } } | CachedGlobalUser ICachedUser.User { get { throw new NotSupportedException(); } } | ||||
| @@ -9,6 +9,8 @@ namespace Discord | |||||
| { | { | ||||
| internal class CachedTextChannel : TextChannel, ICachedGuildChannel, ICachedMessageChannel | internal class CachedTextChannel : TextChannel, ICachedGuildChannel, ICachedMessageChannel | ||||
| { | { | ||||
| bool IEntity<ulong>.IsAttached => true; | |||||
| private readonly MessageManager _messages; | private readonly MessageManager _messages; | ||||
| public new DiscordSocketClient Discord => base.Discord as DiscordSocketClient; | public new DiscordSocketClient Discord => base.Discord as DiscordSocketClient; | ||||
| @@ -10,6 +10,8 @@ namespace Discord | |||||
| { | { | ||||
| internal class CachedVoiceChannel : VoiceChannel, ICachedGuildChannel | internal class CachedVoiceChannel : VoiceChannel, ICachedGuildChannel | ||||
| { | { | ||||
| bool IEntity<ulong>.IsAttached => true; | |||||
| public new DiscordSocketClient Discord => base.Discord as DiscordSocketClient; | public new DiscordSocketClient Discord => base.Discord as DiscordSocketClient; | ||||
| public new CachedGuild Guild => base.Guild as CachedGuild; | public new CachedGuild Guild => base.Guild as CachedGuild; | ||||
| @@ -1,7 +0,0 @@ | |||||
| namespace Discord | |||||
| { | |||||
| internal interface ICachedEntity<T> : IEntity<T> | |||||
| { | |||||
| DiscordSocketClient Discord { get; } | |||||
| } | |||||
| } | |||||