@@ -16,10 +16,10 @@ namespace Discord.Net.Models | |||
/// <param name="messageId">Id of the message that was targeted.</param> | |||
/// <param name="count">Number of entities that were targeted.</param> | |||
/// <param name="id">Id of the overwritten entity.</param> | |||
/// <param name="type">Type of overwritten entity - "0" for "role" or "1" for "member".</param> | |||
/// <param name="roleName">Name of the role if type is "0" (not present if type is "1").</param> | |||
/// <param name="type">Type of overwritten entity.</param> | |||
/// <param name="roleName">Name of the role if type is <see cref="AuditEntryInfoType.Role"/> (not present if type is <see cref="AuditEntryInfoType.Member"/>).</param> | |||
[JsonConstructor] | |||
public AuditEntryInfo(int deleteMemberDays, int membersRemoved, Snowflake channelId, Snowflake messageId, int count, Snowflake id, AuditEntryInfoType type, string roleName) | |||
public AuditEntryInfo(int? deleteMemberDays, int? membersRemoved, Snowflake? channelId, Snowflake? messageId, int? count, Snowflake? id, AuditEntryInfoType? type, string? roleName) | |||
{ | |||
DeleteMemberDays = deleteMemberDays; | |||
MembersRemoved = membersRemoved; | |||
@@ -35,48 +35,48 @@ namespace Discord.Net.Models | |||
/// Number of days after which inactive members were kicked. | |||
/// </summary> | |||
[JsonPropertyName("delete_member_days")] | |||
public int DeleteMemberDays { get; } | |||
public int? DeleteMemberDays { get; } | |||
/// <summary> | |||
/// Number of members removed by the prune. | |||
/// </summary> | |||
[JsonPropertyName("members_removed")] | |||
public int MembersRemoved { get; } | |||
public int? MembersRemoved { get; } | |||
/// <summary> | |||
/// Channel in which the entities were targeted. | |||
/// </summary> | |||
[JsonPropertyName("channel_id")] | |||
public Snowflake ChannelId { get; } | |||
public Snowflake? ChannelId { get; } | |||
/// <summary> | |||
/// Id of the message that was targeted. | |||
/// </summary> | |||
[JsonPropertyName("message_id")] | |||
public Snowflake MessageId { get; } | |||
public Snowflake? MessageId { get; } | |||
/// <summary> | |||
/// Number of entities that were targeted. | |||
/// </summary> | |||
[JsonPropertyName("count")] | |||
public int Count { get; } | |||
public int? Count { get; } | |||
/// <summary> | |||
/// Id of the overwritten entity. | |||
/// </summary> | |||
[JsonPropertyName("id")] | |||
public Snowflake Id { get; } | |||
public Snowflake? Id { get; } | |||
/// <summary> | |||
/// Type of overwritten entity. | |||
/// </summary> | |||
[JsonPropertyName("type")] | |||
public AuditEntryInfoType Type { get; } | |||
public AuditEntryInfoType? Type { get; } | |||
/// <summary> | |||
/// Name of the role if type is <see cref="AuditEntryInfoType.Role"/> (not present if type is <see cref="AuditEntryInfoType.Member"/>). | |||
/// </summary> | |||
[JsonPropertyName("role_name")] | |||
public string RoleName { get; } | |||
public string? RoleName { get; } | |||
} | |||
} |
@@ -15,7 +15,7 @@ namespace Discord.Net.Models | |||
/// <param name="users">Array of user_ids to mention (Max size of 100).</param> | |||
/// <param name="repliedUser">For replies, whether to mention the author of the message being replied to (default false).</param> | |||
[JsonConstructor] | |||
public AllowedMentions(AllowedMentionType[] parse, ListOfSnowflakes roles, ListOfSnowflakes users, bool repliedUser) | |||
public AllowedMentions(string[] parse, Snowflake[] roles, Snowflake[] users, bool repliedUser) | |||
{ | |||
Parse = parse; | |||
Roles = roles; | |||
@@ -27,19 +27,19 @@ namespace Discord.Net.Models | |||
/// An array of allowed mention types to parse from the content. | |||
/// </summary> | |||
[JsonPropertyName("parse")] | |||
public AllowedMentionType[] Parse { get; } | |||
public string[] Parse { get; } | |||
/// <summary> | |||
/// Array of role_ids to mention (Max size of 100). | |||
/// </summary> | |||
[JsonPropertyName("roles")] | |||
public ListOfSnowflakes Roles { get; } | |||
public Snowflake[] Roles { get; } | |||
/// <summary> | |||
/// Array of user_ids to mention (Max size of 100). | |||
/// </summary> | |||
[JsonPropertyName("users")] | |||
public ListOfSnowflakes Users { get; } | |||
public Snowflake[] Users { get; } | |||
/// <summary> | |||
/// For replies, whether to mention the author of the message being replied to (default false). | |||
@@ -42,7 +42,7 @@ namespace Discord.Net.Models | |||
/// <param name="thread">The thread that was started from this message, includes thread member object.</param> | |||
/// <param name="components">Sent if the message contains components like buttons, action rows, or other interactive components.</param> | |||
[JsonConstructor] | |||
public Message(Snowflake id, Snowflake channelId, Optional<Snowflake> guildId, User author, Optional<GuildMember> member, string content, DateTimeOffset timestamp, DateTimeOffset? editedTimestamp, bool tts, bool mentionEveryone, UserWithMember[] mentions, Snowflake[] mentionRoles, Optional<ChannelMention[]> mentionChannels, Attachment[] attachments, Embed[] embeds, Optional<Reaction[]> reactions, Optional<string> nonce, bool pinned, Optional<Snowflake> webhookId, int type, Optional<MessageActivity> activity, Optional<Application> application, Optional<Snowflake> applicationId, Optional<MessageReference> messageReference, Optional<MessageFlags> flags, Optional<Sticker[]> stickers, Optional<Message?> referencedMessage, Optional<MessageInteraction> interaction, Optional<Channel> thread, Optional<Component> components) | |||
public Message(Snowflake id, Snowflake channelId, Optional<Snowflake> guildId, User author, Optional<GuildMember> member, string content, DateTimeOffset timestamp, DateTimeOffset? editedTimestamp, bool tts, bool mentionEveryone, UserMention[] mentions, Snowflake[] mentionRoles, Optional<ChannelMention[]> mentionChannels, Attachment[] attachments, Embed[] embeds, Optional<Reaction[]> reactions, Optional<string> nonce, bool pinned, Optional<Snowflake> webhookId, int type, Optional<MessageActivity> activity, Optional<Application> application, Optional<Snowflake> applicationId, Optional<MessageReference> messageReference, Optional<MessageFlags> flags, Optional<Sticker[]> stickers, Optional<Message?> referencedMessage, Optional<MessageInteraction> interaction, Optional<Channel> thread, Optional<Component> components) | |||
{ | |||
Id = id; | |||
ChannelId = channelId; | |||
@@ -0,0 +1,138 @@ | |||
using System.Text.Json.Serialization; | |||
namespace Discord.Net.Models | |||
{ | |||
/// <summary> | |||
/// Represents an activity object. | |||
/// </summary> | |||
public record Activity | |||
{ | |||
/// <summary> | |||
/// Creates a <see cref="Activity"/> with the provided parameters. | |||
/// </summary> | |||
/// <param name="name">The activity's name.</param> | |||
/// <param name="type">Activity type.</param> | |||
/// <param name="url">Stream url, is validated when type is 1.</param> | |||
/// <param name="createdAt">Unix timestamp of when the activity was added to the user's session.</param> | |||
/// <param name="timestamps">Unix timestamps for start and/or end of the game.</param> | |||
/// <param name="applicationId">Application id for the game.</param> | |||
/// <param name="details">What the player is currently doing.</param> | |||
/// <param name="state">The user's current party status.</param> | |||
/// <param name="emoji">The emoji used for a custom status.</param> | |||
/// <param name="party">Information for the current party of the player.</param> | |||
/// <param name="assets">Images for the presence and their hover texts.</param> | |||
/// <param name="secrets">Secrets for Rich Presence joining and spectating.</param> | |||
/// <param name="instance">Whether or not the activity is an instanced game session.</param> | |||
/// <param name="flags">Activity flags ORd together, describes what the payload includes.</param> | |||
/// <param name="buttonLabels">The custom buttons shown in the Rich Presence (max 2).</param> | |||
[JsonConstructor] | |||
public Activity(string name, int type, Optional<string?> url, int createdAt, Optional<ActivityTimestamps> timestamps, Optional<Snowflake> applicationId, Optional<string?> details, Optional<string?> state, Optional<Emoji?> emoji, Optional<ActivityParty> party, Optional<ActivityAssets> assets, Optional<ActivitySecrets> secrets, Optional<bool> instance, Optional<int> flags, Optional<string[]> buttonLabels) | |||
{ | |||
Name = name; | |||
Type = type; | |||
Url = url; | |||
CreatedAt = createdAt; | |||
Timestamps = timestamps; | |||
ApplicationId = applicationId; | |||
Details = details; | |||
State = state; | |||
Emoji = emoji; | |||
Party = party; | |||
Assets = assets; | |||
Secrets = secrets; | |||
Instance = instance; | |||
Flags = flags; | |||
ButtonLabels = buttonLabels; | |||
} | |||
/// <summary> | |||
/// The activity's name. | |||
/// </summary> | |||
[JsonPropertyName("name")] | |||
public string Name { get; } | |||
/// <summary> | |||
/// Activity type. | |||
/// </summary> | |||
[JsonPropertyName("type")] | |||
public int Type { get; } | |||
/// <summary> | |||
/// Stream url, is validated when type is 1. | |||
/// </summary> | |||
[JsonPropertyName("url")] | |||
public Optional<string?> Url { get; } | |||
/// <summary> | |||
/// Unix timestamp of when the activity was added to the user's session. | |||
/// </summary> | |||
[JsonPropertyName("created_at")] | |||
public int CreatedAt { get; } | |||
/// <summary> | |||
/// Unix timestamps for start and/or end of the game. | |||
/// </summary> | |||
[JsonPropertyName("timestamps")] | |||
public Optional<ActivityTimestamps> Timestamps { get; } | |||
/// <summary> | |||
/// Application id for the game. | |||
/// </summary> | |||
[JsonPropertyName("application_id")] | |||
public Optional<Snowflake> ApplicationId { get; } | |||
/// <summary> | |||
/// What the player is currently doing. | |||
/// </summary> | |||
[JsonPropertyName("details")] | |||
public Optional<string?> Details { get; } | |||
/// <summary> | |||
/// The user's current party status. | |||
/// </summary> | |||
[JsonPropertyName("state")] | |||
public Optional<string?> State { get; } | |||
/// <summary> | |||
/// The emoji used for a custom status. | |||
/// </summary> | |||
[JsonPropertyName("emoji")] | |||
public Optional<Emoji?> Emoji { get; } | |||
/// <summary> | |||
/// Information for the current party of the player. | |||
/// </summary> | |||
[JsonPropertyName("party")] | |||
public Optional<ActivityParty> Party { get; } | |||
/// <summary> | |||
/// Images for the presence and their hover texts. | |||
/// </summary> | |||
[JsonPropertyName("assets")] | |||
public Optional<ActivityAssets> Assets { get; } | |||
/// <summary> | |||
/// Secrets for Rich Presence joining and spectating. | |||
/// </summary> | |||
[JsonPropertyName("secrets")] | |||
public Optional<ActivitySecrets> Secrets { get; } | |||
/// <summary> | |||
/// Whether or not the activity is an instanced game session. | |||
/// </summary> | |||
[JsonPropertyName("instance")] | |||
public Optional<bool> Instance { get; } | |||
/// <summary> | |||
/// Activity flags ORd together, describes what the payload includes. | |||
/// </summary> | |||
[JsonPropertyName("flags")] | |||
public Optional<int> Flags { get; } | |||
/// <summary> | |||
/// The custom buttons shown in the Rich Presence (max 2). | |||
/// </summary> | |||
[JsonPropertyName("buttons")] | |||
public Optional<string[]> ButtonLabels { get; } | |||
} | |||
} |
@@ -0,0 +1,50 @@ | |||
using System.Text.Json.Serialization; | |||
namespace Discord.Net.Models | |||
{ | |||
/// <summary> | |||
/// Represents an activity assets object. | |||
/// </summary> | |||
public record ActivityAssets | |||
{ | |||
/// <summary> | |||
/// Creates a <see cref="ActivityAssets"/> with the provided parameters. | |||
/// </summary> | |||
/// <param name="largeImage">The id for a large asset of the activity, usually a snowflake.</param> | |||
/// <param name="largeText">Text displayed when hovering over the large image of the activity.</param> | |||
/// <param name="smallImage">The id for a small asset of the activity, usually a snowflake.</param> | |||
/// <param name="smallText">Text displayed when hovering over the small image of the activity.</param> | |||
[JsonConstructor] | |||
public ActivityAssets(Optional<string> largeImage, Optional<string> largeText, Optional<string> smallImage, Optional<string> smallText) | |||
{ | |||
LargeImage = largeImage; | |||
LargeText = largeText; | |||
SmallImage = smallImage; | |||
SmallText = smallText; | |||
} | |||
/// <summary> | |||
/// The id for a large asset of the activity, usually a snowflake. | |||
/// </summary> | |||
[JsonPropertyName("large_image")] | |||
public Optional<string> LargeImage { get; } | |||
/// <summary> | |||
/// Text displayed when hovering over the large image of the activity. | |||
/// </summary> | |||
[JsonPropertyName("large_text")] | |||
public Optional<string> LargeText { get; } | |||
/// <summary> | |||
/// The id for a small asset of the activity, usually a snowflake. | |||
/// </summary> | |||
[JsonPropertyName("small_image")] | |||
public Optional<string> SmallImage { get; } | |||
/// <summary> | |||
/// Text displayed when hovering over the small image of the activity. | |||
/// </summary> | |||
[JsonPropertyName("small_text")] | |||
public Optional<string> SmallText { get; } | |||
} | |||
} |
@@ -0,0 +1,42 @@ | |||
using System.Text.Json.Serialization; | |||
namespace Discord.Net.Models | |||
{ | |||
/// <summary> | |||
/// Represents an activity emoji object. | |||
/// </summary> | |||
public record ActivityEmoji | |||
{ | |||
/// <summary> | |||
/// Creates a <see cref="ActivityEmoji"/> with the provided parameters. | |||
/// </summary> | |||
/// <param name="name">The name of the emoji.</param> | |||
/// <param name="id">The id of the emoji.</param> | |||
/// <param name="animated">Whether this emoji is animated.</param> | |||
[JsonConstructor] | |||
public ActivityEmoji(string name, Optional<Snowflake> id, Optional<bool> animated) | |||
{ | |||
Name = name; | |||
Id = id; | |||
Animated = animated; | |||
} | |||
/// <summary> | |||
/// The name of the emoji. | |||
/// </summary> | |||
[JsonPropertyName("name")] | |||
public string Name { get; } | |||
/// <summary> | |||
/// The id of the emoji. | |||
/// </summary> | |||
[JsonPropertyName("id")] | |||
public Optional<Snowflake> Id { get; } | |||
/// <summary> | |||
/// Whether this emoji is animated. | |||
/// </summary> | |||
[JsonPropertyName("animated")] | |||
public Optional<bool> Animated { get; } | |||
} | |||
} |
@@ -0,0 +1,41 @@ | |||
using System; | |||
namespace Discord.Net.Models | |||
{ | |||
/// <summary> | |||
/// Represents the activity flags. | |||
/// </summary> | |||
[Flags] | |||
public enum ActivityFlags | |||
{ | |||
/// <summary> | |||
/// Activity instance. | |||
/// </summary> | |||
Instance = 1 << 0, | |||
/// <summary> | |||
/// Activity join. | |||
/// </summary> | |||
Join = 1 << 1, | |||
/// <summary> | |||
/// Activity spectate. | |||
/// </summary> | |||
Spectate = 1 << 2, | |||
/// <summary> | |||
/// Activity join request. | |||
/// </summary> | |||
JoinRequest = 1 << 3, | |||
/// <summary> | |||
/// Activity sync. | |||
/// </summary> | |||
Sync = 1 << 4, | |||
/// <summary> | |||
/// Activity play. | |||
/// </summary> | |||
Play = 1 << 5, | |||
} | |||
} |
@@ -0,0 +1,34 @@ | |||
using System.Text.Json.Serialization; | |||
namespace Discord.Net.Models | |||
{ | |||
/// <summary> | |||
/// Represents an activity party object. | |||
/// </summary> | |||
public record ActivityParty | |||
{ | |||
/// <summary> | |||
/// Creates a <see cref="ActivityParty"/> with the provided parameters. | |||
/// </summary> | |||
/// <param name="id">The id of the party.</param> | |||
/// <param name="size">Used to show the party's current and maximum size.</param> | |||
[JsonConstructor] | |||
public ActivityParty(Optional<string> id, Optional<int[]> size) | |||
{ | |||
Id = id; | |||
Size = size; | |||
} | |||
/// <summary> | |||
/// The id of the party. | |||
/// </summary> | |||
[JsonPropertyName("id")] | |||
public Optional<string> Id { get; } | |||
/// <summary> | |||
/// Used to show the party's current and maximum size. | |||
/// </summary> | |||
[JsonPropertyName("size")] | |||
public Optional<int[]> Size { get; } | |||
} | |||
} |
@@ -0,0 +1,42 @@ | |||
using System.Text.Json.Serialization; | |||
namespace Discord.Net.Models | |||
{ | |||
/// <summary> | |||
/// Represents an activity secrets object. | |||
/// </summary> | |||
public record ActivitySecrets | |||
{ | |||
/// <summary> | |||
/// Creates a <see cref="ActivitySecrets"/> with the provided parameters. | |||
/// </summary> | |||
/// <param name="join">The secret for joining a party.</param> | |||
/// <param name="spectate">The secret for spectating a game.</param> | |||
/// <param name="match">The secret for a specific instanced match.</param> | |||
[JsonConstructor] | |||
public ActivitySecrets(Optional<string> join, Optional<string> spectate, Optional<string> match) | |||
{ | |||
Join = join; | |||
Spectate = spectate; | |||
Match = match; | |||
} | |||
/// <summary> | |||
/// The secret for joining a party. | |||
/// </summary> | |||
[JsonPropertyName("join")] | |||
public Optional<string> Join { get; } | |||
/// <summary> | |||
/// The secret for spectating a game. | |||
/// </summary> | |||
[JsonPropertyName("spectate")] | |||
public Optional<string> Spectate { get; } | |||
/// <summary> | |||
/// The secret for a specific instanced match. | |||
/// </summary> | |||
[JsonPropertyName("match")] | |||
public Optional<string> Match { get; } | |||
} | |||
} |
@@ -0,0 +1,35 @@ | |||
using System; | |||
using System.Text.Json.Serialization; | |||
namespace Discord.Net.Models | |||
{ | |||
/// <summary> | |||
/// Represents an activity timestamp object. | |||
/// </summary> | |||
public record ActivityTimestamps | |||
{ | |||
/// <summary> | |||
/// Creates a <see cref="ActivityTimestamps"/> with the provided parameters. | |||
/// </summary> | |||
/// <param name="start">When the activity started.</param> | |||
/// <param name="end">When the activity ends.</param> | |||
[JsonConstructor] | |||
public ActivityTimestamps(Optional<DateTimeOffset> start, Optional<DateTimeOffset> end) | |||
{ | |||
Start = start; | |||
End = end; | |||
} | |||
/// <summary> | |||
/// When the activity started. | |||
/// </summary> | |||
[JsonPropertyName("start")] | |||
public Optional<DateTimeOffset> Start { get; } | |||
/// <summary> | |||
/// When the activity ends. | |||
/// </summary> | |||
[JsonPropertyName("end")] | |||
public Optional<DateTimeOffset> End { get; } | |||
} | |||
} |
@@ -0,0 +1,38 @@ | |||
namespace Discord.Net.Models | |||
{ | |||
/// <summary> | |||
/// Represents the activity type. | |||
/// </summary> | |||
public enum ActivityType | |||
{ | |||
/// <summary> | |||
/// Playing {name}. | |||
/// </summary> | |||
Game = 0, | |||
/// <summary> | |||
/// Streaming {details}. | |||
/// </summary> | |||
Streaming = 1, | |||
/// <summary> | |||
/// Listening to {name}. | |||
/// </summary> | |||
Listening = 2, | |||
/// <summary> | |||
/// Watching {name}. | |||
/// </summary> | |||
Watching = 3, | |||
/// <summary> | |||
/// {emoji} {name}. | |||
/// </summary> | |||
Custom = 4, | |||
/// <summary> | |||
/// Competing in {name}. | |||
/// </summary> | |||
Competing = 5, | |||
} | |||
} |
@@ -0,0 +1,42 @@ | |||
using System.Text.Json.Serialization; | |||
namespace Discord.Net.Models | |||
{ | |||
/// <summary> | |||
/// Represents a client status object. | |||
/// </summary> | |||
public record ClientStatus | |||
{ | |||
/// <summary> | |||
/// Creates a <see cref="ClientStatus"/> with the provided parameters. | |||
/// </summary> | |||
/// <param name="desktop">The user's status set for an active desktop (Windows, Linux, Mac) application session.</param> | |||
/// <param name="mobile">The user's status set for an active mobile (iOS, Android) application session.</param> | |||
/// <param name="web">The user's status set for an active web (browser, bot account) application session.</param> | |||
[JsonConstructor] | |||
public ClientStatus(Optional<string> desktop, Optional<string> mobile, Optional<string> web) | |||
{ | |||
Desktop = desktop; | |||
Mobile = mobile; | |||
Web = web; | |||
} | |||
/// <summary> | |||
/// The user's status set for an active desktop (Windows, Linux, Mac) application session. | |||
/// </summary> | |||
[JsonPropertyName("desktop")] | |||
public Optional<string> Desktop { get; } | |||
/// <summary> | |||
/// The user's status set for an active mobile (iOS, Android) application session. | |||
/// </summary> | |||
[JsonPropertyName("mobile")] | |||
public Optional<string> Mobile { get; } | |||
/// <summary> | |||
/// The user's status set for an active web (browser, bot account) application session. | |||
/// </summary> | |||
[JsonPropertyName("web")] | |||
public Optional<string> Web { get; } | |||
} | |||
} |
@@ -0,0 +1,58 @@ | |||
using System.Text.Json.Serialization; | |||
namespace Discord.Net.Models | |||
{ | |||
/// <summary> | |||
/// Represents a presence object. | |||
/// </summary> | |||
public record Presence | |||
{ | |||
/// <summary> | |||
/// Creates a <see cref="Presence"/> with the provided parameters. | |||
/// </summary> | |||
/// <param name="user">The user presence is being updated for.</param> | |||
/// <param name="guildId">Id of the guild.</param> | |||
/// <param name="status">Either "idle", "dnd", "online", or "offline".</param> | |||
/// <param name="activities">User's current activities.</param> | |||
/// <param name="clientStatus">User's platform-dependent status.</param> | |||
[JsonConstructor] | |||
public Presence(User user, Snowflake guildId, string status, Activity[] activities, ClientStatus clientStatus) | |||
{ | |||
User = user; | |||
GuildId = guildId; | |||
Status = status; | |||
Activities = activities; | |||
ClientStatus = clientStatus; | |||
} | |||
/// <summary> | |||
/// The user presence is being updated for. | |||
/// </summary> | |||
[JsonPropertyName("user")] | |||
public User User { get; } | |||
/// <summary> | |||
/// Id of the guild. | |||
/// </summary> | |||
[JsonPropertyName("guild_id")] | |||
public Snowflake GuildId { get; } | |||
/// <summary> | |||
/// Either "idle", "dnd", "online", or "offline". | |||
/// </summary> | |||
[JsonPropertyName("status")] | |||
public string Status { get; } | |||
/// <summary> | |||
/// User's current activities. | |||
/// </summary> | |||
[JsonPropertyName("activities")] | |||
public Activity[] Activities { get; } | |||
/// <summary> | |||
/// User's platform-dependent status. | |||
/// </summary> | |||
[JsonPropertyName("client_status")] | |||
public ClientStatus ClientStatus { get; } | |||
} | |||
} |
@@ -61,7 +61,7 @@ namespace Discord.Net.Models | |||
/// <param name="nsfwLevel">Guild NSFW level.</param> | |||
/// <param name="stageInstances">Stage instances in the guild.</param> | |||
[JsonConstructor] | |||
public Guild(Snowflake id, string name, string? icon, Optional<string?> iconHash, string? splash, string? discoverySplash, Optional<bool> owner, Snowflake ownerId, Optional<Permissions> permissions, string region, Snowflake? afkChannelId, int afkTimeout, Optional<bool> widgetEnabled, Optional<Snowflake?> widgetChannelId, int verificationLevel, int defaultMessageNotifications, int explicitContentFilter, Role[] roles, Emoji[] emojis, string[] features, int mfaLevel, Snowflake? applicationId, Snowflake? systemChannelId, int systemChannelFlags, Snowflake? rulesChannelId, Optional<DateTimeOffset> joinedAt, Optional<bool> large, Optional<bool> unavailable, Optional<int> memberCount, Optional<VoiceState[]> voiceStates, Optional<GuildMember[]> members, Optional<Channel[]> channels, Optional<Channel[]> threads, Optional<PresenceUpdate[]> presences, Optional<int?> maxPresences, Optional<int> maxMembers, string? vanityUrlCode, string? description, string? banner, int premiumTier, Optional<int> premiumSubscriptionCount, string preferredLocale, Snowflake? publicUpdatesChannelId, Optional<int> maxVideoChannelUsers, Optional<int> approximateMemberCount, Optional<int> approximatePresenceCount, Optional<WelcomeScreen> welcomeScreen, int nsfwLevel, Optional<StageInstance[]> stageInstances) | |||
public Guild(Snowflake id, string name, string? icon, Optional<string?> iconHash, string? splash, string? discoverySplash, Optional<bool> owner, Snowflake ownerId, Optional<Permissions> permissions, string region, Snowflake? afkChannelId, int afkTimeout, Optional<bool> widgetEnabled, Optional<Snowflake?> widgetChannelId, int verificationLevel, int defaultMessageNotifications, int explicitContentFilter, Role[] roles, Emoji[] emojis, string[] features, int mfaLevel, Snowflake? applicationId, Snowflake? systemChannelId, int systemChannelFlags, Snowflake? rulesChannelId, Optional<DateTimeOffset> joinedAt, Optional<bool> large, Optional<bool> unavailable, Optional<int> memberCount, Optional<VoiceState[]> voiceStates, Optional<GuildMember[]> members, Optional<Channel[]> channels, Optional<Channel[]> threads, Optional<Presence[]> presences, Optional<int?> maxPresences, Optional<int> maxMembers, string? vanityUrlCode, string? description, string? banner, int premiumTier, Optional<int> premiumSubscriptionCount, string preferredLocale, Snowflake? publicUpdatesChannelId, Optional<int> maxVideoChannelUsers, Optional<int> approximateMemberCount, Optional<int> approximatePresenceCount, Optional<WelcomeScreen> welcomeScreen, int nsfwLevel, Optional<StageInstance[]> stageInstances) | |||
{ | |||
Id = id; | |||
Name = name; | |||
@@ -316,7 +316,7 @@ namespace Discord.Net.Models | |||
/// Presences of the members in the guild, will only include non-offline members if the size is greater than large threshold. | |||
/// </summary> | |||
[JsonPropertyName("presences")] | |||
public Optional<PresenceUpdate[]> Presences { get; } | |||
public Optional<Presence[]> Presences { get; } | |||
/// <summary> | |||
/// The maximum number of presences for the guild (the default value, currently 25000, is in effect when null is returned). | |||