discorb 0.18.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 (149) 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 +25 -0
  5. data/Gemfile +4 -4
  6. data/README.md +2 -1
  7. data/Rakefile +482 -459
  8. data/Steepfile +8 -6
  9. data/docs/application_command.md +1 -0
  10. data/docs/events.md +2 -2
  11. data/docs/voice_events.md +6 -6
  12. data/lib/discorb/allowed_mentions.rb +68 -72
  13. data/lib/discorb/app_command/command.rb +466 -394
  14. data/lib/discorb/app_command/common.rb +65 -25
  15. data/lib/discorb/app_command/handler.rb +304 -265
  16. data/lib/discorb/app_command.rb +5 -5
  17. data/lib/discorb/application.rb +198 -197
  18. data/lib/discorb/asset.rb +101 -101
  19. data/lib/discorb/attachment.rb +134 -119
  20. data/lib/discorb/audit_logs.rb +412 -385
  21. data/lib/discorb/automod.rb +279 -269
  22. data/lib/discorb/channel/base.rb +107 -108
  23. data/lib/discorb/channel/category.rb +32 -32
  24. data/lib/discorb/channel/container.rb +44 -44
  25. data/lib/discorb/channel/dm.rb +26 -28
  26. data/lib/discorb/channel/guild.rb +311 -246
  27. data/lib/discorb/channel/stage.rb +156 -140
  28. data/lib/discorb/channel/text.rb +430 -336
  29. data/lib/discorb/channel/thread.rb +374 -325
  30. data/lib/discorb/channel/voice.rb +85 -79
  31. data/lib/discorb/channel.rb +5 -5
  32. data/lib/discorb/client.rb +635 -623
  33. data/lib/discorb/color.rb +178 -182
  34. data/lib/discorb/common.rb +168 -164
  35. data/lib/discorb/components/button.rb +107 -106
  36. data/lib/discorb/components/select_menu.rb +157 -145
  37. data/lib/discorb/components/text_input.rb +103 -106
  38. data/lib/discorb/components.rb +68 -66
  39. data/lib/discorb/dictionary.rb +135 -135
  40. data/lib/discorb/embed.rb +404 -398
  41. data/lib/discorb/emoji.rb +309 -302
  42. data/lib/discorb/emoji_table.rb +16099 -8857
  43. data/lib/discorb/error.rb +131 -131
  44. data/lib/discorb/event.rb +360 -314
  45. data/lib/discorb/event_handler.rb +39 -39
  46. data/lib/discorb/exe/about.rb +17 -17
  47. data/lib/discorb/exe/irb.rb +72 -67
  48. data/lib/discorb/exe/new.rb +323 -315
  49. data/lib/discorb/exe/run.rb +69 -68
  50. data/lib/discorb/exe/setup.rb +57 -55
  51. data/lib/discorb/exe/show.rb +12 -12
  52. data/lib/discorb/extend.rb +25 -45
  53. data/lib/discorb/extension.rb +89 -83
  54. data/lib/discorb/flag.rb +126 -128
  55. data/lib/discorb/gateway.rb +984 -794
  56. data/lib/discorb/gateway_events.rb +670 -638
  57. data/lib/discorb/gateway_requests.rb +45 -48
  58. data/lib/discorb/guild.rb +2115 -1626
  59. data/lib/discorb/guild_template.rb +280 -241
  60. data/lib/discorb/http.rb +247 -232
  61. data/lib/discorb/image.rb +42 -42
  62. data/lib/discorb/integration.rb +169 -161
  63. data/lib/discorb/intents.rb +161 -163
  64. data/lib/discorb/interaction/autocomplete.rb +76 -62
  65. data/lib/discorb/interaction/command.rb +279 -224
  66. data/lib/discorb/interaction/components.rb +114 -104
  67. data/lib/discorb/interaction/modal.rb +36 -32
  68. data/lib/discorb/interaction/response.rb +379 -330
  69. data/lib/discorb/interaction/root.rb +271 -118
  70. data/lib/discorb/interaction.rb +5 -5
  71. data/lib/discorb/invite.rb +154 -153
  72. data/lib/discorb/member.rb +344 -311
  73. data/lib/discorb/message.rb +615 -544
  74. data/lib/discorb/message_meta.rb +197 -186
  75. data/lib/discorb/modules.rb +371 -290
  76. data/lib/discorb/permission.rb +305 -289
  77. data/lib/discorb/presence.rb +352 -346
  78. data/lib/discorb/rate_limit.rb +81 -76
  79. data/lib/discorb/reaction.rb +55 -54
  80. data/lib/discorb/role.rb +272 -240
  81. data/lib/discorb/shard.rb +76 -74
  82. data/lib/discorb/sticker.rb +193 -171
  83. data/lib/discorb/user.rb +205 -188
  84. data/lib/discorb/utils/colored_puts.rb +16 -16
  85. data/lib/discorb/utils.rb +12 -16
  86. data/lib/discorb/voice_state.rb +305 -281
  87. data/lib/discorb/webhook.rb +537 -507
  88. data/lib/discorb.rb +62 -56
  89. data/sig/discorb/activity.rbs +1 -0
  90. data/sig/discorb/allowed_mentions.rbs +1 -0
  91. data/sig/discorb/app_command/base.rbs +7 -1
  92. data/sig/discorb/application.rbs +6 -0
  93. data/sig/discorb/asset.rbs +2 -0
  94. data/sig/discorb/attachment.rbs +8 -0
  95. data/sig/discorb/audit_log.rbs +7 -0
  96. data/sig/discorb/automod.rbs +32 -6
  97. data/sig/discorb/avatar.rbs +1 -0
  98. data/sig/discorb/channel/base.rbs +8 -1
  99. data/sig/discorb/channel/category.rbs +1 -0
  100. data/sig/discorb/channel/container.rbs +4 -0
  101. data/sig/discorb/channel/stage.rbs +4 -0
  102. data/sig/discorb/channel/text.rbs +2 -2
  103. data/sig/discorb/channel/thread.rbs +11 -0
  104. data/sig/discorb/channel/voice.rbs +2 -0
  105. data/sig/discorb/client.rbs +21 -20
  106. data/sig/discorb/color.rbs +6 -0
  107. data/sig/discorb/component/base.rbs +1 -0
  108. data/sig/discorb/component/button.rbs +2 -0
  109. data/sig/discorb/component/select_menu.rbs +4 -0
  110. data/sig/discorb/component/text_input.rbs +1 -0
  111. data/sig/discorb/custom_emoji.rbs +5 -1
  112. data/sig/discorb/dictionary.rbs +2 -0
  113. data/sig/discorb/discord_model.rbs +2 -0
  114. data/sig/discorb/embed.rbs +7 -0
  115. data/sig/discorb/emoji.rbs +1 -0
  116. data/sig/discorb/event_handler.rbs +2 -1
  117. data/sig/discorb/extension.rbs +13 -12
  118. data/sig/discorb/flag.rbs +2 -0
  119. data/sig/discorb/gateway.rbs +5 -0
  120. data/sig/discorb/guild.rbs +8 -4
  121. data/sig/discorb/guild_template.rbs +1 -1
  122. data/sig/discorb/http.rbs +4 -1
  123. data/sig/discorb/image.rbs +2 -0
  124. data/sig/discorb/integration.rbs +1 -1
  125. data/sig/discorb/intents.rbs +4 -3
  126. data/sig/discorb/interaction/base.rbs +36 -0
  127. data/sig/discorb/interaction/message_component.rbs +1 -2
  128. data/sig/discorb/interaction/modal.rbs +1 -2
  129. data/sig/discorb/interaction/responder.rbs +49 -49
  130. data/sig/discorb/invite.rbs +1 -1
  131. data/sig/discorb/member.rbs +2 -0
  132. data/sig/discorb/message.rbs +8 -1
  133. data/sig/discorb/messageable.rbs +1 -4
  134. data/sig/discorb/partial_emoji.rbs +3 -0
  135. data/sig/discorb/permissions.rbs +7 -0
  136. data/sig/discorb/presence.rbs +2 -0
  137. data/sig/discorb/reaction.rbs +5 -1
  138. data/sig/discorb/role.rbs +7 -1
  139. data/sig/discorb/scheduled_event.rbs +2 -1
  140. data/sig/discorb/shard.rbs +2 -1
  141. data/sig/discorb/snowflake.rbs +2 -0
  142. data/sig/discorb/stage_instance.rbs +9 -3
  143. data/sig/discorb/sticker.rbs +1 -1
  144. data/sig/discorb/unicode_emoji.rbs +4 -0
  145. data/sig/discorb/user.rbs +24 -20
  146. data/sig/discorb/webhook.rbs +17 -6
  147. data/sig/discorb/welcome_screen.rbs +1 -0
  148. data/sig/override.rbs +2 -0
  149. metadata +3 -3
