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
@@ -1,39 +1,39 @@
1
- # frozen_string_literal: true
2
-
3
- module Discorb
4
- #
5
- # Represents a event handler.
6
- # This class shouldn't be instantiated directly.
7
- # Use {Client#on} instead.
8
- #
9
- class EventHandler
10
- # @return [Proc] the block to be called.
11
- attr_reader :block
12
- # @return [Symbol] the event id.
13
- attr_reader :id
14
- # @return [Hash] the event metadata.
15
- attr_reader :metadata
16
- # @return [Boolean] whether the event is once or not.
17
- attr_reader :once
18
- alias once? once
19
-
20
- def initialize(block, id, metadata)
21
- @block = block
22
- @id = id
23
- @once = metadata.fetch(:once, false)
24
- @metadata = metadata
25
- @rescue = nil
26
- end
27
-
28
- def inspect
29
- "#<#{self.class} @id=#{@id}"
30
- end
31
-
32
- #
33
- # Calls the block associated with the event.
34
- #
35
- def call(...)
36
- @block.call(...)
37
- end
38
- end
39
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Discorb
4
+ #
5
+ # Represents a event handler.
6
+ # This class shouldn't be instantiated directly.
7
+ # Use {Client#on} instead.
8
+ #
9
+ class EventHandler
10
+ # @return [Proc] the block to be called.
11
+ attr_reader :block
12
+ # @return [Symbol] the event id.
13
+ attr_reader :id
14
+ # @return [Hash] the event metadata.
15
+ attr_reader :metadata
16
+ # @return [Boolean] whether the event is once or not.
17
+ attr_reader :once
18
+ alias once? once
19
+
20
+ def initialize(block, id, metadata)
21
+ @block = block
22
+ @id = id
23
+ @once = metadata.fetch(:once, false)
24
+ @metadata = metadata
25
+ @rescue = nil
26
+ end
27
+
28
+ def inspect
29
+ "#<#{self.class} @id=#{@id}"
30
+ end
31
+
32
+ #
33
+ # Calls the block associated with the event.
34
+ #
35
+ def call(...)
36
+ @block.call(...)
37
+ end
38
+ end
39
+ end
@@ -1,17 +1,17 @@
1
- # frozen_string_literal: true
2
-
3
- # description: Show information of discorb.
4
-
5
- puts " disco\e[31mrb\e[m - A new Discord API wrapper in Ruby. \n\n"
6
-
7
- informations = {
8
- "GitHub" => "https://github.com/discorb-lib/discorb",
9
- "Documentation" => "https://discorb-lib.github.io",
10
- "RubyGems" => "https://rubygems.org/gems/discorb",
11
- "Changelog" => "https://discorb-lib.github.io/file.Changelog.html",
12
- "License" => "MIT License",
13
- }
14
-
15
- informations.each do |key, value|
16
- puts "\e[90m#{key.rjust(informations.keys.map(&:length).max)}:\e[m #{value}"
17
- end
1
+ # frozen_string_literal: true
2
+
3
+ # description: Show information of discorb.
4
+
5
+ puts " disco\e[31mrb\e[m - A new Discord API wrapper in Ruby. \n\n"
6
+
7
+ informations = {
8
+ "GitHub" => "https://github.com/discorb-lib/discorb",
9
+ "Documentation" => "https://discorb-lib.github.io",
10
+ "RubyGems" => "https://rubygems.org/gems/discorb",
11
+ "Changelog" => "https://discorb-lib.github.io/file.Changelog.html",
12
+ "License" => "MIT License"
13
+ }
14
+
15
+ informations.each do |key, value|
16
+ puts "\e[90m#{key.rjust(informations.keys.map(&:length).max)}:\e[m #{value}"
17
+ end
@@ -1,67 +1,72 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- # description: Connect to discord and start IRB.
5
-
6
- require "io/console"
7
- require "discorb"
8
- require "optparse"
9
-
10
- intents_value = Discorb::Intents.all.value
11
- token_file = "token"
12
-
13
- opt = OptionParser.new <<~BANNER
14
- This command will start an interactive Ruby shell with connected client.
15
-
16
- Usage: discorb irb [options]
17
- BANNER
18
- opt.on("-i", "--intents", "intents to use, default to all") { |v| intents_value = v }
19
- opt.on("-t", "--token-file", "token file to load, default to \"token\"") { |v| token_file = v }
20
- opt.parse!(ARGV)
21
-
22
- client = Discorb::Client.new(intents: Discorb::Intents.from_value(intents_value))
23
- $messages = []
24
-
25
- client.on :standby do
26
- puts "\e[96mLogged in as #{client.user}\e[m"
27
-
28
- def message
29
- $messages.last
30
- end
31
-
32
- def dirb_help
33
- puts <<~MESSAGE
34
- \e[96mDiscord-IRB\e[m
35
- This is a debug client for Discord.
36
- \e[90mmessage\e[m to get latest message.
37
-
38
- \e[36mhttps://discorb-lib.github.io/#{Discorb::VERSION}/file.irb.html\e[m for more information.
39
- MESSAGE
40
- end
41
-
42
- puts <<~FIRST_MESSAGE
43
- Running on \e[31mRuby #{RUBY_VERSION}\e[m, disco\e[31mrb #{Discorb::VERSION}\e[m
44
- Type \e[90mdirb_help\e[m to help.
45
- FIRST_MESSAGE
46
-
47
- binding.irb
48
-
49
- client.close!
50
- end
51
-
52
- client.on :message do |message|
53
- $messages << message
54
- end
55
-
56
- token = ENV.fetch("DISCORD_BOT_TOKEN", nil) || ENV.fetch("DISCORD_TOKEN", nil)
57
- if token.nil?
58
- if File.exist?(token_file)
59
- token = File.read(token_file)
60
- else
61
- print "\e[90mToken?\e[m : "
62
- token = $stdin.noecho(&:gets).chomp
63
- puts
64
- end
65
- end
66
-
67
- client.run token
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ # description: Connect to discord and start IRB.
5
+
6
+ require "io/console"
7
+ require "discorb"
8
+ require "optparse"
9
+
10
+ intents_value = Discorb::Intents.all.value
11
+ token_file = "token"
12
+
13
+ opt = OptionParser.new <<~BANNER
14
+ This command will start an interactive Ruby shell with connected client.
15
+
16
+ Usage: discorb irb [options]
17
+ BANNER
18
+ opt.on("-i", "--intents", "intents to use, default to all") do |v|
19
+ intents_value = v
20
+ end
21
+ opt.on("-t", "--token-file", "token file to load, default to \"token\"") do |v|
22
+ token_file = v
23
+ end
24
+ opt.parse!(ARGV)
25
+
26
+ client =
27
+ Discorb::Client.new(intents: Discorb::Intents.from_value(intents_value))
28
+ $messages = []
29
+
30
+ client.on :standby do
31
+ puts "\e[96mLogged in as #{client.user}\e[m"
32
+
33
+ def message
34
+ $messages.last
35
+ end
36
+
37
+ def dirb_help
38
+ puts <<~MESSAGE
39
+ \e[96mDiscord-IRB\e[m
40
+ This is a debug client for Discord.
41
+ \e[90mmessage\e[m to get latest message.
42
+
43
+ \e[36mhttps://discorb-lib.github.io/#{Discorb::VERSION}/file.irb.html\e[m for more information.
44
+ MESSAGE
45
+ end
46
+
47
+ puts <<~FIRST_MESSAGE
48
+ Running on \e[31mRuby #{RUBY_VERSION}\e[m, disco\e[31mrb #{Discorb::VERSION}\e[m
49
+ Type \e[90mdirb_help\e[m to help.
50
+ FIRST_MESSAGE
51
+
52
+ binding.irb # rubocop:disable Lint/Debugger
53
+
54
+ client.close!
55
+ end
56
+
57
+ client.on :message do |message|
58
+ $messages << message
59
+ end
60
+
61
+ token = ENV.fetch("DISCORD_BOT_TOKEN", nil) || ENV.fetch("DISCORD_TOKEN", nil)
62
+ if token.nil?
63
+ if File.exist?(token_file)
64
+ token = File.read(token_file)
65
+ else
66
+ print "\e[90mToken?\e[m : "
67
+ token = $stdin.noecho(&:gets).chomp
68
+ puts
69
+ end
70
+ end
71
+
72
+ client.run token