discorb 0.19.0 → 0.20.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 (88) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build_version.yml +2 -2
  3. data/.rubocop.yml +12 -75
  4. data/Changelog.md +10 -0
  5. data/Rakefile +482 -454
  6. data/lib/discorb/allowed_mentions.rb +68 -72
  7. data/lib/discorb/app_command/command.rb +466 -398
  8. data/lib/discorb/app_command/common.rb +65 -25
  9. data/lib/discorb/app_command/handler.rb +304 -266
  10. data/lib/discorb/app_command.rb +5 -5
  11. data/lib/discorb/application.rb +198 -197
  12. data/lib/discorb/asset.rb +101 -101
  13. data/lib/discorb/attachment.rb +134 -119
  14. data/lib/discorb/audit_logs.rb +412 -385
  15. data/lib/discorb/automod.rb +279 -269
  16. data/lib/discorb/channel/base.rb +107 -108
  17. data/lib/discorb/channel/category.rb +32 -32
  18. data/lib/discorb/channel/container.rb +44 -44
  19. data/lib/discorb/channel/dm.rb +26 -28
  20. data/lib/discorb/channel/guild.rb +311 -246
  21. data/lib/discorb/channel/stage.rb +156 -140
  22. data/lib/discorb/channel/text.rb +430 -336
  23. data/lib/discorb/channel/thread.rb +374 -325
  24. data/lib/discorb/channel/voice.rb +85 -79
  25. data/lib/discorb/channel.rb +5 -5
  26. data/lib/discorb/client.rb +635 -621
  27. data/lib/discorb/color.rb +178 -182
  28. data/lib/discorb/common.rb +168 -164
  29. data/lib/discorb/components/button.rb +107 -106
  30. data/lib/discorb/components/select_menu.rb +157 -145
  31. data/lib/discorb/components/text_input.rb +103 -106
  32. data/lib/discorb/components.rb +68 -66
  33. data/lib/discorb/dictionary.rb +135 -135
  34. data/lib/discorb/embed.rb +404 -398
  35. data/lib/discorb/emoji.rb +309 -302
  36. data/lib/discorb/emoji_table.rb +16099 -8857
  37. data/lib/discorb/error.rb +131 -131
  38. data/lib/discorb/event.rb +360 -314
  39. data/lib/discorb/event_handler.rb +39 -39
  40. data/lib/discorb/exe/about.rb +17 -17
  41. data/lib/discorb/exe/irb.rb +72 -67
  42. data/lib/discorb/exe/new.rb +323 -315
  43. data/lib/discorb/exe/run.rb +69 -68
  44. data/lib/discorb/exe/setup.rb +57 -55
  45. data/lib/discorb/exe/show.rb +12 -12
  46. data/lib/discorb/extend.rb +25 -45
  47. data/lib/discorb/extension.rb +89 -83
  48. data/lib/discorb/flag.rb +126 -128
  49. data/lib/discorb/gateway.rb +984 -804
  50. data/lib/discorb/gateway_events.rb +670 -638
  51. data/lib/discorb/gateway_requests.rb +45 -48
  52. data/lib/discorb/guild.rb +2115 -1626
  53. data/lib/discorb/guild_template.rb +280 -241
  54. data/lib/discorb/http.rb +247 -232
  55. data/lib/discorb/image.rb +42 -42
  56. data/lib/discorb/integration.rb +169 -161
  57. data/lib/discorb/intents.rb +161 -163
  58. data/lib/discorb/interaction/autocomplete.rb +76 -62
  59. data/lib/discorb/interaction/command.rb +279 -224
  60. data/lib/discorb/interaction/components.rb +114 -104
  61. data/lib/discorb/interaction/modal.rb +36 -32
  62. data/lib/discorb/interaction/response.rb +379 -336
  63. data/lib/discorb/interaction/root.rb +271 -257
  64. data/lib/discorb/interaction.rb +5 -5
  65. data/lib/discorb/invite.rb +154 -153
  66. data/lib/discorb/member.rb +344 -311
  67. data/lib/discorb/message.rb +615 -544
  68. data/lib/discorb/message_meta.rb +197 -186
  69. data/lib/discorb/modules.rb +371 -290
  70. data/lib/discorb/permission.rb +305 -291
  71. data/lib/discorb/presence.rb +352 -346
  72. data/lib/discorb/rate_limit.rb +81 -76
  73. data/lib/discorb/reaction.rb +55 -54
  74. data/lib/discorb/role.rb +272 -240
  75. data/lib/discorb/shard.rb +76 -74
  76. data/lib/discorb/sticker.rb +193 -171
  77. data/lib/discorb/user.rb +205 -188
  78. data/lib/discorb/utils/colored_puts.rb +16 -16
  79. data/lib/discorb/utils.rb +12 -16
  80. data/lib/discorb/voice_state.rb +305 -281
  81. data/lib/discorb/webhook.rb +537 -507
  82. data/lib/discorb.rb +62 -56
  83. data/sig/discorb/application.rbs +2 -0
  84. data/sig/discorb/automod.rbs +10 -1
  85. data/sig/discorb/guild.rbs +2 -0
  86. data/sig/discorb/message.rbs +2 -0
  87. data/sig/discorb/user.rbs +22 -20
  88. metadata +2 -2
