Archived
1
0
Fork 0
This repository has been archived on 2024-05-21. You can view files and clone it, but cannot push or open issues or pull requests.
maki/Maki/Structures/Guilds/Guild.cs
2017-05-14 14:02:51 +02:00

160 lines
4 KiB
C#

using Maki.Structures.Channels;
using Maki.Structures.Messages;
using Maki.Structures.Presences;
using Maki.Structures.Roles;
using Newtonsoft.Json;
using System;
namespace Maki.Structures.Guilds
{
/// <summary>
/// Discord API Guild structure
/// </summary>
internal struct Guild
{
/// <summary>
/// guild id
/// </summary>
[JsonProperty("id")]
public ulong Id;
/// <summary>
/// guild name (2-100 characters)
/// </summary>
[JsonProperty("name")]
public string Name;
/// <summary>
/// icon hash
/// </summary>
[JsonProperty("icon")]
public string IconHash;
/// <summary>
/// splash hash
/// </summary>
[JsonProperty("splash")]
public string SplashHash;
/// <summary>
/// id of owner
/// </summary>
[JsonProperty("owner_id")]
public ulong? OwnerId;
/// <summary>
/// the id of the voice region
/// </summary>
[JsonProperty("region")]
public string VoiceRegionId;
/// <summary>
/// id of afk channel
/// </summary>
[JsonProperty("afk_channel_id")]
public ulong? AfkChannelId;
/// <summary>
/// afk timeout in seconds
/// </summary>
[JsonProperty("afk_timeout")]
public int? AfkTimeout;
/// <summary>
/// is this guild embeddable (e.g. widget)
/// </summary>
[JsonProperty("embed_enabled")]
public bool? WidgetEnabled;
/// <summary>
/// id of embedded channel
/// </summary>
[JsonProperty("embed_channel_id")]
public ulong? WidgetChannelId;
/// <summary>
/// level of verification
/// </summary>
[JsonProperty("verification_level")]
public int? VerificationLevel;
/// <summary>
/// default message notifications level
/// </summary>
[JsonProperty("default_message_notifications")]
public int? MessageNotificationLevel;
/// <summary>
/// array of role objects
/// </summary>
[JsonProperty("roles")]
public Role[] Roles;
/// <summary>
/// array of emoji objects
/// </summary>
[JsonProperty("emojis")]
public Emoji[] Emojis;
/// <summary>
/// array of guild features
/// </summary>
[JsonProperty("features")]
public string[] Features;
/// <summary>
/// required MFA level for the guild
/// </summary>
[JsonProperty("mfa_level")]
public int? MultiFactorAuthLevel;
/// <summary>
/// date this guild was joined at
/// </summary>
[JsonProperty("joined_at")]
public DateTime? Created;
/// <summary>
/// whether this is considered a large guild
/// </summary>
[JsonProperty("large")]
public bool? IsLarge;
/// <summary>
/// is this guild unavailable
/// </summary>
[JsonProperty("unavailable")]
public bool? IsUnavailable;
/// <summary>
/// total number of members in this guild
/// </summary>
[JsonProperty("member_count")]
public int? MemberCount;
/// <summary>
/// array of voice state objects (without the guild_id key)
/// </summary>
[JsonProperty("voice_states")]
public object[] VoiceStates;
/// <summary>
/// array of guild member objects
/// </summary>
[JsonProperty("members")]
public GuildMember[] Members;
/// <summary>
/// array of channel objects
/// </summary>
[JsonProperty("channels")]
public Channel[] Channels;
/// <summary>
/// array of simple presence objects, which share the same fields as Presence Update event sans a roles or guild_id key
/// </summary>
[JsonProperty("presences")]
public Presence[] Presences;
}
}