lib_discord 0.1.3 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +88 -0
  3. data/README.md +40 -67
  4. data/lib/lib_discord/client.rb +2667 -138
  5. data/lib/lib_discord/formatter.rb +108 -0
  6. data/lib/lib_discord/maps.rb +730 -0
  7. data/lib/lib_discord/permissions.rb +84 -0
  8. data/lib/lib_discord/urls.rb +9 -15
  9. data/lib/lib_discord/version.rb +1 -4
  10. data/lib/lib_discord.rb +3 -5
  11. metadata +12 -120
  12. data/CHANGELOG.md +0 -152
  13. data/lib/lib_discord/application.rb +0 -43
  14. data/lib/lib_discord/application_command.rb +0 -341
  15. data/lib/lib_discord/application_role_connection_metadata.rb +0 -52
  16. data/lib/lib_discord/audit_log.rb +0 -36
  17. data/lib/lib_discord/auto_moderation.rb +0 -106
  18. data/lib/lib_discord/channel.rb +0 -716
  19. data/lib/lib_discord/emoji.rb +0 -106
  20. data/lib/lib_discord/errors.rb +0 -31
  21. data/lib/lib_discord/guild.rb +0 -830
  22. data/lib/lib_discord/guild_scheduled_event.rb +0 -133
  23. data/lib/lib_discord/guild_template.rb +0 -128
  24. data/lib/lib_discord/interaction.rb +0 -163
  25. data/lib/lib_discord/invite.rb +0 -47
  26. data/lib/lib_discord/mappers/application_command_option_types.rb +0 -22
  27. data/lib/lib_discord/mappers/application_command_permission_types.rb +0 -14
  28. data/lib/lib_discord/mappers/application_command_types.rb +0 -14
  29. data/lib/lib_discord/mappers/application_integration_types.rb +0 -13
  30. data/lib/lib_discord/mappers/application_role_connection_metadata_types.rb +0 -19
  31. data/lib/lib_discord/mappers/audit_log_events.rb +0 -67
  32. data/lib/lib_discord/mappers/auto_moderation_action_types.rb +0 -14
  33. data/lib/lib_discord/mappers/auto_moderation_event_types.rb +0 -12
  34. data/lib/lib_discord/mappers/auto_moderation_keyword_preset_types.rb +0 -14
  35. data/lib/lib_discord/mappers/auto_moderation_trigger_types.rb +0 -15
  36. data/lib/lib_discord/mappers/channel_forum_layout_types.rb +0 -14
  37. data/lib/lib_discord/mappers/channel_message_activity_types.rb +0 -15
  38. data/lib/lib_discord/mappers/channel_message_types.rb +0 -42
  39. data/lib/lib_discord/mappers/channel_sort_order_types.rb +0 -13
  40. data/lib/lib_discord/mappers/channel_types.rb +0 -24
  41. data/lib/lib_discord/mappers/channel_video_quality_modes.rb +0 -13
  42. data/lib/lib_discord/mappers/guild_default_message_notification_levels.rb +0 -13
  43. data/lib/lib_discord/mappers/guild_explicit_content_filter_levels.rb +0 -14
  44. data/lib/lib_discord/mappers/guild_integration_expire_behaviors.rb +0 -13
  45. data/lib/lib_discord/mappers/guild_mfa_levels.rb +0 -13
  46. data/lib/lib_discord/mappers/guild_nsfw_levels.rb +0 -15
  47. data/lib/lib_discord/mappers/guild_onboarding_modes.rb +0 -13
  48. data/lib/lib_discord/mappers/guild_premium_tiers.rb +0 -15
  49. data/lib/lib_discord/mappers/guild_prompt_types.rb +0 -13
  50. data/lib/lib_discord/mappers/guild_scheduled_event_entity_types.rb +0 -14
  51. data/lib/lib_discord/mappers/guild_scheduled_event_privacy_levels.rb +0 -12
  52. data/lib/lib_discord/mappers/guild_scheduled_event_statuses.rb +0 -15
  53. data/lib/lib_discord/mappers/guild_verification_levels.rb +0 -16
  54. data/lib/lib_discord/mappers/interaction_callback_types.rb +0 -19
  55. data/lib/lib_discord/mappers/interaction_context_types.rb +0 -14
  56. data/lib/lib_discord/mappers/interaction_types.rb +0 -16
  57. data/lib/lib_discord/mappers/invite_target_types.rb +0 -13
  58. data/lib/lib_discord/mappers/message_component_button_styles.rb +0 -16
  59. data/lib/lib_discord/mappers/message_component_text_input_styles.rb +0 -13
  60. data/lib/lib_discord/mappers/message_component_types.rb +0 -19
  61. data/lib/lib_discord/mappers/poll_layout_types.rb +0 -12
  62. data/lib/lib_discord/mappers/stage_instance_privacy_levels.rb +0 -13
  63. data/lib/lib_discord/mappers/sticker_format_types.rb +0 -15
  64. data/lib/lib_discord/mappers/sticker_types.rb +0 -13
  65. data/lib/lib_discord/mappers/user_premium_types.rb +0 -15
  66. data/lib/lib_discord/mappers/user_visibility_types.rb +0 -13
  67. data/lib/lib_discord/mappers/webhooks_types.rb +0 -14
  68. data/lib/lib_discord/mappers.rb +0 -87
  69. data/lib/lib_discord/poll.rb +0 -62
  70. data/lib/lib_discord/resource.rb +0 -133
  71. data/lib/lib_discord/response.rb +0 -43
  72. data/lib/lib_discord/stage_instance.rb +0 -79
  73. data/lib/lib_discord/sticker.rb +0 -132
  74. data/lib/lib_discord/types.rb +0 -47
  75. data/lib/lib_discord/user.rb +0 -174
  76. data/lib/lib_discord/voice.rb +0 -29
  77. data/lib/lib_discord/webhook.rb +0 -299
