/// <summary> Gets the unique identifier for this user's current avatar. </summary>
public string IconId { get; private set; }
/// <summary> Gets the unique identifier for this server's custom splash image. </summary>
public string SplashId { get; private set; }
/// <summary> Gets the amount of time (in seconds) a user must be inactive for until they are automatically moved to the AFK voice channel, if one is set. </summary>
public int AFKTimeout { get; private set; }
/// <summary> Gets the date and time you joined this server. </summary>
public DateTime JoinedAt { get; private set; }
/// <summary> Gets all extra features added to this server. </summary>
public IEnumerable<string> Features { get; private set; }
/// <summary> Gets all custom emojis on this server. </summary>
public IEnumerable<Emoji> CustomEmojis { get; private set; }
/// <summary> Gets the user that created this server. </summary>
public User Owner => GetUser(_ownerId);
@@ -65,7 +87,8 @@ namespace Discord
public User CurrentUser => GetUser(Client.CurrentUser.Id);
/// <summary> Gets the URL to this user's current avatar. </summary>
public string IconUrl => GetIconUrl(Id, IconId);
public string SplashUrl => GetSplashUrl(Id, SplashId);
/// <summary> Gets a collection of all channels in this server. </summary>
public IEnumerable<Channel> AllChannels => _channels.Select(x => x.Value);
/// <summary> Gets a collection of text channels in this server. </summary>
@@ -100,7 +123,6 @@ namespace Discord
if (model.AFKTimeout != null)
AFKTimeout = model.AFKTimeout.Value;
_afkChannelId = model.AFKChannelId; //Can be null
if (model.JoinedAt != null)
JoinedAt = model.JoinedAt.Value;
if (model.OwnerId != null)
@@ -109,6 +131,22 @@ namespace Discord
Region = Client.GetRegion(model.Region);
if (model.Icon != null)
IconId = model.Icon;
if (model.Features != null)
Features = model.Features;
if (model.Emojis != null)
{
CustomEmojis = model.Emojis.Select(x => new Emoji(x.Id)
{
Name = x.Name,
IsManaged = x.IsManaged,
RequireColons = x.RequireColons,
Roles = x.RoleIds.Select(y => GetRole(y)).Where(y => y != null).ToArray()
Thank you for your continuous support to the Openl Qizhi Community AI Collaboration Platform. In order to protect your usage rights and ensure network security, we updated the Openl Qizhi Community AI Collaboration Platform Usage Agreement in January 2024. The updated agreement specifies that users are prohibited from using intranet penetration tools. After you click "Agree and continue", you can continue to use our services. Thank you for your cooperation and understanding.