lib_discord 0.1.2 → 1.0.0

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