data/lib/discorb.rb CHANGED
@@ -1,56 +1,62 @@
1
- # frozen_string_literal: true
2
-
3
- # A new wrapper for the Discorb API.
4
- #
5
- # @author sevenc-nanashi
6
- module Discorb
7
- #
8
- # Method to define a macro for YARD.
9
- # @private
10
- #
11
- # @!macro [new] async
12
- # @note This is an asynchronous method, it will return a `Async::Task` object.
13
- # Use `Async::Task#wait` to get the result.
14
- #
15
- # @!macro [new] client_cache
16
- # @note This method returns an object from client cache. it will return `nil` if the object is not in cache.
17
- # @return [nil] The object wasn't cached.
18
- #
19
- # @!macro members_intent
20
- # @note You must enable `GUILD_MEMBERS` intent to use this method.
21
- #
22
- # @!macro edit
23
- # @note The arguments of this method are defaultly set to `Discorb::Unset`.
24
- # Specify value to set the value, if not don't specify or specify `Discorb::Unset`.
25
- #
26
- # @!macro http
27
- # @note This method calls HTTP request.
28
- # @raise [Discorb::HTTPError] HTTP request failed.
29
- #
30
- def macro
31
- puts "Wow, You found the easter egg!\n"
32
- red = "\e[31m"
33
- reset = "\e[m"
34
- puts <<~"EASTEREGG"
35
- . #{red} #{reset}
36
- | #{red} | #{reset}
37
- __| | __ __ _ #{red} _ |__ #{reset}
38
- / | | (__ / / \\ #{red}|/ | \\ #{reset}
39
- \\__| | __) \\__ \\_/ #{red}| |__/ #{reset}
40
-
41
- Thank you for using this library!
42
- EASTEREGG
43
- end
44
- end
45
-
46
- require_order = %w[common flag dictionary error rate_limit http intents emoji_table modules] +
47
- %w[channel/container message_meta allowed_mentions] +
48
- %w[user member guild emoji channel embed message] +
49
- %w[application audit_logs color components event event_handler automod] +
50
- %w[attachment guild_template image integration interaction invite permission] +
51
- %w[presence reaction role sticker utils voice_state webhook] +
52
- %w[gateway_requests gateway_events gateway app_command] +
53
- %w[asset extension shard client extend]
54
- require_order.each do |name|
55
- require_relative "discorb/#{name}.rb"
56
- end
1
+ # frozen_string_literal: true
2
+
3
+ # A new wrapper for the Discorb API.
4
+ #
5
+ # @author sevenc-nanashi
6
+ module Discorb
7
+ #
8
+ # Method to define a macro for YARD.
9
+ # @private
10
+ #
11
+ # @!macro [new] async
12
+ # @note This is an asynchronous method, it will return a `Async::Task` object.
13
+ # Use `Async::Task#wait` to get the result.
14
+ #
15
+ # @!macro [new] client_cache
16
+ # @note This method returns an object from client cache. it will return `nil` if the object is not in cache.
17
+ # @return [nil] The object wasn't cached.
18
+ #
19
+ # @!macro members_intent
20
+ # @note You must enable `GUILD_MEMBERS` intent to use this method.
21
+ #
22
+ # @!macro edit
23
+ # @note The arguments of this method are defaultly set to `Discorb::Unset`.
24
+ # Specify value to set the value, if not don't specify or specify `Discorb::Unset`.
25
+ #
26
+ # @!macro http
27
+ # @note This method calls HTTP request.
28
+ # @raise [Discorb::HTTPError] HTTP request failed.
29
+ #
30
+ def macro
31
+ puts "Wow, You found the easter egg!\n"
32
+ red = "\e[31m"
33
+ reset = "\e[m"
34
+ puts <<~"EASTEREGG"
35
+ . #{red} #{reset}
36
+ | #{red} | #{reset}
37
+ __| | __ __ _ #{red} _ |__ #{reset}
38
+ / | | (__ / / \\ #{red}|/ | \\ #{reset}
39
+ \\__| | __) \\__ \\_/ #{red}| |__/ #{reset}
40
+
41
+ Thank you for using this library!
42
+ EASTEREGG
43
+ end
44
+ end
45
+
46
+ require_order =
47
+ %w[common flag dictionary error rate_limit http intents emoji_table modules] +
48
+ %w[channel/container message_meta allowed_mentions] +
49
+ %w[user member guild emoji channel embed message] +
50
+ %w[application audit_logs color components event event_handler automod] +
51
+ %w[
52
+ attachment
53
+ guild_template
54
+ image
55
+ integration
56
+ interaction
57
+ invite
58
+ permission
59
+ ] + %w[presence reaction role sticker utils voice_state webhook] +
60
+ %w[gateway_requests gateway_events gateway app_command] +
61
+ %w[asset extension shard client extend]
62
+ require_order.each { |name| require_relative "discorb/#{name}.rb" }
@@ -18,6 +18,7 @@ module Discorb
18
18
  # @return [Hash] A hash representation of the activity.
