@@ -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; } | |||||
} | |||||
} |