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