Added Server documentation
This commit is contained in:
@@ -9,32 +9,56 @@ namespace Discord
|
||||
{
|
||||
private readonly DiscordClient _client;
|
||||
|
||||
/// <summary> Returns the unique identifier for this server. </summary>
|
||||
public string Id { get; }
|
||||
/// <summary> Returns the name of this channel. </summary>
|
||||
public string Name { get; internal set; }
|
||||
|
||||
public string AFKChannelId { get; internal set; }
|
||||
/// <summary> Returns the amount of time (in seconds) a user must be inactive for until they are automatically moved to the AFK channel (see AFKChannel). </summary>
|
||||
public int AFKTimeout { get; internal set; }
|
||||
/// <summary> Returns the date and time your joined this server. </summary>
|
||||
public DateTime JoinedAt { get; internal set; }
|
||||
/// <summary> Returns the region for this server (see Regions). </summary>
|
||||
public string Region { get; internal set; }
|
||||
|
||||
|
||||
/// <summary> Returns the id of the user that first created this server. </summary>
|
||||
public string OwnerId { get; internal set; }
|
||||
/// <summary> Returns the user that first created this server. </summary>
|
||||
public User Owner => _client.GetUser(OwnerId);
|
||||
/// <summary> Returns true if the current user created this server. </summary>
|
||||
public bool IsOwner => _client.UserId == OwnerId;
|
||||
|
||||
|
||||
/// <summary> Returns the id of the AFK voice channel for this server (see AFKTimeout). </summary>
|
||||
public string AFKChannelId { get; internal set; }
|
||||
/// <summary> Returns the AFK voice channel for this server (see AFKTimeout). </summary>
|
||||
public Channel AFKChannel => _client.GetChannel(AFKChannelId);
|
||||
|
||||
/// <summary> Returns the id of the default channel for this server. </summary>
|
||||
public string DefaultChannelId => Id;
|
||||
/// <summary> Returns the default channel for this server. </summary>
|
||||
public Channel DefaultChannel =>_client.GetChannel(DefaultChannelId);
|
||||
|
||||
internal ConcurrentDictionary<string, Membership> _members;
|
||||
/// <summary> Returns a collection of all channels within this server. </summary>
|
||||
public IEnumerable<Membership> Members => _members.Values;
|
||||
|
||||
internal ConcurrentDictionary<string, bool> _bans;
|
||||
/// <summary> Returns a collection of all users banned on this server. </summary>
|
||||
/// <remarks> Only users seen in other servers will be returned. To get a list of all users, use BanIds. </remarks>
|
||||
public IEnumerable<User> Bans => _bans.Keys.Select(x => _client.GetUser(x));
|
||||
/// <summary> Returns a collection of the ids of all users banned on this server. </summary>
|
||||
public IEnumerable<string> BanIds => _bans.Keys;
|
||||
|
||||
/// <summary> Returns a collection of all channels within this server. </summary>
|
||||
public IEnumerable<Channel> Channels => _client.Channels.Where(x => x.ServerId == Id);
|
||||
/// <summary> Returns a collection of all roles within this server. </summary>
|
||||
public IEnumerable<Role> Roles => _client.Roles.Where(x => x.ServerId == Id);
|
||||
|
||||
//Not Implemented
|
||||
//TODO: Not Implemented
|
||||
/// <summary> Not implemented, stored for reference. </summary>
|
||||
public object Presence { get; internal set; }
|
||||
//TODO: Not Implemented
|
||||
/// <summary> Not implemented, stored for reference. </summary>
|
||||
public object[] VoiceStates { get; internal set; }
|
||||
|
||||
internal Server(string id, DiscordClient client)
|
||||
@@ -45,11 +69,6 @@ namespace Discord
|
||||
_bans = new ConcurrentDictionary<string, bool>();
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return Name;
|
||||
}
|
||||
|
||||
internal void AddMember(Membership membership)
|
||||
{
|
||||
_members[membership.UserId] = membership;
|
||||
@@ -78,5 +97,10 @@ namespace Discord
|
||||
bool ignored;
|
||||
return _bans.TryRemove(banId, out ignored);
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return Name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user