Fixed Server.AFKChannel
This commit is contained in:
@@ -29,11 +29,12 @@ namespace Discord
|
|||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public User Owner { get; private set; }
|
public User Owner { get; private set; }
|
||||||
private string _ownerId;
|
private string _ownerId;
|
||||||
|
|
||||||
/// <summary> Returns the AFK voice channel for this server (see AFKTimeout). </summary>
|
/// <summary> Returns the AFK voice channel for this server (see AFKTimeout). </summary>
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public Channel AFKChannel { get; private set; }
|
public Channel AFKChannel => _afkChannel.Value;
|
||||||
|
private Reference<Channel> _afkChannel;
|
||||||
|
|
||||||
/// <summary> Returns the default channel for this server. </summary>
|
/// <summary> Returns the default channel for this server. </summary>
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public Channel DefaultChannel { get; private set; }
|
public Channel DefaultChannel { get; private set; }
|
||||||
@@ -75,6 +76,8 @@ namespace Discord
|
|||||||
internal Server(DiscordClient client, string id)
|
internal Server(DiscordClient client, string id)
|
||||||
: base(client, id)
|
: base(client, id)
|
||||||
{
|
{
|
||||||
|
_afkChannel = new Reference<Channel>(x => _client.Channels[x]);
|
||||||
|
|
||||||
//Global Cache
|
//Global Cache
|
||||||
_channels = new ConcurrentDictionary<string, Channel>();
|
_channels = new ConcurrentDictionary<string, Channel>();
|
||||||
_members = new ConcurrentDictionary<string, User>();
|
_members = new ConcurrentDictionary<string, User>();
|
||||||
@@ -83,8 +86,11 @@ namespace Discord
|
|||||||
//Local Cache
|
//Local Cache
|
||||||
_bans = new ConcurrentDictionary<string, bool>();
|
_bans = new ConcurrentDictionary<string, bool>();
|
||||||
_invites = new ConcurrentDictionary<string, Invite>();
|
_invites = new ConcurrentDictionary<string, Invite>();
|
||||||
}
|
}
|
||||||
internal override void LoadReferences() { }
|
internal override void LoadReferences()
|
||||||
|
{
|
||||||
|
_afkChannel.Load();
|
||||||
|
}
|
||||||
internal override void UnloadReferences()
|
internal override void UnloadReferences()
|
||||||
{
|
{
|
||||||
//Global Cache
|
//Global Cache
|
||||||
@@ -113,15 +119,15 @@ namespace Discord
|
|||||||
invites.Clear();
|
invites.Clear();
|
||||||
|
|
||||||
_bans.Clear();
|
_bans.Clear();
|
||||||
}
|
|
||||||
|
_afkChannel.Unload();
|
||||||
|
}
|
||||||
|
|
||||||
internal void Update(GuildInfo model)
|
internal void Update(GuildInfo model)
|
||||||
{
|
{
|
||||||
//Can be null
|
|
||||||
AFKChannel = _client.Channels[model.AFKChannelId];
|
|
||||||
|
|
||||||
if (model.AFKTimeout != null)
|
if (model.AFKTimeout != null)
|
||||||
AFKTimeout = model.AFKTimeout.Value;
|
AFKTimeout = model.AFKTimeout.Value;
|
||||||
|
if (model.AFKChannelId != null)
|
||||||
if (model.JoinedAt != null)
|
if (model.JoinedAt != null)
|
||||||
JoinedAt = model.JoinedAt.Value;
|
JoinedAt = model.JoinedAt.Value;
|
||||||
if (model.Name != null)
|
if (model.Name != null)
|
||||||
@@ -143,6 +149,8 @@ namespace Discord
|
|||||||
role.Update(x);
|
role.Update(x);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_afkChannel.Id = model.AFKChannelId; //Can be null
|
||||||
}
|
}
|
||||||
internal void Update(ExtendedGuildInfo model)
|
internal void Update(ExtendedGuildInfo model)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user