31namespace DiscordCoreInternal {
33 struct DiscordCoreAPI_Dll VoiceConnectionData {
34 std::string sessionId{};
35 std::string endPoint{};
39 struct DiscordCoreAPI_Dll WebSocketResumeData {
40 int32_t lastNumberReceived{};
41 std::string sessionId{};
42 std::string botToken{};
44 operator Jsonifier::Serializer();
47 struct DiscordCoreAPI_Dll WebSocketIdentifyData {
49 int32_t largeThreshold{ 250 };
50 int32_t numberOfShards{};
51 int32_t currentShard{};
52 std::string botToken{};
55 operator Jsonifier::Serializer();
58 struct DiscordCoreAPI_Dll VoiceSocketProtocolPayloadData {
59 std::string voiceEncryptionMode{};
60 std::string externalIp{};
63 operator Jsonifier::Serializer();
66 struct DiscordCoreAPI_Dll VoiceIdentifyData {
68 VoiceConnectionData connectionData{};
70 operator Jsonifier::Serializer();
73 enum class SendSpeakingType : uint8_t {
78 Priority_And_Voice = Microphone | Priority,
81 struct DiscordCoreAPI_Dll SendSpeakingData {
82 SendSpeakingType type{};
86 operator Jsonifier::Serializer();
89 enum class HttpsWorkloadClass : uint8_t { Get = 0, Put = 1, Post = 2, Patch = 3, Delete = 4 };
91 enum class PayloadType : uint8_t { Application_Json = 1, Multipart_Form = 2 };
93 enum class HttpsWorkloadType : uint8_t {
95 Get_Global_Application_Commands = 1,
96 Post_Global_Application_Command = 2,
97 Get_Global_Application_Command = 3,
98 Patch_Global_Application_Command = 4,
99 Delete_Global_Application_Command = 5,
100 Bulk_Put_Global_Application_Commands = 6,
101 Get_Guild_Application_Commands = 7,
102 Post_Guild_Application_Command = 8,
103 Get_Guild_Application_Command = 9,
104 Patch_Guild_Application_Command = 10,
105 Delete_Guild_Application_Command = 11,
106 Bulk_Put_Guild_Application_Commands = 12,
107 Get_Guild_Application_Commands_Permissions = 13,
108 Get_Guild_Application_Command_Permissions = 14,
109 Put_Guild_Application_Command_Permissions = 15,
110 Batch_Put_Guild_Application_Command_Permissions = 16,
111 Post_Interaction_Response = 17,
112 Get_Interaction_Response = 18,
113 Patch_Interaction_Response = 19,
114 Delete_Interaction_Response = 20,
115 Post_Followup_Message = 21,
116 Get_Followup_Message = 22,
117 Patch_Followup_Message = 23,
118 Delete_Followup_Message = 24,
119 Get_Guild_Audit_Logs = 25,
126 Crosspost_Message = 32,
128 Delete_Own_Reaction = 34,
129 Delete_User_Reaction = 35,
131 Delete_All_Reactions = 37,
132 Delete_Reactions_By_Emoji = 38,
135 Delete_Message_Old = 41,
136 Bulk_Delete_Messages = 42,
137 Put_Channel_Permission_Overwrites = 43,
138 Get_Channel_Invites = 44,
139 Post_Channel_Invite = 45,
140 Delete_Channel_Permission_Overwrites = 46,
141 Post_Follow_News_Channel = 47,
142 Post_Trigger_Typing_Indicator = 48,
143 Get_Pinned_Messages = 49,
144 Put_Pin_Message = 50,
145 Delete_Pin_Message = 51,
146 Put_Recipient_To_Group_Dm = 52,
147 Delete_Recipient_From_Group_Dm = 53,
148 Post_Thread_With_Message = 54,
149 Post_Thread_Without_Message = 55,
150 Put_Self_In_Thread = 56,
151 Put_Thread_Member = 57,
152 Delete_Self_From_Thread = 58,
153 Delete_Thread_Member = 59,
154 Get_Thread_Member = 60,
155 Get_Thread_Members = 61,
156 Get_Active_Threads = 62,
157 Get_Public_Archived_Threads = 63,
158 Get_Private_Archived_Threads = 64,
159 Get_Joined_Private_Archived_Threads = 65,
161 Get_Guild_Emoji = 67,
162 Post_Guild_Emoji = 68,
163 Patch_Guild_Emoji = 69,
164 Delete_Guild_Emoji = 70,
167 Get_Guild_Preview = 73,
170 Get_Guild_Channels = 76,
171 Post_Guild_Channel = 77,
172 Patch_Guild_Channel_Positions = 78,
173 Get_Guild_Active_Threads = 79,
174 Get_Guild_Member = 80,
175 Get_Guild_Members = 81,
176 Get_Search_Guild_Members = 82,
177 Put_Guild_Member = 83,
178 Patch_Guild_Member = 84,
179 Patch_Current_Guild_Member = 85,
180 Put_Guild_Member_Role = 86,
181 Delete_Guild_Member_Role = 87,
182 Delete_Guild_Member = 88,
186 Delete_Guild_Ban = 92,
187 Get_Guild_Roles = 93,
188 Post_Guild_Role = 94,
189 Patch_Guild_Role_Positions = 95,
190 Patch_Guild_Role = 96,
191 Delete_Guild_Role = 97,
192 Get_Guild_Prune_Count = 98,
193 Post_Guild_Prune = 99,
194 Get_Guild_Voice_Regions = 100,
195 Get_Guild_Invites = 101,
196 Get_Guild_Integrations = 102,
197 Delete_Guild_Integration = 103,
198 Get_Guild_Widget_Settings = 104,
199 Patch_Guild_Widget = 105,
200 Get_Guild_Widget = 106,
201 Get_Vanity_Invite = 107,
202 Get_Guild_Widget_Image = 108,
203 Get_Guild_Welcome_Screen = 109,
204 Patch_Guild_Welcome_Screen = 110,
205 Patch_Current_User_Voice_State = 111,
206 Patch_User_Voice_State = 112,
207 Get_Guild_Scheduled_Events = 113,
208 Post_Guild_Scheduled_Event = 114,
209 Get_Guild_Scheduled_Event = 115,
210 Patch_Guild_Scheduled_Event = 116,
211 Delete_Guild_Scheduled_Event = 117,
212 Get_Guild_Scheduled_Event_Users = 118,
213 Get_Guild_Template = 119,
214 Post_Guild_From_Guild_Template = 120,
215 Get_Guild_Templates = 121,
216 Post_Guild_Template = 122,
217 Put_Guild_Template = 123,
218 Patch_Guild_Template = 124,
219 Delete_Guild_Template = 125,
222 Post_Stage_Instance = 128,
223 Get_Stage_Instance = 129,
224 Patch_Stage_Instance = 130,
225 Delete_Stage_Instance = 131,
227 Get_Nitro_Sticker_Packs = 133,
228 Get_Guild_Stickers = 134,
229 Post_Guild_Sticker = 135,
230 Patch_Guild_Sticker = 136,
231 Delete_Guild_Sticker = 137,
232 Get_Current_User = 138,
234 Patch_Current_User = 140,
235 Get_Current_User_Guilds = 141,
236 Delete_Leave_Guild = 142,
237 Post_Create_User_Dm = 143,
238 Get_User_Connections = 144,
239 Get_Voice_Regions = 145,
241 Get_Channel_Webhooks = 147,
242 Get_Guild_Webhooks = 148,
244 Get_Webhook_With_Token = 150,
246 Patch_Webhook_With_Token = 152,
247 Delete_Webhook = 153,
248 Delete_Webhook_With_Token = 154,
249 Post_Execute_Webhook = 155,
250 Get_Webhook_Message = 156,
251 Patch_Webhook_Message = 157,
252 Delete_Webhook_Message = 158,
253 Get_Application_Info = 159,
254 Get_Authorization_Info = 160,
255 Get_Gateway_Bot = 161,
256 Post_Thread_In_Forum_Channel = 162,
257 Get_Auto_Moderation_Rules = 163,
258 Get_Auto_Moderation_Rule = 164,
259 Post_Auto_Moderation_Rule = 165,
260 Patch_Auto_Moderation_Rule = 166,
261 Delete_Auto_Moderation_Rule = 167,
262 YouTubeGetSearchResults = 168,
263 SoundCloudGetSearchResults = 169,
267 class DiscordCoreAPI_Dll HttpsWorkloadData {
269 friend class HttpsClient;
271 static std::unordered_map<HttpsWorkloadType, std::unique_ptr<std::atomic_int64_t>> workloadIdsExternal;
272 static std::unordered_map<HttpsWorkloadType, std::unique_ptr<std::atomic_int64_t>> workloadIdsInternal;
274 mutable std::unordered_map<std::string, std::string> headersToInsert{};
275 PayloadType payloadType{ PayloadType::Application_Json };
276 mutable std::atomic_int64_t thisWorkerId{};
277 HttpsWorkloadClass workloadClass{};
278 mutable std::string baseUrl{};
279 std::string relativePath{};
280 std::string callStack{};
281 std::string content{};
283 HttpsWorkloadData() noexcept = default;
285 HttpsWorkloadData& operator=(HttpsWorkloadData&& other) noexcept;
287 HttpsWorkloadData& operator=(const HttpsWorkloadData& other) noexcept = delete;
289 HttpsWorkloadData(const HttpsWorkloadData& other) noexcept = delete;
291 HttpsWorkloadData& operator=(HttpsWorkloadType type) noexcept;
293 HttpsWorkloadData(HttpsWorkloadType type) noexcept;
296 static int64_t incrementAndGetWorkloadId(HttpsWorkloadType workloadType) noexcept;
298 HttpsWorkloadType workloadType{};
301 struct DiscordCoreAPI_Dll HelloData {
302 HelloData(DiscordCoreAPI::Value);
303 int32_t heartbeatInterval{};
306 struct DiscordCoreAPI_Dll WebSocketMessage {
311 WebSocketMessage() noexcept = default;
315 template<typename RTy> RTy processJsonMessage(
DiscordCoreAPI::Value jsonData, const
char* dataName) {
316 DiscordCoreAPI::Value
object{};
317 if (jsonData[dataName].get(
object) != DiscordCoreAPI::ErrorCode::Success) {
318 throw DiscordCoreAPI::DCAException{ std::string{
"Failed to collect the " } + dataName };
320 return RTy{
object };
325 struct DiscordCoreAPI_Dll InvalidSessionData {
326 InvalidSessionData(DiscordCoreAPI::Value);
340 struct DiscordCoreAPI_Dll ConnectionPackage {
341 int32_t currentReconnectTries{};
342 uint32_t currentShard{};
343 bool areWeResuming{};
364 std::string getCreatedAtTimestamp(
TimeFormat timeFormat);
371 std::string premiumSubscriber{};
372 std::string integrationId{};
416 StringWrapper discriminator{};
417 StringWrapper userName{};
433 template<IsEnum ETy>
bool getFlagValue(ETy theEnum) {
434 return getBool(this->flags, theEnum);
437 std::string getAvatarUrl();
439 virtual ~UserData() noexcept = default;
445 std::string contentType{};
446 std::string description{};
447 std::string filename{};
448 std::string proxyUrl{};
456 operator Serializer();
474 std::string proxyIconUrl{};
475 std::string iconUrl{};
487 std::string proxyUrl{};
501 std::string proxyUrl{};
515 std::string proxyUrl{};
541 std::string proxyIconUrl{};
542 std::string iconUrl{};
563 operator Serializer();
581 std::vector<EmbedFieldData> fields{};
583 ColorValue hexColorValue{ 0 };
585 std::string description{};
588 std::string timeStamp{};
597 operator Serializer();
603 EmbedData& setAuthor(const std::
string& authorName, const std::
string& authorAvatarUrl = "");
609 EmbedData& setFooter(const std::
string& footerText, const std::
string& footerIconUrlText = "");
614 EmbedData& setTimeStamp(const std::
string& timeStamp);
621 EmbedData& addField(const std::
string& name, const std::
string& value,
bool Inline = true);
626 EmbedData& setDescription(const std::
string& descriptionNew);
631 EmbedData& setColor(const std::
string& hexColorValueNew);
636 EmbedData& setThumbnail(const std::
string& thumbnailUrl);
641 EmbedData& setTitle(const std::
string& titleNew);
646 EmbedData& setImage(const std::
string& imageUrl);
655 bool failIfNotExists{};
656 Snowflake messageId{};
657 Snowflake channelId{};
664 operator Serializer();
669 enum class MediaType : uint8_t { png = 0, gif = 1, jpeg = 2, mpeg = 3, mp3 = 4 };
672 struct DiscordCoreAPI_Dll
File {
673 std::string fileName{};
702 int32_t autoArchiveDuration{};
729 class DiscordCoreAPI_Dll ThreadMemberDataVector {
731 ThreadMemberDataVector() noexcept = default;
735 ThreadMemberDataVector(Value);
737 virtual ~ThreadMemberDataVector() noexcept = default;
752 Snowflake channelId{};
766 std::string sessionId{};
790 enum class RoleFlags : uint8_t { Mentionable = 1 << 0, Managed = 1 << 1, Hoist = 1 << 2 };
797 StringWrapper unicodeEmoji{};
799 ColorValue color{ 0 };
800 StringWrapper name{};
818 template<IsEnum ETy>
bool getFlagValue(ETy theEnum) {
819 return getBool(this->flags, theEnum);
822 virtual ~RoleData() noexcept = default;
828 std::wstring unicodeName{ L
"" };
829 std::vector<RoleData> roles{};
830 bool available{
true };
831 bool requireColons{};
832 StringWrapper name{};
856 StringWrapper name{};
865 enum class PresenceUpdateFlags : uint8_t {
866 Desktop_Online = 0b00000001,
867 Desktop_Idle = 0b00000010,
868 Desktop_Dnd = 0b000000011,
869 Mobile_Online = 0b00000010,
870 Mobile_Idle = 0b00000100,
871 Mobile_Dnd = 0b00000110,
872 Web_Online = 0b00000100,
873 Web_Idle = 0b00001000,
874 Web_Dnd = 0b00001100,
875 Status_Online = 0b00001000,
876 Status_Idle = 0b00010000,
877 Status_Dnd = 0b00011000
880 void parseObject(Value jsonData, PresenceUpdateFlags& data);
884 PresenceUpdateFlags theStatus{};
895 enum class GuildMemberFlags : uint8_t { Pending = 1 << 0, Deaf = 1 << 1, Mute = 1 << 2 };
902 std::vector<Snowflake> roles{};
904 GuildMemberFlags flags{};
906 StringWrapper nick{};
920 template<IsEnum ETy>
bool getFlagValue(ETy theEnum) {
921 return getBool(this->flags, theEnum);
924 GuildMemberData(Value);
926 VoiceStateDataLight getVoiceStateData();
928 std::string getAvatarUrl();
930 UserData getUserData();
932 virtual ~GuildMemberData() noexcept = default;
955 enum class ChannelFlags : uint8_t { NSFW = 1 << 0 };
957 struct DiscordCoreAPI_Dll DefaultReactionData {
958 std::string emojiName{};
961 DefaultReactionData() noexcept = default;
963 DefaultReactionData(Value jsonData);
966 struct DiscordCoreAPI_Dll ForumTagData {
967 std::string emojiName{};
973 ForumTagData() noexcept = default;
975 ForumTagData(Value jsonData);
977 virtual ~ForumTagData() noexcept = default;
985 std::vector<OverWriteData> permissionOverwrites{};
988 uint32_t memberCount{};
989 StringWrapper topic{};
990 Snowflake parentId{};
991 StringWrapper name{};
992 ChannelFlags flags{};
1009 template<IsEnum ETy>
bool getFlagValue(ETy theEnum) {
1010 return getBool(this->flags, theEnum);
1013 virtual ~ChannelData() noexcept = default;
1018 std::vector<ThreadMemberData> members{};
1019 std::vector<ChannelData> threads{};
1031 std::vector<ThreadMemberData> members{};
1032 std::vector<ChannelData> threads{};
1093 int64_t durationSeconds{};
1094 Snowflake channelId{};
1105 std::vector<KeywordPresetType> presets{};
1106 std::vector<std::string> keywordFilter{};
1107 std::vector<std::string> allowList{};
1108 int32_t mentionTotalLimit{};
1132 std::vector<Snowflake> exemptChannels{};
1133 std::vector<Snowflake> exemptRoles{};
1135 std::vector<ActionData> actions{};
1138 Snowflake creatorId{};
1139 Snowflake guildId{};
1166 std::vector<ApplicationCommandPermissionData> permissions{};
1167 Snowflake applicationId{};
1168 Snowflake guildId{};
1177 class DiscordCoreAPI_Dll GuildApplicationCommandPermissionsDataVector {
1179 GuildApplicationCommandPermissionsDataVector() noexcept = default;
1183 GuildApplicationCommandPermissionsDataVector(Value jsonData);
1185 virtual ~GuildApplicationCommandPermissionsDataVector() noexcept = default;
1191 class DiscordCoreAPI_Dll EmojiDataVector {
1193 EmojiDataVector() noexcept = default;
1195 EmojiDataVector(Value jsonData);
1197 virtual ~EmojiDataVector() noexcept = default;
1200 std::vector<EmojiData> theEmojis{};
1205 std::vector<OverWriteData> permissionOverwrites{};
1206 int32_t defaultAutoArchiveDuration{ 10080 };
1207 int32_t videoQualityMode{ 1 };
1208 int32_t rateLimitPerUser{};
1209 int32_t bitrate{ 48000 };
1210 std::string parentId{};
1211 std::string rtcRgion{};
1212 int32_t userLimit{};
1213 std::string topic{};
1224 Snowflake channelId{};
1225 Snowflake messageId{};
1226 Snowflake guildId{};
1254 class DiscordCoreAPI_Dll VoiceRegionDataVector {
1256 VoiceRegionDataVector() noexcept = default;
1260 VoiceRegionDataVector(Value jsonData);
1262 virtual ~VoiceRegionDataVector() noexcept = default;
1279 std::string partyId{};
1290 bool failedDueToPerms{};
1291 std::string reason{};
1298 virtual ~
BanData() noexcept = default;
1301 class DiscordCoreAPI_Dll BanDataVector {
1303 BanDataVector() noexcept = default;
1305 operator std::vector<
BanData>();
1307 BanDataVector(Value jsonData);
1309 virtual ~BanDataVector() noexcept = default;
1317 std::vector<Permissions> permissions{};
1318 int32_t membershipState{};
1331 Snowflake channelId{};
1332 Snowflake guildId{};
1336 operator Serializer();
1342 std::vector<TeamMembersObjectData> members{};
1343 Snowflake ownerUserId{};
1371 std::vector<std::string> scopes{};
1384 std::vector<std::string> rpcOrigins{};
1385 std::vector<std::string> tags{};
1386 std::string termsOfServiceUrl{};
1387 std::string privacyPolicyUrl{};
1388 std::string customInstallUrl{};
1389 std::string primarySkuId{};
1391 bool botRequireCodeGrant{};
1392 std::string description{};
1393 std::string coverImage{};
1395 std::string verifyKey{};
1397 std::string summary{};
1398 Snowflake guildId{};
1414 std::vector<std::string> scopes{};
1416 std::string expires{};
1440 Snowflake channelId{};
1452 std::vector<ChannelData> channels{};
1453 std::vector<UserData> members{};
1454 std::string instantInvite{};
1455 int32_t presence_count{};
1483 bool enableEmoticons{
true };
1484 int32_t expireGracePeriod{};
1485 int32_t subscriberCount{};
1486 int32_t expireBehavior{};
1504 class DiscordCoreAPI_Dll IntegrationDataVector {
1506 IntegrationDataVector() noexcept = default;
1510 IntegrationDataVector(Value jsonData);
1512 virtual ~IntegrationDataVector() noexcept = default;
1577 std::string deleteMemberDays{};
1578 std::string membersRemoved{};
1579 Snowflake applicationId{};
1580 std::string roleName{};
1581 Snowflake channelId{};
1582 Snowflake messageId{};
1583 std::string count{};
1595 JsonStringValue newValue{};
1596 JsonStringValue oldValue{};
1620 std::vector<AuditLogChangeData> changes{};
1624 std::string reason{};
1625 Snowflake targetId{};
1674 std::string description{};
1675 std::string emojiName{};
1676 Snowflake channelId{};
1677 Snowflake emojiId{};
1688 std::vector<WelcomeScreenChannelData> welcomeChannels{};
1689 std::string description{};
1708 bool discoverableDisabled{};
1709 Snowflake channelId{};
1710 Snowflake guildId{};
1711 std::string topic{};
1726 enum class StickerFlags : uint8_t { Available = 1 << 0 };
1732 std::string description{};
1733 StickerFlags flags{};
1734 std::string packId{};
1735 int32_t nsfwLevel{};
1736 int32_t sortValue{};
1737 Snowflake guildId{};
1738 std::string asset{};
1754 std::vector<StickerData> stickers{};
1755 std::vector<std::string> features{};
1756 int32_t approximatePresenceCount{};
1757 int32_t approximateMemberCount{};
1758 std::vector<EmojiData> emojis{};
1759 std::string discoverySplash{};
1760 std::string description{};
1761 std::string splash{};
1812 std::vector<Snowflake> guildScheduledEvents{};
1813 std::vector<PresenceUpdateData> presences{};
1814 std::vector<Snowflake> stageInstances{};
1815 std::vector<Snowflake> stickers{};
1816 std::vector<Snowflake> channels{};
1817 std::vector<Snowflake> threads{};
1818 std::vector<Snowflake> members{};
1819 std::vector<Snowflake> roles{};
1820 std::vector<Snowflake> emoji{};
1821 uint32_t memberCount{};
1823 StringWrapper name{};
1824 Snowflake ownerId{};
1847 VoiceConnection* connectToVoice(const Snowflake guildMemberId, const Snowflake channelId = Snowflake{},
bool selfDeaf =
false,
1848 bool selfMute =
false, StreamInfo streamInfo = StreamInfo{});
1850 template<IsEnum ETy>
bool getFlagValue(ETy theEnum) {
1851 return getBool(this->flags, theEnum);
1854 std::string getBannerUrl() noexcept;
1856 std::
string getIconUrl() noexcept;
1858 bool areWeConnected();
1862 virtual ~GuildData() noexcept = default;
1865 class DiscordCoreAPI_Dll GuildDataVector {
1869 GuildDataVector() noexcept = default;
1871 operator std::vector<GuildData>();
1873 GuildDataVector(Value jsonData);
1875 virtual ~GuildDataVector() noexcept = default;
1878 std::vector<GuildData> guilds{};
1905 std::string location{};
1921 std::string scheduledStartTime{};
1922 std::string scheduledEndTime{};
1923 std::string description{};
1924 Snowflake creatorId{};
1925 Snowflake channelId{};
1926 Snowflake entityId{};
1927 uint32_t userCount{};
1928 Snowflake guildId{};
1941 Snowflake guildScheduledEventId{};
1952 class DiscordCoreAPI_Dll GuildScheduledEventUserDataVector {
1954 GuildScheduledEventUserDataVector() noexcept = default;
1958 GuildScheduledEventUserDataVector(Value jsonData);
1960 virtual ~GuildScheduledEventUserDataVector() noexcept = default;
1966 class DiscordCoreAPI_Dll GuildScheduledEventDataVector {
1968 GuildScheduledEventDataVector() noexcept = default;
1970 operator std::vector<GuildScheduledEventData>();
1972 GuildScheduledEventDataVector(Value jsonData);
1974 virtual ~GuildScheduledEventDataVector() noexcept = default;
1977 std::vector<GuildScheduledEventData> guildScheduledEvents{};
1984 int32_t approximatePresenceCount{};
1986 int32_t approximateMemberCount{};
1991 int32_t targetType{};
1992 Snowflake guildId{};
2008 class DiscordCoreAPI_Dll InviteDataVector {
2010 InviteDataVector() noexcept = default;
2014 InviteDataVector(Value jsonData);
2016 virtual ~InviteDataVector() noexcept = default;
2025 std::string sourceGuildId{};
2026 std::string description{};
2027 std::string creatorId{};
2028 std::string createdAt{};
2029 std::string updatedAt{};
2030 uint32_t usageCount{};
2043 class DiscordCoreAPI_Dll GuildTemplateDataVector {
2045 GuildTemplateDataVector() noexcept = default;
2049 GuildTemplateDataVector(Value jsonData);
2051 virtual ~GuildTemplateDataVector() noexcept = default;
2074 Snowflake applicationId{};
2076 Snowflake channelId{};
2077 std::string avatar{};
2078 Snowflake guildId{};
2079 std::string token{};
2092 class DiscordCoreAPI_Dll WebHookDataVector {
2094 WebHookDataVector() noexcept = default;
2098 WebHookDataVector(Value jsonData);
2100 virtual ~WebHookDataVector() noexcept = default;
2109 std::vector<GuildScheduledEventData> guildScheduledEvents{};
2110 std::vector<AutoModerationRuleData> autoModerationRules{};
2111 std::vector<AuditLogEntryData> auditLogEntries{};
2112 std::vector<IntegrationData> integrations{};
2113 std::vector<WebHookData> webhooks{};
2114 std::vector<ChannelData> threads{};
2115 std::vector<UserData> users{};
2117 auto getAuditLogData(
const Snowflake userIdOfChanger,
AuditLogEvent auditLogType);
2119 auto getAuditLogData(
AuditLogEvent auditLogType,
const Snowflake userIdOfTarget);
2130 Snowflake channelId{};
2131 Snowflake messageId{};
2132 Snowflake guildId{};
2145 std::string interactionToken{};
2146 Snowflake applicationId{};
2147 Snowflake interactionId{};
2152 Snowflake channelId{};
2153 Snowflake messageId{};
2159 std::unordered_map<std::string, std::string>
2160 nameLocalizations{};
2161 std::string value{};
2173 operator Serializer();
2184 std::unordered_map<std::string, std::string> descriptionLocalizations{};
2185 std::unordered_map<std::string, std::string> nameLocalizations{};
2186 std::vector<ApplicationCommandOptionChoiceData>
2188 std::vector<ApplicationCommandOptionData> options{};
2189 std::vector<ChannelType> channelTypes{};
2191 std::string description{};
2192 bool autocomplete{};
2200 operator Serializer();
2212 Snowflake channelId{};
2213 Snowflake guildId{};
2214 int32_t timeStamp{};
2225 struct DiscordCoreAPI_Dll YouTubeFormat {
2226 std::string signatureCipher{};
2227 std::string audioSampleRate{};
2228 std::string audioQuality{};
2229 std::string downloadUrl{};
2230 int32_t averageBitrate{};
2231 int64_t contentLength{};
2232 std::string signature{};
2233 std::string mimeType{};
2234 std::string quality{};
2235 std::string codecs{};
2236 std::string aitags{};
2243 YouTubeFormat() noexcept = default;
2245 YouTubeFormat(Value);
2253 operator std::vector<YouTubeFormat>();
2260 std::vector<YouTubeFormat> formats{};
2272 Snowflake targetId{};
2283 Snowflake targetId{};
2304 enum class SelectMenuType : uint8_t { String_Select = 3, User_Select = 5, Role_Select = 6, Mentionable_Select = 7, Channel_Select = 8 };
2308 std::vector<std::string> values{};
2310 std::string customId{};
2321 std::string customIdSmall{};
2322 std::string customId{};
2323 std::string value{};
2336 std::vector<std::string> parse{};
2337 std::vector<std::string> roles{};
2338 std::vector<std::string> users{};
2344 operator Serializer();
2361 std::string description{};
2362 std::string label{};
2363 std::string value{};
2385 std::vector<SelectOptionData> options{};
2386 std::vector<ChannelType>
2388 std::string placeholder{};
2389 std::string customId{};
2391 int32_t minValues{};
2392 int32_t maxValues{};
2393 int32_t minLength{};
2394 int32_t maxLength{};
2395 std::string label{};
2396 std::string value{};
2397 std::string title{};
2412 std::vector<ComponentData> components{};
2416 operator Serializer();
2437 std::vector<ApplicationCommandOptionChoiceData> choices{};
2438 std::vector<AttachmentData> attachments{};
2439 std::vector<ActionRowData> components{};
2441 std::vector<EmbedData> embeds{};
2442 std::vector<File> files{};
2443 std::string customId{};
2444 std::string content{};
2445 std::string title{};
2450 struct DiscordCoreAPI_Dll CreateApplicationCommandData;
2455 std::unordered_map<std::string, std::string> descriptionLocalizations{};
2456 std::unordered_map<std::string, std::string> nameLocalizations{};
2457 std::vector<ApplicationCommandOptionData> options{};
2460 Snowflake applicationId{};
2461 std::string description{};
2462 std::string version{};
2463 bool dmPermission{};
2464 Snowflake guildId{};
2479 Snowflake guildId{};
2493 Snowflake channelId{};
2494 Snowflake guildId{};
2505 std::vector<ThreadMemberData> members{};
2506 std::vector<std::string> channelIds{};
2507 std::vector<ChannelData> threads{};
2508 Snowflake guildId{};
2520 std::vector<ThreadMemberData> addedMembers{};
2521 std::vector<std::string> removedMemberIds{};
2522 uint32_t memberCount{};
2523 Snowflake guildId{};
2595 std::vector<AttachmentData> attachments{};
2596 std::vector<ActionRowData> components{};
2598 std::vector<std::string> stickerIds{};
2599 std::vector<EmbedData> embeds{};
2600 std::vector<File> files{};
2601 std::string content{};
2621 std::vector<ChannelMentionData> mentionChannels{};
2622 std::vector<StickerItemData> stickerItems{};
2623 std::vector<AttachmentData> attachments{};
2625 std::vector<ActionRowData> components{};
2626 std::vector<std::string> mentionRoles{};
2627 std::vector<ReactionData> reactions{};
2629 std::vector<StickerData> stickers{};
2630 std::vector<UserData> mentions{};
2631 std::vector<EmbedData> embeds{};
2635 Snowflake applicationId{};
2637 bool mentionEveryone{};
2639 std::string content{};
2640 Snowflake channelId{};
2641 Snowflake webHookId{};
2643 Snowflake guildId{};
2644 std::string nonce{};
2661 std::unique_ptr<MessageDataOld> referencedMessage{ std::make_unique<MessageDataOld>() };
2676 std::unordered_map<uint64_t, AttachmentData>
2678 std::unordered_map<uint64_t, GuildMemberData> members{};
2679 std::unordered_map<uint64_t, MessageData> messages{};
2680 std::unordered_map<uint64_t, ChannelData> channels{};
2681 std::unordered_map<uint64_t, UserData> users{};
2682 std::unordered_map<uint64_t, RoleData> roles{};
2691 std::vector<StickerData> stickers{};
2692 std::string coverStickerId{};
2693 std::string bannerAssetId{};
2694 std::string description{};
2695 std::string skuId{};
2706 class DiscordCoreAPI_Dll StickerPackDataVector {
2708 StickerPackDataVector() noexcept = default;
2712 StickerPackDataVector(Value jsonData);
2714 virtual ~StickerPackDataVector() noexcept = default;
2728 std::vector<IntegrationData> integrations{};
2732 bool showActivity{};
2745 class DiscordCoreAPI_Dll ConnectionDataVector {
2747 ConnectionDataVector() noexcept = default;
2749 ConnectionDataVector(Value jsonData) noexcept;
2753 virtual ~ConnectionDataVector() noexcept = default;
2761 std::vector<ApplicationCommandInteractionDataOption> options{};
2763 JsonStringValue value{};
2777 std::vector<ApplicationCommandInteractionDataOption> options{};
2780 Snowflake guildId{};
2810 std::string guildLocale{};
2811 Snowflake applicationId{};
2815 Snowflake channelId{};
2816 std::string locale{};
2817 Snowflake guildId{};
2818 std::string token{};
2831 uint32_t maxConcurrency{};
2832 uint32_t resetAfter{};
2833 uint32_t remaining{};
2864 std::vector<EmojiData> emojis{};
2865 Snowflake guildId{};
2876 std::vector<StickerData> stickers{};
2877 Snowflake guildId{};
2886 struct DiscordCoreAPI_Dll GuildMembersChunkEventData {
2887 std::vector<PresenceUpdateData> presences{};
2888 std::vector<GuildMemberData> members{};
2889 std::vector<std::string> notFound{};
2890 int32_t chunkIndex{};
2891 int32_t chunkCount{};
2892 Snowflake guildId{};
2893 std::string nonce{};
2895 GuildMembersChunkEventData() noexcept = default;
2897 GuildMembersChunkEventData(Value jsonData);
2899 virtual ~GuildMembersChunkEventData() noexcept = default;
2908 friend class DiscordCoreInternal::WebSocketClient;
2909 friend class DiscordCoreInternal::BaseSocketAgent;
2958 std::unique_ptr<
InteractionData> interactionData{ std::make_unique<InteractionData>() };
2997 RespondToInputEventData& addButton(
bool disabled,
const std::string& customIdNew,
const std::string& buttonLabel,
2998 ButtonStyle buttonStyle,
const std::string& emojiName =
"", Snowflake emojiId = Snowflake{},
const std::string& url =
"");
3010 RespondToInputEventData& addSelectMenu(
bool disabled,
const std::string& customIdNew, std::vector<SelectOptionData> options,
3011 const std::string& placeholder, int32_t maxValues, int32_t minValues, SelectMenuType type,
3012 std::vector<ChannelType> channelTypes = std::vector<ChannelType>{});
3026 RespondToInputEventData& addModal(
const std::string& topTitleNew,
const std::string& topCustomIdNew,
const std::string& titleNew,
3027 const std::string& customIdNew,
bool required, int32_t minLength, int32_t maxLength,
TextInputStyle inputStyle,
3028 const std::string& label =
"",
const std::string& placeholder =
"");
3071 std::unordered_map<std::string, std::string> theNameLocalizations);
3079 std::vector<ApplicationCommandOptionChoiceData> choices{};
3080 std::vector<ActionRowData> components{};
3082 std::vector<EmbedData> embeds{};
3083 std::string interactionToken{};
3086 std::vector<File> files{};
3087 Snowflake interactionId{};
3088 Snowflake applicationId{};
3089 Snowflake targetUserId{};
3090 std::string customId{};
3091 Snowflake channelId{};
3092 Snowflake messageId{};
3093 std::string content{};
3094 std::string title{};
3111 MessageResponseBase& addButton(
bool disabled,
const std::string& customIdNew,
const std::string& buttonLabel,
3112 ButtonStyle buttonStyle,
const std::string& emojiName =
"", Snowflake emojiId = Snowflake{},
const std::string& url =
"");
3124 MessageResponseBase& addSelectMenu(
bool disabled,
const std::string& customIdNew, std::vector<SelectOptionData> options,
3125 const std::string& placeholder, int32_t maxValues, int32_t minValues, SelectMenuType type,
3126 std::vector<ChannelType> channelTypes = std::vector<ChannelType>{});
3140 MessageResponseBase& addModal(
const std::string& topTitleNew,
const std::string& topCustomIdNew,
const std::string& titleNew,
3141 const std::string& customIdNew,
bool required, int32_t minLength, int32_t maxLength,
TextInputStyle inputStyle,
3142 const std::string& label =
"",
const std::string& placeholder =
"");
3175 std::vector<ActionRowData> components{};
3177 std::vector<EmbedData> embeds{};
3178 std::vector<File> files{};
3179 std::string customId{};
3180 std::string content{};
3181 std::string title{};
3197 operator Serializer();
3203 std::vector<ApplicationCommandPermissionData> permissions{};
3204 Snowflake applicationId{};
3205 Snowflake guildId{};
3220 int32_t contentSize{};
3221 std::string urlPath{};
3229 struct DiscordCoreAPI_Dll MediaTranscoding {
3230 std::string thePreset{};
3231 std::string theUrl{};
3233 MediaTranscoding() noexcept = default;
3234 MediaTranscoding(Value);
3240 friend class DiscordCoreInternal::SoundCloudRequestBuilder;
3241 friend class DiscordCoreInternal::YouTubeRequestBuilder;
3242 friend class DiscordCoreInternal::SoundCloudAPI;
3243 friend class DiscordCoreInternal::YouTubeAPI;
3246 std::vector<DownloadUrl> finalDownloadUrls{};
3248 std::string secondDownloadUrl{};
3249 std::string firstDownloadUrl{};
3250 std::string html5PlayerFile{};
3251 std::string addedByUserName{};
3252 std::string thumbnailUrl{};
3253 std::string html5Player{};
3254 Snowflake addedByUserId{};
3255 std::string description{};
3256 uint64_t contentLength{};
3257 std::string songTitle{};
3258 std::string duration{};
3259 std::string viewUrl{};
3260 std::string songId{};
3262 Song() noexcept = default;
3264 Song(Value jsonData);
3266 virtual ~Song() noexcept = default;
3269 std::
string trackAuthorization{};
3270 bool doWeGetSaved{};
3271 YouTubeFormat format{};
3284 std::vector<Song> songQueue{};
3285 bool isLoopSongEnabled{};
3286 bool isLoopAllEnabled{};
3297 struct DiscordCoreAPI_Dll JsonifierValue {
3298 std::unordered_map<std::string, JsonStringValue> values{};
3350 std::
string getCommandName() noexcept;
3354 std::
string getSubCommandName() noexcept;
3358 std::
string getSubCommandGroupName() noexcept;
3362 JsonifierValue getCommandArguments() noexcept;
3372 std::string subCommandGroupName{};
3373 std::string subCommandName{};
3374 JsonifierValue optionsArgs{};
3375 InputEventData eventData{};
3376 std::string commandName{};
3392 std::string helpDescription{};
3393 std::string commandName{};
3405 struct DiscordCoreAPI_Dll MoveThroughMessagePagesData {
3407 uint32_t currentPageIndex{};
3408 std::string buttonId{};
3411 DiscordCoreAPI_Dll MoveThroughMessagePagesData moveThroughMessagePages(
const std::string& userID,
InputEventData originalEvent,
3412 uint32_t currentPageIndex,
const std::vector<EmbedData>& messageEmbeds,
bool deleteAfter, uint32_t waitForMaxMs,
bool returnResult);
3418namespace DiscordCoreInternal {
3420 struct DiscordCoreAPI_Dll ReadyData {
3423 std::string resumeGatewayUrl{};
3424 std::string sessionId{};
3425 uint32_t shard[2]{};
3428 ReadyData(DiscordCoreAPI::Value);
3429 ReadyData() noexcept = default;
3433template<> struct std::hash<
DiscordCoreAPI::VoiceStateDataLight> {
3435 return static_cast<DiscordCoreAPI::Snowflake
>(
object.userId).
operator size_t();
3441 return static_cast<DiscordCoreAPI::Snowflake
>(
object.id).
operator size_t();
3447 return static_cast<DiscordCoreAPI::Snowflake
>(
object.id).
operator size_t();
3453 return static_cast<DiscordCoreAPI::Snowflake
>(
object.id).
operator size_t();
3459 return static_cast<DiscordCoreAPI::Snowflake
>(
object.id).
operator size_t();
3465 return static_cast<DiscordCoreAPI::Snowflake
>(
object.id).
operator size_t();
3471 return static_cast<DiscordCoreAPI::Snowflake
>(
object.guildId).
operator size_t() ^
3472 (
static_cast<DiscordCoreAPI::Snowflake
>(
object.id).
operator size_t() << 1);
TimeFormat
Time formatting methods.
ButtonStyle
Button styles.
TimeoutDurations
Timeout durations for the timeout command.
PremiumType
Premium types denote the level of premium a user has.
DefaultMessageNotificationLevel
Default Message notification levels.
GuildScheduledEventStatus
GuildScheduledEventStatus.
ActivityType
Activity types.
TriggerType
Trigger types for auto-moderation.
AuditLogEvent
Audit log events.
GuildNSFWLevel
Guild NSFW level.
StickerFormatType
Sticker format types.
PremiumTier
Premium tier levels.
StageInstancePrivacyLevel
Stage instance privacy levels.
ApplicationCommandOptionType
Application command-option types.
GuildScheduledEventPrivacyLevel
Guild scheduled event privacy levels.
InteractionCallbackType
Interaction callback types.
ComponentType
Component types.
SortOrderTypes
The sorting order, for Guild Forum channels.
ExplicitContentFilterLevel
Explicit content filter levels.
InviteTargetTypes
Invite target types.
SystemChannelFlags
System channel flags.
MessageFlags
Message flags.
InteractionType
Interaction types.
ChannelType
Channel types.
ApplicationCommandPermissionType
Application command permission-types.
PermissionOverwritesType
PermissionTypes overwrites types.
ActionType
Action types for auto-moderation.
ApplicationFlags
Application flags, for the ApplicationData structure.
GuildScheduledEventEntityType
Guild scheduled event entity types.
InputEventResponseType
Input event response types.
WidgetStyleOptions
Widget style options.
ThreadAutoArchiveDuration
Automatic Thread archiving durations.
EventType
Event types for auto-moderation.
ApplicationCommandType
Application command types.
ConnectionVisibilityTypes
Connection visibility types.
VerificationLevel
/// Verification levels.
WebHookType
WebHook types.
MessageType
Message types.
MessageActivityType
Message activity types.
StickerType
Sticker types.
KeywordPresetType
Keyword preset types for auto-moderation.
StickerItemType
Sticker item types.
AfkTimeOutDurations
Afk timeout durations.
TextInputStyle
Text input style for modals.
@ Minute
1 Minute timeout.
@ None
None - remove timeout.
@ Ten_Minutes
10 Minute timeout.
@ Five_Minutes
5 Minute timeout.
@ Nitro_Classic
Nitro classic.
@ All_Messages
All messages.
@ Only_Mentions
Only mentions.
@ Keyword
Check if content contains words from a user defined list of keywords.
@ Mention_Spam
Check if content contains more unique mentions than allowed.
@ Keyword_Preset
Check if content contains words from internal pre-defined wordsets.
@ Spam
Check if content represents generic spam.
@ Member_Kick
Member kick.
@ Webhook_Delete
Webhook delete.
@ Channel_Overwrite_Update
Channel overwrite update.
@ Message_Delete
Message delete.
@ Emoji_Delete
Emoji delete.
@ Invite_Create
Invite create.
@ Sticker_Update
Sticker update.
@ Webhook_Update
Webhook update.
@ Invite_Update
Invite update.
@ Channel_Overwrite_Create
Channel overwrite create.
@ Member_Update
Member update.
@ Channel_Update
Channel update.
@ Message_Bulk_Delete
Message bulk delete.
@ Role_Create
Role create.
@ Emoji_Update
Emoji update.
@ Channel_Overwrite_Delete
Channel overwrite delete.
@ Auto_Moderation_Rule_Update
Auto Moderation rule was updated.
@ Application_Command_Permission_Update
Permissions were updated for a command.
@ Integration_Delete
Integration delete.
@ Role_Update
Role update.
@ Guild_Scheduled_Event_Create
Guild-scheduled-event create.
@ Stage_Instance_Update
Stage-Instance update.
@ Member_Prune
Member prune.
@ Guild_Scheduled_Event_Update
Guild-scheduled-event update.
@ Member_Ban_Add
Member ban add.
@ Thread_Update
Thread update.
@ Sticker_Delete
Sticker delete.
@ Integration_Create
Integration create.
@ Channel_Create
Channel create.
@ Member_Role_Update
Member role update.
@ Stage_Instance_Create
Stage-Instance create.
@ Message_Pin
Message pin.
@ Auto_Moderation_Block_Message
Message was blocked by AutoMod (according to a rule).
@ Message_Unpin
Message unpin.
@ Member_Disconnect
Member disconnect.
@ Guild_Scheduled_Event_Delete
Guild-scheduled-event delete.
@ Member_Ban_Remove
Member ban remove.
@ Stage_Instance_Delete
Stage-Instance delete.
@ Member_Move
Member move.
@ Webhook_Create
Webhook create.
@ Thread_Delete
Thread delete.
@ Sticker_Create
Sticker create.
@ Thread_Create
Thread create.
@ Guild_Update
Guild update.
@ Emoji_Create
Emoji create.
@ Auto_Moderation_Rule_Delete
Auto Moderation rule was deleted.
@ Role_Delete
Role delete.
@ Auto_Moderation_Rule_Create
Auto Moderation rule was created.
@ Integration_Update
Integration update.
@ Invite_Delete
Invite delete.
@ Channel_Delete
Channel delete.
@ Age_Restricted
Age restricted.
@ Bug_Hunter_Level_1
Bug Hunter Level 1.
@ Bot_Https_Interactions
Bot uses only HTTPS interactions and is shown in the online member list.
@ Verified
Is it verified?
@ Bug_Hunter_Level_2
Bug Hunter Level 2.
@ Premium_Early_Suppoerter
Early Nitro Supporter.
@ Hypesquad
HypeSquad Events Member.
@ Partner
Partnered Server Owner.
@ Verified_Developer
Early Verified Bot Developer.
@ Hypesquad_Online_House_1
House Bravery Member.
@ Hypesquad_Online_House_2
House Brilliance Member.
@ System
Is it a system integration?
@ Team_Pseudo_User
User is a team.
@ Certified_Moderator
Discord Certified Moderator.
@ MFAEnabled
Is MFA enabled?
@ Verified_Bot
Verified Bot.
@ Hypesquad_Online_House_3
House Balance Member.
@ Sub_Command
Sub-command.
@ Sub_Command_Group
Sub-command group.
@ Deferred_Channel_Message_With_Source
ACK an interaction and edit a response later, the user sees a loading state.
@ Channel_Message_With_Source
Respond to an interaction with a message.
@ Deferred_Update_Message
For components, ACK an interaction and edit the original message later; the user does not see a loadi...
@ Modal
Respond to an interaction with a popup modal.
@ Application_Command_Autocomplete_Result
Respond to an autocomplete interaction with suggested choices.
@ Update_Message
For components, edit the message the component was attached to.
@ Action_Row
Container for other components.
@ Role_Select
Select menu for roles.
@ Mentionable_Select
Select menu for mentionables (users and roles).
@ Channel_Select
Select menu for channels.
@ String_Select
Select menu for picking from defined text options.
@ User_Select
Select menu for users.
@ Text_Input
Text input object.
@ Latest_Activity
Sort forum posts by activity.
@ Creation_Date
Sort forum posts by creation time(from most recent to oldest).
@ All_Members
All members.
@ Members_Without_Roles
Members without roles.
@ Embedded_Application
Embedded application.
@ Suppress_Join_Notification_Replies
Hide member join sticker reply buttons.
@ Suppress_Guild_Reminder_Notifications
Suppress server setup tips.
@ Suppress_Join_Notifications
Suppress member join notifications.
@ Suppress_Premium_Subscriptions
Suppress server boost notifications.
@ Source_Message_Deleted
Source Message deleted.
@ Is_Crosspost
Is crosspost.
@ Crossposted
Crossposted.
@ Suppress_Embeds
Supress embeds.
@ Message_Component
Message component.
@ Application_Command_Autocomplete
Application command autocomplete.
@ Application_Command
Application command.
@ Modal_Submit
Modal submission.
@ Guild_Announcement
A channel that users can follow and crosspost into their own server (formerly news channels).
@ Group_DM
A direct message between multiple users.
@ DM
A direct message between users.
@ Announcement_Thread
A temporary sub-channel within a GUILD_ANNOUNCEMENT channel.
@ Guild_Stage_Voice
A voice channel for hosting events with an audience.
@ Guild_Text
A text channel within a server.
@ Guild_Voice
A voice channel within a server.
@ Guild_Category
An organizational category that contains up to 50 channels.
@ Guild_Directory
The channel in a hub containing the listed servers.
@ Private_Thread
A temporary sub-channel within a GUILD_TEXT channel that is only viewable by those invited and those ...
@ Guild_Forum
Channel that can only contain threads.
@ Public_Thread
A temporary sub-channel within a GUILD_TEXT or GUILD_FORUM channel.
@ Unavailable
Unavailable.
@ WidgetEnabled
Widget enabled.
@ Premium_Progress_Bar_Enabled
Premium progress bar enabled.
@ Guilds
Intent for receipt of Guild information.
@ Block_Message
Blocks the content of a message according to the rule.
@ Timeout
Timeout user for a specified duration.
@ Send_Alert_Message
Logs user content to a specified channel.
@ Embedded
Indicates if an app is embedded within the Discord client (currently unavailable publicly)
@ Verificatino_Pending_Guild_Limit
Indicates unusual growth of an app that prevents verification.
@ Gateway_Guild_Members
Intent required for bots in 100 or more servers to receive member-related events like guild_member_ad...
@ Gateway_Message_Content_Limited
Intent required for bots in under 100 servers to receive message content, found in Bot Settings};.
@ Gateway_Guild_Members_Limited
Intent required for bots in under 100 servers to receive member-related events like guild_member_add,...
@ Gateway_Presence_Limited
Intent required for bots in under 100 servers to receive presence_update events, found in Bot Setting...
@ Gateway_Message_Content
Intent required for bots in 100 or more servers to receive message content.
@ Gateway_Presence
Intent required for bots in 100 or more servers to receive presence_update events.
@ State_Instance
Stage instance.
@ Message_Send
When a member sends or edits a message in the guild.
@ Guild_News_Thread
Guild news Thread.
@ Guild_Public_Thread
Guild public Thread.
@ Guild_Private_Thread
Guild private Thread.
@ Channel_Follower
Channel follower.
@ Application
Application.
@ Guild_Discovery_Grace_Period_Final_Warning
Guild discovery grade period final warning.
@ User_Premium_Guild_Subscription
User premium Guild subscription.
@ Guild_Discovery_Grace_Period_Initial_Warning
Guild discovery grade period initial warning.
@ User_Premium_Guild_Subscription_Tier_3
User premium Guild subscription tier 3.
@ Guild_Member_Join
Guild memeber join.
@ Context_Menu_Command
Context menu command.
@ Recipient_Add
Recipient add.
@ User_Premium_Guild_Subscription_Tier_2
User premium Guild subscription tier 2.
@ Channel_Icon_Change
Channel icon change.
@ Channel_Follow_Add
Channel follow add.
@ Thread_Created
Thread created.
@ Guild_Discovery_Requalified
Guild discovery requalified.
@ Channel_Pinned_Message
Channel pinned Message.
@ Recipient_Remove
Recipient remove.
@ Channel_Name_Change
Channel name change.
@ Thread_Starter_Message
Thread starter Message.
@ Guild_Invite_Reminder
Guild invite reminder.
@ Chat_Input_Command
Chat input command.
@ Guild_Discovery_Disqualified
Guild discovery disqualified.
@ User_Premium_Guild_Subscription_Tier_1
User premium Guild subscription tier 1.
@ Join_Request
Join-request.
@ Sexual_Content
Words that refer to sexually explicit behavior or activity.
@ Profanity
Words that may be considered forms of swearing or cursing.
@ Slurs
Personal insults or words that may be considered hate speech.
@ Paragraph
A multi-line input.
The main namespace for this library.
DiscordCoreClient - The main class for this library.
Data that is received as part of an Interaction creation event.
Base class for all Discord entities.
Data structure representing a single User.
Data representing a file to be sent via multipart-form data.
Meta data for a Thread type of Channel.
Data for a single member of a Thread.
Data structure representing a single Role.
Data structure representing a single emoji.
Data structure representing a single GuildMember.
A PermissionTypes overwrite, for a given Channel.
Data structure representing a single Channel.
Data representing an active Thread.
Data representing an archived Thread.
Action metadata for auto-moderation-rules.
Trigger metadata for auto-moderation-rules.
For representing a single auto-moderation-rule-action.
Represents an auto-moderation-rule.
Permissions data for an ApplicationCommand.
Represents the Permissions for accessing an ApplicationCommand from within a Guild.
For updating/modifying a given Channel's properties.
/// Data structure representing a single reaction.
Structure representing Voice Region Data.
Team members object data.
For updating the current voice state.
Install params data, for application data.
Authorization info structure.
AuthorizationInfoData() noexcept=default
The User who has authorized, if the User has authorized with the identify scope.
Audit log entry info data.
Welcome screen Channel data.
Data representing a single Sticker.
Data representing a single Guild preview.
Data structure representing a single Guild.
Guild scheduled event entity metadata.
Data representing a Guild Scheduled Event.
Data representing a single GuildScheduledEventUser.
Represents a Guild Template.
For storing Interaction-related values.
For storing Message-related values.
Data structure representing an ApplicationCommand's option choice.
Data structure representing an ApplicationCommand's option.
Representing "TypingStart" data.
User command Interaction data.
Message command interacction data.
Component Interaction data.
Modal interaction data, for inputs from text modals.
Allowable mentions for a Message.
Represents a single selection from a select-menu.
Represents a single Message-component.
Action row data of Message components.
Interaction ApplicationCommand callback data.
Data structure representing an ApplicationCommand.
Data for when some Channel pins are updated.
Data for when threads are synced.
Represents a Thread-members-update.
Message Interaction data.
Represents a forum thread message.
Message Sticker item data.
The core of a Message's data structure.
Data structure representing a single Message.
Represents a Sticker pack.
Represents a single User Connection.
ApplicationCommand Interaction data option.
ApplicationCommand Interaction data.
Data from the SessionStart info.
Data from the GetGatewayBot endpoint.
Data representing a Guild Emoji Update event.
Data representing a Guild Stickers Update event.
Data representing an input-event, which is any Message or Interaction that is coming into the bot as ...
Data for responding to an input-event.
Message response base, for responding to messages.
Interaction response data.
Guild application command permissions data.
Represents a download Url.
A song from the various platforms.
Song completion event data.
Playlist of songs and other variables.
Command data, for functions executed by the CommandController.
DiscordCoreClient * getDiscordCoreClient() noexcept
Returns a pointer to the currently active DiscordCoreClient class.
Base arguments for the command classes.
Base class for the command classes.
A discord Guild. Used to connect to/disconnect from voice.
For handling User input - Messages or Interactions.
For creating an ephemeral Interaction response.
For creating a deferred Interaction response.
For creating an Interaction response.
For editing an Interaction response.
For deleting an Interaction response.
For creating an ephemeral follow up Message.
For creating a follow up Message.
For editing a follow up Message.
For deleting a follow up Message.
For sending a direct-message.
A class representing the Song APIs.
For updating a User's presence.
For connecting to a voice-channel. "streamInfo" is used when a socket is created to connect this bot ...
Permissions class, for representing and manipulating Permission values.
Class for representing a timeStamp, as well as working with time-related values.
VoiceConnection class - represents the connection to a given voice Channel.