19
19
  def to_hash: -> Discorb::json
20
20
 
21
+ %a{pure}
21
22
  def inspect: -> String
22
23
  end
23
24
  end
@@ -16,6 +16,7 @@ module Discorb
16
16
  ?replied_user: bool?
17
17
  ) -> void
18
18
 
19
+ %a{pure}
19
20
  def inspect: -> String
20
21
 
21
22
  #
@@ -35,7 +35,7 @@ module Discorb
35
35
  choices: Hash[String, (String | Integer | Float)]?,
36
36
  choices_localizations: Hash[String, Hash[(Symbol | String), String]]?,
37
37
  channel_types: Array[Class]?,
38
- autocomplete: ^(Discorb::CommandInteraction) -> Hash[String, String]?,
38
+ autocomplete: (^(Discorb::CommandInteraction) -> Hash[String, String])?,
39
39
  range: Range[(Integer | Float)]?
40
40
  }
41
41
  type options = ::Hash[String, option]
@@ -83,6 +83,7 @@ module Discorb
83
83
  # @private
84
84
  #
85
85
  # @return [Hash] The hash represents the object.
86
+ %a{pure}
86
87
  def to_hash: -> Discorb::json
87
88
 
88
89
  # @return [Hash{String => String}] The name of the command.
@@ -143,6 +144,7 @@ module Discorb
143
144
  # Returns the commands name.
