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,79 +1,85 @@
1
- # frozen_string_literal: true
2
-
3
- module Discorb
4
- #
5
- # Represents a voice channel.
6
- #
7
- class VoiceChannel < GuildChannel
8
- # @return [Integer] The bitrate of the voice channel.
9
- attr_reader :bitrate
10
- # @return [Integer] The user limit of the voice channel.
11
- # @return [nil] If the user limit is not set.
12
- attr_reader :user_limit
13
-
14
- # @!attribute [r] members
15
- # @return [Array<Discorb::Member>] The members in the voice channel.
16
- # @!attribute [r] voice_states
17
- # @return [Array<Discorb::VoiceState>] The voice states associated with the voice channel.
18
-
19
- include Connectable
20
- include Messageable
21
-
22
- @channel_type = 2
23
- #
24
- # Edit the voice channel.
25
- # @async
26
- # @macro edit
27
- #
28
- # @param [String] name The name of the voice channel.
29
- # @param [Integer] position The position of the voice channel.
30
- # @param [Integer] bitrate The bitrate of the voice channel.
31
- # @param [Integer] user_limit The user limit of the voice channel.
32
- # @param [Symbol] rtc_region The region of the voice channel.
33
- # @param [String] reason The reason of editing the voice channel.
34
- #
35
- # @return [Async::Task<self>] The edited voice channel.
36
- #
37
- def edit(
38
- name: Discorb::Unset,
39
- position: Discorb::Unset,
40
- bitrate: Discorb::Unset,
41
- user_limit: Discorb::Unset,
42
- rtc_region: Discorb::Unset,
43
- reason: nil
44
- )
45
- Async do
46
- payload = {}
47
- payload[:name] = name if name != Discorb::Unset
48
- payload[:position] = position if position != Discorb::Unset
49
- payload[:bitrate] = bitrate if bitrate != Discorb::Unset
50
- payload[:user_limit] = user_limit if user_limit != Discorb::Unset
51
- payload[:rtc_region] = rtc_region if rtc_region != Discorb::Unset
52
-
53
- @client.http.request(Route.new("/channels/#{@id}", "//channels/:channel_id", :patch), payload,
54
- audit_log_reason: reason).wait
55
- self
56
- end
57
- end
58
-
59
- alias modify edit
60
-
61
- def voice_states
62
- guild.voice_states.select { |state| state.channel&.id == @id }
63
- end
64
-
65
- def members
66
- voice_states.map(&:member)
67
- end
68
-
69
- private
70
-
71
- def _set_data(data)
72
- @bitrate = data[:bitrate]
73
- @user_limit = (data[:user_limit]).zero? ? nil : data[:user_limit]
74
- @rtc_region = data[:rtc_region]&.to_sym
75
- @video_quality_mode = data[:video_quality_mode] == 1 ? :auto : :full
76
- super
77
- end
78
- end
79
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Discorb
4
+ #
5
+ # Represents a voice channel.
6
+ #
7
+ class VoiceChannel < GuildChannel
8
+ # @return [Integer] The bitrate of the voice channel.
9
+ attr_reader :bitrate
10
+ # @return [Integer] The user limit of the voice channel.
11
+ # @return [nil] If the user limit is not set.
12
+ attr_reader :user_limit
13
+
14
+ # @!attribute [r] members
15
+ # @return [Array<Discorb::Member>] The members in the voice channel.
16
+ # @!attribute [r] voice_states
17
+ # @return [Array<Discorb::VoiceState>] The voice states associated with the voice channel.
18
+
19
+ include Connectable
20
+ include Messageable
21
+
22
+ @channel_type = 2
23
+ #
24
+ # Edit the voice channel.
25
+ # @async
26
+ # @macro edit
27
+ #
28
+ # @param [String] name The name of the voice channel.
29
+ # @param [Integer] position The position of the voice channel.
30
+ # @param [Integer] bitrate The bitrate of the voice channel.
31
+ # @param [Integer] user_limit The user limit of the voice channel.
32
+ # @param [Symbol] rtc_region The region of the voice channel.
33
+ # @param [String] reason The reason of editing the voice channel.
34
+ #
35
+ # @return [Async::Task<self>] The edited voice channel.
36
+ #
37
+ def edit(
38
+ name: Discorb::Unset,
39
+ position: Discorb::Unset,
40
+ bitrate: Discorb::Unset,
41
+ user_limit: Discorb::Unset,
42
+ rtc_region: Discorb::Unset,
43
+ reason: nil
44
+ )
45
+ Async do
46
+ payload = {}
47
+ payload[:name] = name if name != Discorb::Unset
48
+ payload[:position] = position if position != Discorb::Unset
49
+ payload[:bitrate] = bitrate if bitrate != Discorb::Unset
50
+ payload[:user_limit] = user_limit if user_limit != Discorb::Unset
51
+ payload[:rtc_region] = rtc_region if rtc_region != Discorb::Unset
52
+
53
+ @client
54
+ .http
55
+ .request(
56
+ Route.new("/channels/#{@id}", "//channels/:channel_id", :patch),
57
+ payload,
58
+ audit_log_reason: reason
59
+ )
60
+ .wait
61
+ self
62
+ end
63
+ end
64
+
65
+ alias modify edit
66
+
67
+ def voice_states
68
+ guild.voice_states.select { |state| state.channel&.id == @id }
69
+ end
70
+
71
+ def members
72
+ voice_states.map(&:member)
73
+ end
74
+
75
+ private
76
+
77
+ def _set_data(data)
78
+ @bitrate = data[:bitrate]
79
+ @user_limit = (data[:user_limit]).zero? ? nil : data[:user_limit]
80
+ @rtc_region = data[:rtc_region]&.to_sym
81
+ @video_quality_mode = data[:video_quality_mode] == 1 ? :auto : :full
82
+ super
83
+ end
84
+ end
85
+ end
@@ -1,5 +1,5 @@
1
- # frozen_string_literal: true
2
-
3
- %w[base guild text voice category stage thread dm].each do |name|
4
- require_relative "channel/#{name}"
5
- end
1
+ # frozen_string_literal: true
2
+
3
+ %w[base guild text voice category stage thread dm].each do |name|
4
+ require_relative "channel/#{name}"
5
+ end