@@ -1,72 +1,68 @@
1
- # frozen_string_literal: true
2
-
3
- module Discorb
4
- #
5
- # Represents a allowed mentions in a message.
6
- #
7
- class AllowedMentions
8
- # @return [Boolean] Whether to allow @everyone or @here.
9
- attr_accessor :everyone
10
- # @return [Boolean, Array<Discorb::Role>] The roles to allow, or false to disable.
11
- attr_accessor :roles
12
- # @return [Boolean, Array<Discorb::User>] The users to allow, or false to disable.
13
- attr_accessor :users
14
- # @return [Boolean] Whether to ping the user that sent the message to reply.
15
- attr_accessor :replied_user
16
-
17
- #
18
- # Initializes a new instance of the AllowedMentions class.
19
- #
20
- # @param [Boolean] everyone Whether to allow @everyone or @here.
21
- # @param [Boolean, Array<Discorb::Role>] roles The roles to allow, or false to disable.
22
- # @param [Boolean, Array<Discorb::User>] users The users to allow, or false to disable.
23
- # @param [Boolean] replied_user Whether to ping the user that sent the message to reply.
24
- #
25
- def initialize(everyone: nil, roles: nil, users: nil, replied_user: nil)
26
- @everyone = !everyone.nil?
27
- @roles = roles
28
- @users = users
29
- @replied_user = replied_user
30
- end
31
-
32
- def inspect
33
- "#<#{self.class} @everyone=#{@everyone} @roles=#{@roles} @users=#{@users} @replied_user=#{@replied_user}>"
34
- end
35
-
36
- #
37
- # Converts the object to a hash.
38
- # @private
39
- #
40
- # @param [Discorb::AllowedMentions, nil] other The object to merge.
41
- #
42
- # @return [Hash] The hash.
43
- #
44
- def to_hash(other = nil)
45
- payload = {
46
- parse: %w[everyone roles users],
47
- }
48
- replied_user = nil_merge(@replied_user, other&.replied_user)
49
- everyone = nil_merge(@everyone, other&.everyone)
50
- roles = nil_merge(@roles, other&.roles)
51
- users = nil_merge(@users, other&.users)
52
- payload[:replied_user] = replied_user
53
- payload[:parse].delete("everyone") if everyone == false
54
- if (roles == false) || roles.is_a?(Array)
55
- payload[:roles] = roles.map { |u| u.id.to_s } if roles.is_a? Array
56
- payload[:parse].delete("roles")
57
- end
58
- if (users == false) || users.is_a?(Array)
59
- payload[:users] = users.map { |u| u.id.to_s } if users.is_a? Array
60
- payload[:parse].delete("users")
61
- end
62
- payload
63
- end
64
-
65
- def nil_merge(*args)
66
- args.each do |a|
67
- return a unless a.nil?
68
- end
69
- nil
70
- end
71
- end
72
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Discorb
4
+ #
5
+ # Represents a allowed mentions in a message.
6
+ #
7
+ class AllowedMentions
8
+ # @return [Boolean] Whether to allow @everyone or @here.
9
+ attr_accessor :everyone
10
+ # @return [Boolean, Array<Discorb::Role>] The roles to allow, or false to disable.
11
+ attr_accessor :roles
12
+ # @return [Boolean, Array<Discorb::User>] The users to allow, or false to disable.
13
+ attr_accessor :users
14
+ # @return [Boolean] Whether to ping the user that sent the message to reply.
15
+ attr_accessor :replied_user
16
+
17
+ #
18
+ # Initializes a new instance of the AllowedMentions class.
19
+ #
20
+ # @param [Boolean] everyone Whether to allow @everyone or @here.
21
+ # @param [Boolean, Array<Discorb::Role>] roles The roles to allow, or false to disable.
22
+ # @param [Boolean, Array<Discorb::User>] users The users to allow, or false to disable.
23
+ # @param [Boolean] replied_user Whether to ping the user that sent the message to reply.
24
+ #
25
+ def initialize(everyone: nil, roles: nil, users: nil, replied_user: nil)
26
+ @everyone = !everyone.nil?
27
+ @roles = roles
28
+ @users = users
29
+ @replied_user = replied_user
30
+ end
31
+
32
+ def inspect
33
+ "#<#{self.class} @everyone=#{@everyone} @roles=#{@roles} @users=#{@users} @replied_user=#{@replied_user}>"
34
+ end
35
+
36
+ #
37
+ # Converts the object to a hash.
38
+ # @private
39
+ #
40
+ # @param [Discorb::AllowedMentions, nil] other The object to merge.
41
+ #
42
+ # @return [Hash] The hash.
43
+ #
44
+ def to_hash(other = nil)
45
+ payload = { parse: %w[everyone roles users] }
46
+ replied_user = nil_merge(@replied_user, other&.replied_user)
47
+ everyone = nil_merge(@everyone, other&.everyone)
48
+ roles = nil_merge(@roles, other&.roles)
49
+ users = nil_merge(@users, other&.users)
50
+ payload[:replied_user] = replied_user
51
+ payload[:parse].delete("everyone") if everyone == false
52
+ if (roles == false) || roles.is_a?(Array)
53
+ payload[:roles] = roles.map { |u| u.id.to_s } if roles.is_a? Array
54
+ payload[:parse].delete("roles")
55
+ end
56
+ if (users == false) || users.is_a?(Array)
57
+ payload[:users] = users.map { |u| u.id.to_s } if users.is_a? Array
58
+ payload[:parse].delete("users")
59
+ end
60
+ payload
61
+ end
62
+
63
+ def nil_merge(*args)
64
+ args.each { |a| return a unless a.nil? }
65
+ nil
66
+ end
67
+ end
68
+ end