144
145
  #
145
146
  # @return [String] The name of the command.
147
+ %a{pure}
146
148
  def to_s: -> String
147
149
 
148
150
  #
@@ -150,6 +152,7 @@ module Discorb
150
152
  # @private
151
153
  #
152
154
  # @return [Hash] The hash represents the object.
155
+ %a{pure}
153
156
  def to_hash: -> Discorb::json
154
157
 
155
158
  # @return [Hash{String => String}] The description of the command.
@@ -219,6 +222,7 @@ module Discorb
219
222
  # Returns the command name.
220
223
  #
221
224
  # @return [String] The command name.
225
+ %a{pure}
222
226
  def to_s: -> String
223
227
 
224
228
  #
@@ -233,6 +237,7 @@ module Discorb
233
237
  # @private
234
238
  #
235
239
  # @return [Hash] The hash represents the object.
240
+ %a{pure}
236
241
  def to_hash: -> Discorb::json
237
242
 
238
243
  # @return [Array<Discorb::ApplicationCommand::Command>] The subcommands of the command.
@@ -260,6 +265,7 @@ module Discorb
260
265
  Discorb::Client client
261
266
  ) -> void
262
267
 
268
+ %a{pure}
263
269
  def to_s: -> untyped
264
270
 
265
271
  #