@@ -0,0 +1,730 @@
1
+ # frozen_string_literal: true
2
+
3
+ module LibDiscord
4
+ MAPS = {
5
+ Application: {
6
+ # https://discord.com/developers/docs/resources/application#application-object-application-event-webhook-status
7
+ EventWebhookStatuses: {
8
+ DISABLED: 1,
9
+ ENABLED: 2,
10
+ DISABLED_BY_DISCORD: 3
11
+ },
12
+
13
+ # https://discord.com/developers/docs/resources/application#application-object-application-flags
14
+ Flags: {
15
+ APPLICATION_AUTO_MODERATION_RULE_CREATE_BADGE: 1 << 6,
16
+ GATEWAY_PRESENCE: 1 << 12,
17
+ GATEWAY_PRESENCE_LIMITED: 1 << 13,
18
+ GATEWAY_GUILD_MEMBERS: 1 << 14,
19
+ GATEWAY_GUILD_MEMBERS_LIMITED: 1 << 15,
20
+ VERIFICATION_PENDING_GUILD_LIMIT: 1 << 16,
21
+ EMBEDDED: 1 << 17,
22
+ GATEWAY_MESSAGE_CONTENT: 1 << 18,
23
+ GATEWAY_MESSAGE_CONTENT_LIMITED: 1 << 19,
24
+ APPLICATION_COMMAND_BADGE: 1 << 23
25
+ },
26
+
27
+ # https://discord.com/developers/docs/resources/application#application-object-application-integration-types
28
+ IntegrationTypes: {
29
+ GUILD_INSTALL: 0,
30
+ USER_INSTALL: 1
31
+ }
32
+ },
33
+
34
+ ApplicationCommand: {
35
+ # https://discord.com/developers/docs/interactions/application-commands#application-command-object-entry-point-command-handler-types
36
+ EntryPointCommandHandlerTypes: {
37
+ APP_HANDLER: 1,
38
+ DISCORD_LAUNCH_ACTIVITY: 2
39
+ },
40
+
41
+ # https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-type
42
+ OptionTypes: {
43
+ SUB_COMMAND: 1,
44
+ SUB_COMMAND_GROUP: 2,
45
+ STRING: 3,
46
+ INTEGER: 4,
47
+ BOOLEAN: 5,
48
+ USER: 6,
49
+ CHANNEL: 7,
50
+ ROLE: 8,
51
+ MENTIONABLE: 9,
52
+ NUMBER: 10,
53
+ ATTACHMENT: 11
54
+ },
55
+
56
+ # https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-application-command-permission-type
57
+ PermissionTypes: {
58
+ ROLE: 1,
59
+ USER: 2,
60
+ CHANNEL: 3
61
+ },
62
+
63
+ # https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-types
64
+ Types: {
65
+ CHAT_INPUT: 1,
66
+ USER: 2,
67
+ MESSAGE: 3,
68
+ PRIMARY_ENTRY_POINT: 4
69
+ }
70
+ },
71
+
72
+ ApplicationRoleConnectionMetadata: {
73
+ # https://discord.com/developers/docs/resources/application-role-connection-metadata#application-role-connection-metadata-object-application-role-connection-metadata-type
74
+ Types: {
75
+ INTEGER_LESS_THAN_OR_EQUAL: 1,
76
+ INTEGER_GREATER_THAN_OR_EQUAL: 2,
77
+ INTEGER_EQUAL: 3,
78
+ INTEGER_NOT_EQUAL: 4,
79
+ DATETIME_LESS_THAN_OR_EQUAL: 5,
80
+ DATETIME_GREATER_THAN_OR_EQUAL: 6,
81
+ BOOLEAN_EQUAL: 7,
82
+ BOOLEAN_NOT_EQUAL: 8
83
+ }
84
+ },
85
+
86
+ AuditLog: {
87
+ # https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-audit-log-events
88
+ Events: {
89
+ GUILD_UPDATE: 1,
90
+ CHANNEL_CREATE: 10,
91
+ CHANNEL_UPDATE: 11,
92
+ CHANNEL_DELETE: 12,
93
+ CHANNEL_OVERWRITE_CREATE: 13,
94
+ CHANNEL_OVERWRITE_UPDATE: 14,
95
+ CHANNEL_OVERWRITE_DELETE: 15,
96
+ MEMBER_KICK: 20,
97
+ MEMBER_PRUNE: 21,
98
+ MEMBER_BAN_ADD: 22,
99
+ MEMBER_BAN_REMOVE: 23,
100
+ MEMBER_UPDATE: 24,
101
+ MEMBER_ROLE_UPDATE: 25,
102
+ MEMBER_MOVE: 26,
103
+ MEMBER_DISCONNECT: 27,
104
+ BOT_ADD: 28,
105
+ ROLE_CREATE: 30,
106
+ ROLE_UPDATE: 31,
107
+ ROLE_DELETE: 32,
108
+ INVITE_CREATE: 40,
109
+ INVITE_UPDATE: 41,
110
+ INVITE_DELETE: 42,
111
+ WEBHOOK_CREATE: 50,
112
+ WEBHOOK_UPDATE: 51,
113
+ WEBHOOK_DELETE: 52,
114
+ EMOJI_CREATE: 60,
115
+ EMOJI_UPDATE: 61,
116
+ EMOJI_DELETE: 62,
117
+ MESSAGE_DELETE: 72,
118
+ MESSAGE_BULK_DELETE: 73,
119
+ MESSAGE_PIN: 74,
120
+ MESSAGE_UNPIN: 75,
121
+ INTEGRATION_CREATE: 80,
122
+ INTEGRATION_UPDATE: 81,
123
+ INTEGRATION_DELETE: 82,
124
+ STAGE_INSTANCE_CREATE: 83,
125
+ STAGE_INSTANCE_UPDATE: 84,
126
+ STAGE_INSTANCE_DELETE: 85,
127
+ STICKER_CREATE: 90,
128
+ STICKER_UPDATE: 91,
129
+ STICKER_DELETE: 92,
130
+ GUILD_SCHEDULED_EVENT_CREATE: 100,
131
+ GUILD_SCHEDULED_EVENT_UPDATE: 101,
132
+ GUILD_SCHEDULED_EVENT_DELETE: 102,
133
+ THREAD_CREATE: 110,
134
+ THREAD_UPDATE: 111,
135
+ THREAD_DELETE: 112,
136
+ APPLICATION_COMMAND_PERMISSION_UPDATE: 121,
137
+ SOUNDBOARD_SOUND_CREATE: 130,
138
+ SOUNDBOARD_SOUND_UPDATE: 131,
139
+ SOUNDBOARD_SOUND_DELETE: 132,
140
+ AUTO_MODERATION_RULE_CREATE: 140,
141
+ AUTO_MODERATION_RULE_UPDATE: 141,
142
+ AUTO_MODERATION_RULE_DELETE: 142,
143
+ AUTO_MODERATION_BLOCK_MESSAGE: 143,
144
+ AUTO_MODERATION_FLAG_TO_CHANNEL: 144,
145
+ AUTO_MODERATION_USER_COMMUNICATION_DISABLED: 145,
146
+ CREATOR_MONETIZATION_REQUEST_CREATED: 150,
147
+ CREATOR_MONETIZATION_TERMS_ACCEPTED: 151,
148
+ ONBOARDING_PROMPT_CREATE: 163,
149
+ ONBOARDING_PROMPT_UPDATE: 164,
150
+ ONBOARDING_PROMPT_DELETE: 165,
151
+ ONBOARDING_CREATE: 166,
152
+ ONBOARDING_UPDATE: 167,
153
+ HOME_SETTINGS_CREATE: 190,
154
+ HOME_SETTINGS_UPDATE: 191
155
+ }
156
+ },
157
+
158
+ AutoModeration: {
159
+ # https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-action-object-action-types
160
+ ActionTypes: {
161
+ BLOCK_MESSAGE: 1,
162
+ SEND_ALERT_MESSAGE: 2,
163
+ TIMEOUT: 3,
164
+ BLOCK_MEMBER_INTERACTION: 4
165
+ },
166
+
167
+ # https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-event-types
168
+ EventTypes: {
169
+ MESSAGE_SEND: 1,
170
+ MEMBER_UPDATE: 2
171
+ },
172
+
173
+ # https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-keyword-preset-types
174
+ KeywordPresetTypes: {
175
+ PROFANITY: 1,
176
+ SEXUAL_CONTENT: 2,
177
+ SLURS: 3
178
+ },
179
+
180
+ # https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-trigger-types
181
+ TriggerTypes: {
182
+ KEYWORD: 1,
183
+ SPAM: 3,
184
+ KEYWORD_PRESET: 4,
185
+ MENTION_SPAM: 5,
186
+ MEMBER_PROFILE: 6
187
+ }
188
+ },
189
+
190
+ Channel: {
191
+ # https://discord.com/developers/docs/resources/channel#channel-object-channel-flags
192
+ Flags: {
193
+ PINNED: 1 << 1,
194
+ REQUIRE_TAG: 1 << 4,
195
+ HIDE_MEDIA_DOWNLOAD_OPTIONS: 1 << 15
196
+ },
197
+
198
+ # https://discord.com/developers/docs/resources/channel#channel-object-forum-layout-types
199
+ ForumLayoutTypes: {
200
+ NOT_SET: 0,
201
+ LIST_VIEW: 1,
202
+ GALLERY_VIEW: 2
203
+ },
204
+
205
+ # https://discord.com/developers/docs/resources/channel#channel-object-sort-order-types
206
+ SortOrderTypes: {
207
+ LATEST_ACTIVITY: 0,
208
+ CREATION_TIME: 1
209
+ },
210
+
211
+ # https://discord.com/developers/docs/resources/channel#channel-object-channel-types
212
+ Types: {
213
+ GUILD_TEXT: 0,
214
+ DM: 1,
215
+ GUILD_VOICE: 2,
216
+ GROUP_DM: 3,
217
+ GUILD_CATEGORY: 4,
218
+ GUILD_ANNOUNCEMENT: 5,
219
+ ANNOUNCEMENT_THREAD: 10,
220
+ PUBLIC_THREAD: 11,
221
+ PRIVATE_THREAD: 12,
222
+ GUILD_STAGE_VOICE: 13,
223
+ GUILD_DIRECTORY: 14,
224
+ GUILD_FORUM: 15,
225
+ GUILD_MEDIA: 16
226
+ },
227
+
228
+ # https://discord.com/developers/docs/resources/channel#channel-object-video-quality-modes
229
+ VideoQualityModes: {
230
+ AUTO: 1,
231
+ FULL: 2
232
+ }
233
+ },
234
+
235
+ Entitlement: {
236
+ # https://discord.com/developers/docs/resources/entitlement#entitlement-object-entitlement-types
237
+ Types: {
238
+ PURCHASE: 1,
239
+ PREMIUM_SUBSCRIPTION: 2,
240
+ DEVELOPER_GIFT: 3,
241
+ TEST_MODE_PURCHASE: 4,
242
+ FREE_PURCHASE: 5,
243
+ USER_GIFT: 6,
244
+ PREMIUM_PURCHASE: 7,
245
+ APPLICATION_SUBSCRIPTION: 8
246
+ }
247
+ },
248
+
249
+ Event: {
250
+ # https://discord.com/developers/docs/events/webhook-events#webhook-types
251
+ WebhookTypes: {
252
+ PING: 0,
253
+ EVENT: 1
254
+ }
255
+ },
256
+
257
+ Guild: {
258
+ # https://discord.com/developers/docs/resources/guild#guild-object-default-message-notification-level
259
+ DefaultMessageNotificationLevels: {
260
+ ALL_MESSAGES: 0,
261
+ ONLY_MENTIONS: 1
262
+ },
263
+
264
+ # https://discord.com/developers/docs/resources/guild#guild-object-explicit-content-filter-level
265
+ ExplicitContentFilterLevels: {
266
+ DISABLED: 0,
267
+ MEMBERS_WITHOUT_ROLES: 1,
268
+ ALL_MEMBERS: 2
269
+ },
270
+
271
+ # https://discord.com/developers/docs/resources/guild#integration-object-integration-expire-behaviors
272
+ IntegrationExpireBehaviors: {
273
+ REMOVE_ROLE: 0,
274
+ KICK: 1
275
+ },
276
+
277
+ # https://discord.com/developers/docs/resources/guild#guild-member-object-guild-member-flags
278
+ MemberFlags: {
279
+ DID_REJOIN: 1 << 0,
280
+ COMPLETED_ONBOARDING: 1 << 1,
281
+ BYPASSES_VERIFICATION: 1 << 2,
282
+ STARTED_ONBOARDING: 1 << 3,
283
+ IS_GUEST: 1 << 4,
284
+ STARTED_HOME_ACTIONS: 1 << 5,
285
+ COMPLETED_HOME_ACTIONS: 1 << 6,
286
+ AUTOMOD_QUARANTINED_USERNAME: 1 << 7,
287
+ DM_SETTINGS_UPSELL_ACKNOWLEDGED: 1 << 9
288
+ },
289
+
290
+ # https://discord.com/developers/docs/resources/guild#guild-object-mfa-level
291
+ MFALevels: {
292
+ NONE: 0,
293
+ ELEVATED: 1
294
+ },
295
+
296
+ # https://discord.com/developers/docs/resources/guild#guild-object-guild-nsfw-level
297
+ NSFWLevels: {
298
+ DEFAULT: 0,
299
+ EXPLICIT: 1,
300
+ SAFE: 2,
301
+ AGE_RESTRICTED: 3
302
+ },
303
+
304
+ # https://discord.com/developers/docs/resources/guild#guild-onboarding-object-onboarding-mode
305
+ OnboardingModes: {
306
+ ONBOARDING_DEFAULT: 0,
307
+ ONBOARDING_ADVANCED: 1
308
+ },
309
+
310
+ # https://discord.com/developers/docs/resources/guild#guild-object-premium-tier
311
+ PremiumTiers: {
312
+ NONE: 0,
313
+ TIER_1: 1,
314
+ TIER_2: 2,
315
+ TIER_3: 3
316
+ },
317
+
318
+ # https://discord.com/developers/docs/resources/guild#guild-onboarding-object-prompt-types
319
+ PromptTypes: {
320
+ MULTIPLE_CHOICE: 0,
321
+ DROPDOWN: 1
322
+ },
323
+
324
+ # https://discord.com/developers/docs/resources/guild#guild-object-system-channel-flags
325
+ SystemChannelFlags: {
326
+ SUPPRESS_JOIN_NOTIFICATIONS: 1 << 0,
327
+ SUPPRESS_PREMIUM_SUBSCRIPTIONS: 1 << 1,
328
+ SUPPRESS_GUILD_REMINDER_NOTIFICATIONS: 1 << 2,
329
+ SUPPRESS_JOIN_NOTIFICATION_REPLIES: 1 << 3,
330
+ SUPPRESS_ROLE_SUBSCRIPTION_PURCHASE_NOTIFICATIONS: 1 << 4,
331
+ SUPPRESS_ROLE_SUBSCRIPTION_PURCHASE_NOTIFICATION_REPLIES: 1 << 5
332
+ },
333
+
334
+ # https://discord.com/developers/docs/resources/guild#guild-object-verification-level
335
+ VerficationLevels: {
336
+ NONE: 0,
337
+ LOW: 1,
338
+ MEDIUM: 2,
339
+ HIGH: 3,
340
+ VERY_HIGH: 4
341
+ }
342
+ },
343
+
344
+ # https://discord.com/developers/docs/reference#message-formatting-guild-navigation-types
345
+ GuildNavigationTypes: {
346
+ CUSTOMIZE: "customize",
347
+ BROWSE: "browse",
348
+ GUIDE: "guide",
349
+ LINKED_ROLES: "linked-roles"
350
+ },
351
+
352
+ GuildScheduledEvent: {
353
+ # https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-entity-types
354
+ EntityTypes: {
355
+ STAGE_INSTANCE: 1,
356
+ VOICE: 2,
357
+ EXTERNAL: 3
358
+ },
359
+
360
+ # https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-recurrence-rule-object-guild-scheduled-event-recurrence-rule-frequency
361
+ RecurrenceRulesFrequency: {
362
+ YEARLY: 0,
363
+ MONTHLY: 1,
364
+ WEEKLY: 2,
365
+ DAILY: 3
366
+ },
367
+
368
+ # https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-recurrence-rule-object-guild-scheduled-event-recurrence-rule-month
369
+ RecurrenceRulesMonth: {
370
+ JANUARY: 1,
371
+ FEBRUARY: 2,
372
+ MARCH: 3,
373
+ APRIL: 4,
374
+ MAY: 5,
375
+ JUNE: 6,
376
+ JULY: 7,
377
+ AUGUST: 8,
378
+ SEPTEMBER: 9,
379
+ OCTOBER: 10,
380
+ NOVEMBER: 11,
381
+ DECEMBER: 12
382
+ },
383
+
384
+ # https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-recurrence-rule-object-guild-scheduled-event-recurrence-rule-weekday
385
+ RecurrenceRulesWeekday: {
386
+ MONDAY: 0,
387
+ TUESDAY: 1,
388
+ WEDNESDAY: 2,
389
+ THURSDAY: 3,
390
+ FRIDAY: 4,
391
+ SATURDAY: 5,
392
+ SUNDAY: 6
393
+ },
394
+
395
+ # https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-privacy-level
396
+ PrivacyLevels: {
397
+ GUILD_ONLY: 2
398
+ },
399
+
400
+ # https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-status
401
+ Statuses: {
402
+ SCHEDULED: 1,
403
+ ACTIVE: 2,
404
+ COMPLETED: 3,
405
+ CANCELED: 4
406
+ }
407
+ },
408
+
409
+ Interaction: {
410
+ # https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-response-object-interaction-callback-type
411
+ CallbackTypes: {
412
+ PONG: 1,
413
+ CHANNEL_MESSAGE_WITH_SOURCE: 4,
414
+ DEFERRED_CHANNEL_MESSAGE_WITH_SOURCE: 5,
415
+ DEFERRED_UPDATE_MESSAGE: 6,
416
+ UPDATE_MESSAGE: 7,
417
+ APPLICATION_COMMAND_AUTOCOMPLETE_RESULT: 8,
418
+ MODAL: 9,
419
+ PREMIUM_REQUIRED: 10,
420
+ LAUNCH_ACTIVITY: 12
421
+ },
422
+
423
+ # https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-context-types
424
+ ContextTypes: {
425
+ GUILD: 0,
426
+ BOT_DM: 1,
427
+ PRIVATE_CHANNEL: 2
428
+ },
429
+
430
+ # https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-type
431
+ Types: {
432
+ PING: 1,
433
+ APPLICATION_COMMAND: 2,
434
+ MESSAGE_COMPONENT: 3,
435
+ APPLICATION_COMMAND_AUTOCOMPLETE: 4,
436
+ MODAL_SUBMIT: 5
437
+ }
438
+ },
439
+
440
+ Invite: {
441
+ # https://discord.com/developers/docs/resources/invite#invite-object-invite-target-types
442
+ TargetTypes: {
443
+ STREAM: 1,
444
+ EMBEDDED_APPLICATION: 2
445
+ },
446
+
447
+ # https://discord.com/developers/docs/resources/invite#invite-object-invite-types
448
+ Types: {
449
+ GUILD: 0,
450
+ GROUP_DM: 1,
451
+ FRIEND: 2
452
+ }
453
+ },
454
+
455
+ Lobby: {
456
+ # https://discord.com/developers/docs/resources/lobby#lobby-member-object-lobby-member-flags
457
+ MemberFlags: {
458
+ CAN_LINK_LOBBY: 1 << 0
459
+ }
460
+ },
461
+
462
+ Message: {
463
+ # https://discord.com/developers/docs/resources/message#message-object-message-activity-types
464
+ ActivityTypes: {
465
+ JOIN: 1,
466
+ SPECTATE: 2,
467
+ LISTEN: 3,
468
+ JOIN_REQUEST: 5
469
+ },
470
+
471
+ # https://discord.com/developers/docs/resources/message#attachment-object-attachment-flags
472
+ AttachmentFlags: {
473
+ IS_REMIX: 1 << 2
474
+ },
475
+
476
+ # https://discord.com/developers/docs/resources/message#message-object-message-flags
477
+ Flags: {
478
+ CROSSPOSTED: 1 << 0,
479
+ IS_CROSSPOST: 1 << 1,
480
+ SUPPRESS_EMBEDS: 1 << 2,
481
+ SOURCE_MESSAGE_DELETED: 1 << 3,
482
+ URGENT: 1 << 4,
483
+ HAS_THREAD: 1 << 5,
484
+ EPHEMERAL: 1 << 6,
485
+ LOADING: 1 << 7,
486
+ FAILED_TO_MENTION_SOME_ROLES_IN_THREAD: 1 << 8,
487
+ SUPPRESS_NOTIFICATIONS: 1 << 12,
488
+ IS_VOICE_MESSAGE: 1 << 13,
489
+ HAS_SNAPSHOT: 1 << 14,
490
+ IS_COMPONENTS_V2: 1 << 15
491
+ },
492
+
493
+ # https://discord.com/developers/docs/resources/message#get-reactions-reaction-types
494
+ ReactionTypes: {
495
+ NORMAL: 0,
496
+ BURST: 1
497
+ },
498
+
499
+ # https://discord.com/developers/docs/resources/message#message-object-message-types
500
+ Types: {
501
+ DEFAULT: 0,
502
+ RECIPIENT_ADD: 1,
503
+ RECIPIENT_REMOVE: 2,
504
+ CALL: 3,
505
+ CHANNEL_NAME_CHANGE: 4,
506
+ CHANNEL_ICON_CHANGE: 5,
507
+ CHANNEL_PINNED_MESSAGE: 6,
508
+ USER_JOIN: 7,
509
+ GUILD_BOOST: 8,
510
+ GUILD_BOOST_TIER_1: 9,
511
+ GUILD_BOOST_TIER_2: 10,
512
+ GUILD_BOOST_TIER_3: 11,
513
+ CHANNEL_FOLLOW_ADD: 12,
514
+ GUILD_DISCOVERY_DISQUALIFIED: 14,
515
+ GUILD_DISCOVERY_REQUALIFIED: 15,
516
+ GUILD_DISCOVERY_GRACE_PERIOD_INITIAL_WARNING: 16,
517
+ GUILD_DISCOVERY_GRACE_PERIOD_FINAL_WARNING: 17,
518
+ THREAD_CREATED: 18,
519
+ REPLY: 19,
520
+ CHAT_INPUT_COMMAND: 20,
521
+ THREAD_STARTER_MESSAGE: 21,
522
+ GUILD_INVITE_REMINDER: 22,
523
+ CONTEXT_MENU_COMMAND: 23,
524
+ AUTO_MODERATION_ACTION: 24,
525
+ ROLE_SUBSCRIPTION_PURCHASE: 25,
526
+ INTERACTION_PREMIUM_UPSELL: 26,
527
+ STAGE_START: 27,
528
+ STAGE_END: 28,
529
+ STAGE_SPEAKER: 29,
530
+ STAGE_TOPIC: 31,
531
+ GUILD_APPLICATION_PREMIUM_SUBSCRIPTION: 32,
532
+ GUILD_INCIDENT_ALERT_MODE_ENABLED: 36,
533
+ GUILD_INCIDENT_ALERT_MODE_DISABLED: 37,
534
+ GUILD_INCIDENT_REPORT_RAID: 38,
535
+ GUILD_INCIDENT_REPORT_FALSE_ALARM: 39,
536
+ PURCHASE_NOTIFICATION: 44,
537
+ POLL_RESULT: 46
538
+ }
539
+ },
540
+
541
+ MessageComponent: {
542
+ # https://discord.com/developers/docs/components/reference#button-button-styles
543
+ ButtonStyles: {
544
+ PRIMARY: 1,
545
+ SECONDARY: 2,
546
+ SUCCESS: 3,
547
+ DANGER: 4,
548
+ LINK: 5,
549
+ PREMIUM: 6
550
+ },
551
+
552
+ # https://discord.com/developers/docs/components/reference#text-input-text-input-styles
553
+ TextInputStyles: {
554
+ SHORT: 1,
555
+ PARAGRAPH: 2
556
+ },
557
+
558
+ # https://discord.com/developers/docs/components/reference#component-object-component-types
559
+ Types: {
560
+ ACTION_ROW: 1,
561
+ BUTTON: 2,
562
+ STRING_SELECT: 3,
563
+ TEXT_INPUT: 4,
564
+ USER_SELECT: 5,
565
+ ROLE_SELECT: 6,
566
+ MENTIONABLE_SELECT: 7,
567
+ CHANNEL_SELECT: 8,
568
+ SECTION: 9,
569
+ TEXT_DISPLAY: 10,
570
+ THUMBNAIL: 11,
571
+ MEDIA_GALLERY: 12,
572
+ FILE: 13,
573
+ SEPARATOR: 14,
574
+ CONTAINER: 17
575
+ }
576
+ },
577
+
578
+ Poll: {
579
+ # https://discord.com/developers/docs/resources/poll#layout-type
580
+ LayoutTypes: {
581
+ DEFAULT: 1
582
+ }
583
+ },
584
+
585
+ RPC: {
586
+ # https://discord.com/developers/docs/topics/rpc#getvoicesettings-key-types
587
+ KeyTypes: {
588
+ KEYBOARD_KEY: 0,
589
+ MOUSE_BUTTON: 1,
590
+ KEYBOARD_MODIFIER_KEY: 2,
591
+ GAMEPAD_BUTTON: 3
592
+ }
593
+ },
594
+
595
+ SKU: {
596
+ # https://discord.com/developers/docs/resources/sku#sku-object-sku-flags
597
+ Flags: {
598
+ AVAILABLE: 1 << 2,
599
+ GUILD_SUBSCRIPTION: 1 << 7,
600
+ USER_SUBSCRIPTION: 1 << 8
601
+ },
602
+
603
+ # https://discord.com/developers/docs/resources/sku#sku-object-sku-types
604
+ Types: {
605
+ DURABLE: 2,
606
+ CONSUMABLE: 3,
607
+ SUBSCRIPTION: 5,
608
+ SUBSCRIPTION_GROUP: 6
609
+ }
610
+ },
611
+
612
+ StageInstance: {
613
+ # https://discord.com/developers/docs/resources/stage-instance#stage-instance-object-privacy-level
614
+ PrivacyLevels: {
615
+ PUBLIC: 1,
616
+ GUILD_ONLY: 2
617
+ }
618
+ },
619
+
620
+ Sticker: {
621
+ # https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-format-types
622
+ FormatTypes: {
623
+ PNG: 1,
624
+ APNG: 2,
625
+ LOTTIE: 3,
626
+ GIF: 4
627
+ },
628
+
629
+ # https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-types
630
+ Types: {
631
+ STANDARD: 1,
632
+ GUILD: 2
633
+ }
634
+ },
635
+
636
+ Subscription: {
637
+ # https://discord.com/developers/docs/resources/subscription#subscription-statuses
638
+ Statuses: {
639
+ ACTIVE: 0,
640
+ ENDING: 1,
641
+ INACTIVE: 2
642
+ }
643
+ },
644
+
645
+ Team: {
646
+ # https://discord.com/developers/docs/topics/teams#data-models-membership-state-enum
647
+ MembershipStateEnums: {
648
+ INVITED: 1,
649
+ ACCEPTED: 2
650
+ }
651
+ },
652
+
653
+ # https://discord.com/developers/docs/reference#message-formatting-timestamp-styles
654
+ TimestampStyles: {
655
+ SHORT_TIME: "t",
656
+ LONG_TIME: "T",
657
+ SHORT_DATE: "d",
658
+ LONG_DATE: "D",
659
+ SHORT_DATETIME: "f",
660
+ LONG_DATETIME: "F",
661
+ RELATIVE_TIME: "R"
662
+ },
663
+
664
+ User: {
665
+ # https://discord.com/developers/docs/resources/user#user-object-user-flags
666
+ Flags: {
667
+ STAFF: 1 << 0,
668
+ PARTNER: 1 << 1,
669
+ HYPESQUAD: 1 << 2,
670
+ BUG_HUNTER_LEVEL_1: 1 << 3,
671
+ HYPESQUAD_ONLINE_HOUSE_1: 1 << 6,
672
+ HYPESQUAD_ONLINE_HOUSE_2: 1 << 7,
673
+ HYPESQUAD_ONLINE_HOUSE_3: 1 << 8,
674
+ PREMIUM_EARLY_SUPPORTER: 1 << 9,
675
+ TEAM_PSEUDO_USER: 1 << 10,
676
+ BUG_HUNTER_LEVEL_2: 1 << 14,
677
+ VERIFIED_BOT: 1 << 16,
678
+ VERIFIED_DEVELOPER: 1 << 17,
679
+ CERTIFIED_MODERATOR: 1 << 18,
680
+ BOT_HTTP_INTERACTIONS: 1 << 19,
681
+ ACTIVE_DEVELOPER: 1 << 22
682
+ },
683
+
684
+ # https://discord.com/developers/docs/resources/user#user-object-premium-types
685
+ PremiumTypes: {
686
+ NONE: 0,
687
+ NITRO_CLASSIC: 1,
688
+ NITRO: 2,
689
+ NITRO_BASIC: 3
690
+ },
691
+
692
+ # https://discord.com/developers/docs/resources/user#connection-object-visibility-types
693
+ VisibilityTypes: {
694
+ NONE: 0,
695
+ EVERYONE: 1
696
+ }
697
+ },
698
+
699
+ Voice: {
700
+ # https://discord.com/developers/docs/topics/voice-connections#speaking
701
+ SpeakingFlags: {
702
+ MICROPHONE: 1 << 0,
703
+ SOUNDSHARE: 1 << 1,
704
+ PRIORITY: 1 << 2
705
+ }
706
+ },
707
+
708
+ Webhook: {
709
+ # https://discord.com/developers/docs/resources/webhook#webhook-object-webhook-types
710
+ Types: {
711
+ INCOMING: 1,
712
+ CHANNEL_FOLLOWER: 2,
713
+ APPLICATION: 3
714
+ }
715
+ }
716
+ }
717
+
718
+ ##
719
+ # Get the data structure for Discord encoded types, modes, levels, etc. This
720
+ # data structure exists for your convenience to help add meaning to
721
+ # information encoded within integers and bitmasks spread across Discord's
722
+ # web API.
723
+ #
724
+ # @return [Hash]
725
+ #
726
+ # @example
727
+ # aco_types = LibDiscord.maps[:ApplicationCommandOptionTypes]
728
+ # aco_types[:CHANNEL] # => 7
729
+ def self.maps = MAPS
730
+ end