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.
- checksums.yaml +4 -4
- data/.github/workflows/build_version.yml +2 -2
- data/.rubocop.yml +12 -75
- data/Changelog.md +25 -0
- data/Gemfile +4 -4
- data/README.md +2 -1
- data/Rakefile +482 -459
- data/Steepfile +8 -6
- data/docs/application_command.md +1 -0
- data/docs/events.md +2 -2
- data/docs/voice_events.md +6 -6
- data/lib/discorb/allowed_mentions.rb +68 -72
- data/lib/discorb/app_command/command.rb +466 -394
- data/lib/discorb/app_command/common.rb +65 -25
- data/lib/discorb/app_command/handler.rb +304 -265
- data/lib/discorb/app_command.rb +5 -5
- data/lib/discorb/application.rb +198 -197
- data/lib/discorb/asset.rb +101 -101
- data/lib/discorb/attachment.rb +134 -119
- data/lib/discorb/audit_logs.rb +412 -385
- data/lib/discorb/automod.rb +279 -269
- data/lib/discorb/channel/base.rb +107 -108
- data/lib/discorb/channel/category.rb +32 -32
- data/lib/discorb/channel/container.rb +44 -44
- data/lib/discorb/channel/dm.rb +26 -28
- data/lib/discorb/channel/guild.rb +311 -246
- data/lib/discorb/channel/stage.rb +156 -140
- data/lib/discorb/channel/text.rb +430 -336
- data/lib/discorb/channel/thread.rb +374 -325
- data/lib/discorb/channel/voice.rb +85 -79
- data/lib/discorb/channel.rb +5 -5
- data/lib/discorb/client.rb +635 -623
- data/lib/discorb/color.rb +178 -182
- data/lib/discorb/common.rb +168 -164
- data/lib/discorb/components/button.rb +107 -106
- data/lib/discorb/components/select_menu.rb +157 -145
- data/lib/discorb/components/text_input.rb +103 -106
- data/lib/discorb/components.rb +68 -66
- data/lib/discorb/dictionary.rb +135 -135
- data/lib/discorb/embed.rb +404 -398
- data/lib/discorb/emoji.rb +309 -302
- data/lib/discorb/emoji_table.rb +16099 -8857
- data/lib/discorb/error.rb +131 -131
- data/lib/discorb/event.rb +360 -314
- data/lib/discorb/event_handler.rb +39 -39
- data/lib/discorb/exe/about.rb +17 -17
- data/lib/discorb/exe/irb.rb +72 -67
- data/lib/discorb/exe/new.rb +323 -315
- data/lib/discorb/exe/run.rb +69 -68
- data/lib/discorb/exe/setup.rb +57 -55
- data/lib/discorb/exe/show.rb +12 -12
- data/lib/discorb/extend.rb +25 -45
- data/lib/discorb/extension.rb +89 -83
- data/lib/discorb/flag.rb +126 -128
- data/lib/discorb/gateway.rb +984 -794
- data/lib/discorb/gateway_events.rb +670 -638
- data/lib/discorb/gateway_requests.rb +45 -48
- data/lib/discorb/guild.rb +2115 -1626
- data/lib/discorb/guild_template.rb +280 -241
- data/lib/discorb/http.rb +247 -232
- data/lib/discorb/image.rb +42 -42
- data/lib/discorb/integration.rb +169 -161
- data/lib/discorb/intents.rb +161 -163
- data/lib/discorb/interaction/autocomplete.rb +76 -62
- data/lib/discorb/interaction/command.rb +279 -224
- data/lib/discorb/interaction/components.rb +114 -104
- data/lib/discorb/interaction/modal.rb +36 -32
- data/lib/discorb/interaction/response.rb +379 -330
- data/lib/discorb/interaction/root.rb +271 -118
- data/lib/discorb/interaction.rb +5 -5
- data/lib/discorb/invite.rb +154 -153
- data/lib/discorb/member.rb +344 -311
- data/lib/discorb/message.rb +615 -544
- data/lib/discorb/message_meta.rb +197 -186
- data/lib/discorb/modules.rb +371 -290
- data/lib/discorb/permission.rb +305 -289
- data/lib/discorb/presence.rb +352 -346
- data/lib/discorb/rate_limit.rb +81 -76
- data/lib/discorb/reaction.rb +55 -54
- data/lib/discorb/role.rb +272 -240
- data/lib/discorb/shard.rb +76 -74
- data/lib/discorb/sticker.rb +193 -171
- data/lib/discorb/user.rb +205 -188
- data/lib/discorb/utils/colored_puts.rb +16 -16
- data/lib/discorb/utils.rb +12 -16
- data/lib/discorb/voice_state.rb +305 -281
- data/lib/discorb/webhook.rb +537 -507
- data/lib/discorb.rb +62 -56
- data/sig/discorb/activity.rbs +1 -0
- data/sig/discorb/allowed_mentions.rbs +1 -0
- data/sig/discorb/app_command/base.rbs +7 -1
- data/sig/discorb/application.rbs +6 -0
- data/sig/discorb/asset.rbs +2 -0
- data/sig/discorb/attachment.rbs +8 -0
- data/sig/discorb/audit_log.rbs +7 -0
- data/sig/discorb/automod.rbs +32 -6
- data/sig/discorb/avatar.rbs +1 -0
- data/sig/discorb/channel/base.rbs +8 -1
- data/sig/discorb/channel/category.rbs +1 -0
- data/sig/discorb/channel/container.rbs +4 -0
- data/sig/discorb/channel/stage.rbs +4 -0
- data/sig/discorb/channel/text.rbs +2 -2
- data/sig/discorb/channel/thread.rbs +11 -0
- data/sig/discorb/channel/voice.rbs +2 -0
- data/sig/discorb/client.rbs +21 -20
- data/sig/discorb/color.rbs +6 -0
- data/sig/discorb/component/base.rbs +1 -0
- data/sig/discorb/component/button.rbs +2 -0
- data/sig/discorb/component/select_menu.rbs +4 -0
- data/sig/discorb/component/text_input.rbs +1 -0
- data/sig/discorb/custom_emoji.rbs +5 -1
- data/sig/discorb/dictionary.rbs +2 -0
- data/sig/discorb/discord_model.rbs +2 -0
- data/sig/discorb/embed.rbs +7 -0
- data/sig/discorb/emoji.rbs +1 -0
- data/sig/discorb/event_handler.rbs +2 -1
- data/sig/discorb/extension.rbs +13 -12
- data/sig/discorb/flag.rbs +2 -0
- data/sig/discorb/gateway.rbs +5 -0
- data/sig/discorb/guild.rbs +8 -4
- data/sig/discorb/guild_template.rbs +1 -1
- data/sig/discorb/http.rbs +4 -1
- data/sig/discorb/image.rbs +2 -0
- data/sig/discorb/integration.rbs +1 -1
- data/sig/discorb/intents.rbs +4 -3
- data/sig/discorb/interaction/base.rbs +36 -0
- data/sig/discorb/interaction/message_component.rbs +1 -2
- data/sig/discorb/interaction/modal.rbs +1 -2
- data/sig/discorb/interaction/responder.rbs +49 -49
- data/sig/discorb/invite.rbs +1 -1
- data/sig/discorb/member.rbs +2 -0
- data/sig/discorb/message.rbs +8 -1
- data/sig/discorb/messageable.rbs +1 -4
- data/sig/discorb/partial_emoji.rbs +3 -0
- data/sig/discorb/permissions.rbs +7 -0
- data/sig/discorb/presence.rbs +2 -0
- data/sig/discorb/reaction.rbs +5 -1
- data/sig/discorb/role.rbs +7 -1
- data/sig/discorb/scheduled_event.rbs +2 -1
- data/sig/discorb/shard.rbs +2 -1
- data/sig/discorb/snowflake.rbs +2 -0
- data/sig/discorb/stage_instance.rbs +9 -3
- data/sig/discorb/sticker.rbs +1 -1
- data/sig/discorb/unicode_emoji.rbs +4 -0
- data/sig/discorb/user.rbs +24 -20
- data/sig/discorb/webhook.rbs +17 -6
- data/sig/discorb/welcome_screen.rbs +1 -0
- data/sig/override.rbs +2 -0
- metadata +3 -3
data/Steepfile
CHANGED
|
@@ -15,14 +15,16 @@ target :lib do
|
|
|
15
15
|
config[D::Ruby::UnexpectedSuper] = nil
|
|
16
16
|
config[D::Ruby::UnexpectedPositionalArgument] = nil
|
|
17
17
|
config[D::Ruby::InsufficientPositionalArguments] = nil
|
|
18
|
+
config[D::Ruby::UnknownInstanceVariable] = nil
|
|
19
|
+
config[D::Ruby::UnknownGlobalVariable] = nil
|
|
18
20
|
end
|
|
19
21
|
end
|
|
20
22
|
|
|
21
|
-
target :test do
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
# target :test do
|
|
24
|
+
# signature "sig"
|
|
25
|
+
# signature "examples/sig"
|
|
24
26
|
|
|
25
|
-
|
|
27
|
+
# check "examples/**/*.rb"
|
|
26
28
|
|
|
27
|
-
|
|
28
|
-
end
|
|
29
|
+
# library "net-http", "timeout"
|
|
30
|
+
# end
|
data/docs/application_command.md
CHANGED
|
@@ -82,6 +82,7 @@ In `options`, hash should be like this:
|
|
|
82
82
|
| `:channel_types` | `Array<Class<Discorb::Channel>>` | Type of the channel option. |
|
|
83
83
|
| `:autocomplete` | `Proc` | Autocomplete function. |
|
|
84
84
|
| `:range` | `Range` | Range of the option. Only valid for numeric options. (`:int`, `:float`) |
|
|
85
|
+
| `:length` | `Range` | Range of length of the option. Only valid for `:string`. |
|
|
85
86
|
|
|
86
87
|
`choices` should be unspecified if you don't want to use it.
|
|
87
88
|
`choices` example:
|
data/docs/events.md
CHANGED
|
@@ -563,9 +563,9 @@ Fires when a select menu is selected.
|
|
|
563
563
|
| ------------- | -------------------------------------------------- | ----------------------- |
|
|
564
564
|
| `interaction` | {Discorb::MessageComponentInteraction::SelectMenu} | The interaction object. |
|
|
565
565
|
|
|
566
|
-
#### `
|
|
566
|
+
#### `modal_submit(interaction)`
|
|
567
567
|
|
|
568
|
-
Fires when a
|
|
568
|
+
Fires when a modal is submitted.
|
|
569
569
|
|
|
570
570
|
| Parameter | Type | Description |
|
|
571
571
|
| ------------- | --------------------------- | ----------------------- |
|
data/docs/voice_events.md
CHANGED
|
@@ -12,7 +12,7 @@ Fires when someone joins a voice channel.
|
|
|
12
12
|
|
|
13
13
|
| Parameter | Type | Description |
|
|
14
14
|
| --------- | --------------------- | ---------------------------------------- |
|
|
15
|
-
| state
|
|
15
|
+
| `state` | {Discorb::VoiceState} | The voice state of the user that joined. |
|
|
16
16
|
|
|
17
17
|
#### `voice_channel_disconnect(state)`
|
|
18
18
|
|
|
@@ -20,7 +20,7 @@ Fires when someone leaves a voice channel.
|
|
|
20
20
|
|
|
21
21
|
| Parameter | Type | Description |
|
|
22
22
|
| --------- | --------------------- | -------------------------------------- |
|
|
23
|
-
| state
|
|
23
|
+
| `state` | {Discorb::VoiceState} | The voice state of the user that left. |
|
|
24
24
|
|
|
25
25
|
#### `voice_channel_move(before, after)`
|
|
26
26
|
|
|
@@ -28,8 +28,8 @@ Fires when someone moves to a different voice channel.
|
|
|
28
28
|
|
|
29
29
|
| Parameter | Type | Description |
|
|
30
30
|
| --------- | --------------------- | -------------------------------------------- |
|
|
31
|
-
| before
|
|
32
|
-
| after
|
|
31
|
+
| `before` | {Discorb::VoiceState} | The voice state of the user before the move. |
|
|
32
|
+
| `after` | {Discorb::VoiceState} | The voice state of the user after the move. |
|
|
33
33
|
|
|
34
34
|
#### `voice_channel_update(before, after)`
|
|
35
35
|
|
|
@@ -37,8 +37,8 @@ Fires when a voice channel is connected, disconnected, or updated.
|
|
|
37
37
|
|
|
38
38
|
| Parameter | Type | Description |
|
|
39
39
|
| --------- | --------------------- | ---------------------------------- |
|
|
40
|
-
| before
|
|
41
|
-
| after
|
|
40
|
+
| `before` | {Discorb::VoiceState} | The voice state before the update. |
|
|
41
|
+
| `after` | {Discorb::VoiceState} | The voice state after the update. |
|
|
42
42
|
|
|
43
43
|
### Mute Events
|
|
44
44
|
|
|
@@ -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
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
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
|