@@ -10,6 +10,7 @@ module Discorb
10
10
  # @param [Hash] data The data of the object.
11
11
  def initialize: (Discorb::Client client, Discorb::json data) -> void
12
12
 
13
+ %a{pure}
13
14
  def inspect: -> String
14
15
 
15
16
  # @return [Discorb::Snowflake] The application's ID.
@@ -59,6 +60,7 @@ module Discorb
59
60
  # | `1 << 17` | `:embedded` |
60
61
  # | `1 << 18` | `:gateway_message_content` |
61
62
  # | `1 << 19` | `:gateway_message_content_limited` |
63
+ # | `1 << 23` | `:application_command_badge` |
62
64
  class Flag < Discorb::Flag
63
65
  attr_accessor gateway_presence: bool
64
66
  attr_accessor gateway_presence_limited: bool
@@ -68,6 +70,7 @@ module Discorb
68
70
  attr_accessor embedded: bool
69
71
  attr_accessor gateway_message_content: bool
70
72
  attr_accessor gateway_message_content_limited: bool
73
+ attr_accessor application_command_badge: bool
71
74
  end
72
75
 
73
76
  #
@@ -85,8 +88,10 @@ module Discorb
85
88
  # The team's owner.
86
89
  #
87
90
  # @return [Discorb::Application::Team::Member] The team's owner.
91
+ %a{pure}
88
92
  def owner: -> Discorb::Application::Team::Member
89
93
 
94
+ %a{pure}
90
95
  def inspect: -> String
91
96
 
92
97
  # @return [Discorb::Snowflake] The team's ID.
@@ -111,6 +116,7 @@ module Discorb
111
116
 
112
117
  def initialize: (untyped client, untyped team, untyped data) -> void
113
118
 
119
+ %a{pure}
114
120
  def inspect: -> String
115
121
 
116
122
  def ==: (untyped other) -> untyped
@@ -19,8 +19,10 @@ module Discorb
19
19
  # @return [String] URL of the asset.
20
20
  def url: (?image_format: String?, ?size: Integer) -> String
21
21
 
22
+ %a{pure}
22
23
  def inspect: -> String
23
24
 
25
+ %a{pure}
24
26
  def endpoint: -> untyped
25
27
 
26
28
  # @return [String] The hash of asset.
@@ -24,8 +24,16 @@ module Discorb
24
24
  # @private
25
25
  def initialize_hash: (untyped data) -> untyped
26
26
 
27
+ %a{pure}
27
28
  def inspect: -> String
28
29
 
30
+ #
31
+ # Convert the attachment to hash.
32
+ #
33
+ # @return [Hash] The action hash.
34
+ %a{pure}
35
+ def to_hash: -> Discorb::json
36
+
29
37
  #
30
38
  # Creates a new file from a hash.
31
39
  # @private
@@ -7,6 +7,7 @@ module Discorb
7
7
  # @private
8
8
  def initialize: (untyped client, untyped data, untyped guild) -> void
9
9
 
10
+ %a{pure}
10
11
  def inspect: -> String
11
12
 
12
13
  #
@@ -50,6 +51,7 @@ module Discorb
50
51
  # @return [nil] The change with the given key does not exist.
51
52
  def []: (Symbol key) -> Discorb::AuditLog::Entry::Change
52
53
 
54
+ %a{pure}
53
55
  def inspect: -> String
54
56
 
55
57
  # @return [Discorb::Snowflake] The ID of the entry.
@@ -145,12 +147,14 @@ module Discorb
145
147
 
146
148
  #
147
149
  # Formats the changes into a string.
150
+ %a{pure}
148
151
  def inspect: -> String
149
152
 
150
153
  #
151
154
  # Get keys of changes.
152
155
  #
153
156
  # @return [Array<Symbol>] The keys of the changes.
157
+ %a{pure}
154
158
  def keys: -> ::Array[Symbol]
155
159
 
156
160
  #
@@ -160,6 +164,7 @@ module Discorb
160
164
  #
161
165
  # @return [Discorb::AuditLog::Entry::Change] The change with the given key.
162
166
  # @return [nil] The change with the given key does not exist.
167
+ %a{pure}
163
168
  def []: (Symbol key) -> Discorb::AuditLog::Entry::Change
164
169
 
165
170
  # Returns the value of attribute data.
@@ -183,6 +188,7 @@ module Discorb
183
188
  # Format the change into a string.
184
189
  #
185
190
  # @return [String] The string representation of the change.
191
+ %a{pure}
186
192
  def inspect: -> String
187
193
 
188
194
  #
@@ -213,6 +219,7 @@ module Discorb
213
219
  # @private
214
220
  def initialize: (untyped data) -> void
215
221
 
222
+ %a{pure}
216
223
  def inspect: -> String
217
224
 
218
225
  # @return [Discorb::Snowflake] The ID of the integration.
@@ -1,6 +1,7 @@
1
1
  module Discorb
2
2
  class AutoModRule < DiscordModel
3
- type trigger_type = :keyword | :harmful_link | :spam | :keyword_preset
3
+ type trigger_type =
4
+ :keyword | :harmful_link | :spam | :keyword_preset | :mention_spam
4
5
  type preset_type = :profanity | :sexual_content | :slurs
5
6
 
6
7
  # @return [Hash{Integer => Symbol}] The mapping of trigger types.
@@ -28,26 +29,41 @@ module Discorb
28
29
  # @return [Array<Discorb::AutoModRule::Action>] The actions of the rule.
29
30
  attr_reader actions: Array[Discorb::AutoModRule::Action]
30
31
 
32
+ # @return [Array<String>] Substrings which will be exempt from triggering the preset trigger type.
33
+ # @note This is only available if the trigger type is `:keyword_preset`.
34
+ attr_reader allow_list: Array[String]?
35
+
31
36
  # @return [Array<String>] The keywords that the rule is triggered by.
32
37
  # @note This is only available if the trigger type is `:keyword`.
33
38
  attr_reader keyword_filter: Array[String]?
34
39
 
40
+ # @return [Integer] Total number of mentions allowed per message.
41
+ # @note This is only available if the trigger type is `:mention_spam`.
42
+ attr_reader mention_total_limit: Integer?
43
+
35
44
  # @return [Symbol] Returns the type of the preset.
36
45
  # @note This is only available if the trigger type is `:keyword_preset`.
46
+ %a{pure}
37
47
  def preset_type: -> preset_type
38
48
 
39
49
  # @return [Symbol] Returns the type of the trigger.
50
+ %a{pure}
40
51
  def trigger_type: -> trigger_type
41
52
 
42
53
  # @return [Symbol] Returns the type of the event.
54
+ %a{pure}
43
55
  def event_type: -> :message_send
44
56
 
57
+ %a{pure}
45
58
  def creator: -> Discorb::Member
46
59
 
60
+ %a{pure}
47
61
  def guild: -> Discorb::Guild
48
62
 
63
+ %a{pure}
49
64
  def exempt_roles: -> Array[Discorb::Role]
50
65
 
66
+ %a{pure}
51
67
  def exempt_channels: -> Array[Discorb::Channel]
52
68
 
53
69
  #
@@ -76,7 +92,7 @@ module Discorb
76
92
  # @return [Async::Task<void>] The task.
77
93
  def edit: (
78
94
  ?name: String,
79
- ?event_type: :send_message,
95
+ ?event_type: :message_send,
80
96
  ?actions: Array[Discorb::AutoModRule::Action],
81
97
  ?enabled: bool,
82
98
  ?exempt_roles: Array[Discorb::Role],
@@ -92,20 +108,29 @@ module Discorb
92
108
  # @param [String] reason The reason for deleting the rule.
93
109
  #
94
110
  # @return [Async::Task<void>] The task.
95
- def delete!: (?reason: nil) -> Async::Task[void]
111
+ def delete: (?reason: nil) -> Async::Task[void]
96
112
 
97
113
  class Action < Discorb::DiscordModel
114
+ type action_type = :ban | :kick | :mute | :warn
115
+
98
116
  # @return [Hash{Integer => Symbol}] The mapping of action types.
99
117
  # @private
100
- ACTION_TYPES: Hash[Integer, Symbol]
118
+ ACTION_TYPES: Hash[Integer, action_type]
101
119
 
102
120
  # @return [Symbol] Returns the type of the action.
103
- attr_reader type: :ban | :kick | :mute | :warn
121
+ attr_reader type: action_type
104
122
 
105
123
  # @return [Integer] The duration of the timeout.
106
124
  # @note This is only available if the action type is `:timeout`.
107
125
  attr_reader duration_seconds: Integer?
108
126
 
127
+ #
128
+ # Convert the action to hash.
129
+ #
130
+ # @return [Hash] The action hash.
131
+ %a{pure}
132
+ def to_hash: -> Discorb::json
133
+
109
134
  #
110
135
  # Initialize a new action.
111
136
  #
@@ -115,13 +140,14 @@ module Discorb
115
140
  # @param [Discorb::Channel] channel The channel that the alert message is sent to.
116
141
  # This is only available if the action type is `:send_alert_message`.
117
142
  def initialize: (
118
- Symbol `type`,
143
+ action_type `type`,
119
144
  ?duration_seconds: Integer?,
120
145
  ?channel: Discorb::Channel?
121
146
  ) -> void
122
147
 
123
148
  # @return [Discorb::Channel] The channel that the alert message is sent to.
124
149
  # @note This is only available if the action type is `:send_alert_message`.
150
+ %a{pure}
125
151
  def channel: -> Discorb::Channel?
126
152
  end
127
153
  end
@@ -18,6 +18,7 @@ module Discorb
18
18
  # rubocop: disable Lint/UnusedMethodArgument
19
19
  def url: (?image_format: String?, ?size: Integer) -> String
20
20
 
21
+ %a{pure}
21
22
  def inspect: -> String
22
23
 
23
24
  # @return [false] For compatibility with {Asset}, always `false`.
@@ -16,6 +16,7 @@ module Discorb
16
16
  # @return [Boolean] True if the channel is other channel.
17
17
  def ==: (Discorb::Channel other) -> bool
18
18
 
19
+ %a{pure}
19
20
  def inspect: -> String
20
21
 
21
22
  #
@@ -36,6 +37,7 @@ module Discorb
36
37
  ?no_cache: bool
37
38
  ) -> untyped
38
39
 
40
+ %a{pure}
39
41
  def `type`: -> String
40
42
 
41
43
  #
@@ -78,14 +80,19 @@ module Discorb
78
80
  # Stringifies the channel.
79
81
  #
80
82
  # @return [String] The name of the channel with `#`.
83
+ %a{pure}
81
84
  def to_s: -> String
82
85
 
86
+ %a{pure}
83
87
  def mention: -> String
84
88
 
89
+ %a{pure}
85
90
  def parent: -> Discorb::CategoryChannel?
86
91
 
92
+ %a{pure}
87
93
  def guild: -> Discorb::Guild
88
94
 
95
+ %a{pure}
89
96
  def inspect: -> String
90
97
 
91
98
  #
@@ -95,7 +102,7 @@ module Discorb
95
102
  # @param [String] reason The reason of deleting the channel.
96
103
  #
97
104
  # @return [Async::Task<self>] The deleted channel.
98
- def delete!: (?reason: String?) -> Async::Task[self]
105
+ def delete: (?reason: String?) -> Async::Task[self]
99
106
 
100
107
  #
101
108
  # Moves the channel to another position.
@@ -4,6 +4,7 @@ module Discorb
4
4
  class CategoryChannel < Discorb::GuildChannel
5
5
  include Discorb::ChannelContainer
6
6
 
7
+ %a{pure}
7
8
  def channels: -> Array[Discorb::GuildChannel]
8
9
 
9
10
  def create_text_channel: (
@@ -6,24 +6,28 @@ module Discorb
6
6
  # Returns text channels.
7
7
  #
8
8
  # @return [Array<Discorb::TextChannel>] The text channels.
9
+ %a{pure}
9
10
  def text_channels: -> ::Array[Discorb::TextChannel]
10
11
 
11
12
  #
12
13
  # Returns voice channels.
13
14
  #
14
15
  # @return [Array<Discorb::VoiceChannel>] The voice channels.
16
+ %a{pure}
15
17
  def voice_channels: -> ::Array[Discorb::VoiceChannel]
16
18
 
17
19
  #
18
20
  # Returns news channels.
19
21
  #
20
22
  # @return [Array<Discorb::NewsChannel>] The news channels.
23
+ %a{pure}
21
24
  def news_channels: -> ::Array[Discorb::NewsChannel]
22
25
 
23
26
  #
24
27
  # Returns stage channels.
25
28
  #
26
29
  # @return [Array<Discorb::StageChannel>] The stage channels.
30
+ %a{pure}
27
31
  def stage_channels: -> ::Array[Discorb::StageChannel]
28
32
  end
29
33
  end
@@ -54,12 +54,16 @@ module Discorb
54
54
  # @return [Async::Task<nil>] If there is no current stage instance.
55
55
  def fetch_stage_instance: -> Async::Task[StageInstance]
56
56
 
57
+ %a{pure}
57
58
  def voice_states: -> Array[Discorb::VoiceState]
58
59
 
60
+ %a{pure}
59
61
  def members: -> Array[Discorb::Member]
60
62
 
63
+ %a{pure}
61
64
  def speakers: -> Array[Discorb::Member]
62
65
 
66
+ %a{pure}
63
67
  def audiences: -> Array[Discorb::Member]
64
68
 
65
69
  # @return [Integer] The bitrate of the voice channel.
@@ -34,7 +34,7 @@ module Discorb
34
34
  ?rate_limit_per_user: Integer,
35
35
  ?slowmode: Integer,
36
36
  ?default_auto_archive_duration: 60 | 1440 | 4320 | 10080,
37
- ?archive_in: Integer,
37
+ ?archive_in: 60 | 1440 | 4320 | 10080,
38
38
  ?reason: String?
39
39
  ) -> Async::Task[self]
40
40
 
@@ -66,7 +66,7 @@ module Discorb
66
66
  # @param [Boolean] force Whether to ignore the validation for message (14 days limit).
67
67
  #
68
68
  # @return [Async::Task<void>] The task.
69
- def delete_messages!:
69
+ def delete_messages:
70
70
  (*Discorb::Message messages, ?force: bool) -> Async::Task[void]
71
71
  | (*Array[Discorb::Message] messages, ?force: bool) -> Async::Task[void]
72
72
 
@@ -79,16 +79,22 @@ module Discorb
79
79
  # @note This method won't unarchive the thread. Use {#unarchive} instead.
80
80
  def unlock: (?reason: String?) -> Async::Task[self]
81
81
 
82
+ %a{pure}
82
83
  def parent: -> untyped
83
84
 
85
+ %a{pure}
84
86
  def me: -> untyped
85
87
 
88
+ %a{pure}
86
89
  def joined?: -> bool
87
90
 
91
+ %a{pure}
88
92
  def guild: -> untyped
89
93
 
94
+ %a{pure}
90
95
  def owner: -> untyped
91
96
 
97
+ %a{pure}
92
98
  def inspect: -> String
93
99
 
94
100
  #
@@ -168,14 +174,19 @@ module Discorb
168
174
  _ToS guild_id
169
175
  ) -> void
170
176
 
177
+ %a{pure}
171
178
  def thread: -> Discorb::ThreadChannel
172
179
 
180
+ %a{pure}
173
181
  def member: -> Discorb::Member
174
182
 
183
+ %a{pure}
175
184
  def id: -> Discorb::Snowflake
176
185
 
186
+ %a{pure}
177
187
  def user: -> Discorb::User
178
188
 
189
+ %a{pure}
179
190
  def inspect: -> String
180
191
 
181
192
  # Returns the value of attribute joined_at.
@@ -27,8 +27,10 @@ module Discorb
27
27
  ?reason: String?
28
28
  ) -> Async::Task[self]
29
29
 
30
+ %a{pure}
30
31
  def voice_states: -> Array[Discorb::VoiceState]
31
32
 
33
+ %a{pure}
32
34
  def members: -> Array[Discorb::Member]
33
35
 
34
36
  # @return [Integer] The bitrate of the voice channel.