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.
- checksums.yaml +4 -4
- data/.github/workflows/build_version.yml +2 -2
- data/.rubocop.yml +12 -75
- data/Changelog.md +10 -0
- data/Rakefile +482 -454
- data/lib/discorb/allowed_mentions.rb +68 -72
- data/lib/discorb/app_command/command.rb +466 -398
- data/lib/discorb/app_command/common.rb +65 -25
- data/lib/discorb/app_command/handler.rb +304 -266
- 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 -621
- 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 -804
- 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 -336
- data/lib/discorb/interaction/root.rb +271 -257
- 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 -291
- 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/application.rbs +2 -0
- data/sig/discorb/automod.rbs +10 -1
- data/sig/discorb/guild.rbs +2 -0
- data/sig/discorb/message.rbs +2 -0
- data/sig/discorb/user.rbs +22 -20
- metadata +2 -2
@@ -1,104 +1,114 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Discorb
|
4
|
-
#
|
5
|
-
# Represents a message component interaction.
|
6
|
-
# @abstract
|
7
|
-
#
|
8
|
-
class MessageComponentInteraction < Interaction
|
9
|
-
include Interaction::SourceResponder
|
10
|
-
include Interaction::UpdateResponder
|
11
|
-
include Interaction::ModalResponder
|
12
|
-
|
13
|
-
# @return [String] The content of the response.
|
14
|
-
attr_reader :custom_id
|
15
|
-
# @return [Discorb::Message] The target message.
|
16
|
-
attr_reader :message
|
17
|
-
|
18
|
-
@interaction_type = 3
|
19
|
-
@interaction_name = :message_component
|
20
|
-
|
21
|
-
#
|
22
|
-
# Initialize a new message component interaction.
|
23
|
-
# @private
|
24
|
-
#
|
25
|
-
# @param [Discorb::Client] client The client.
|
26
|
-
# @param [Hash] data The data.
|
27
|
-
#
|
28
|
-
def initialize(client, data)
|
29
|
-
super
|
30
|
-
@message =
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
# @private
|
41
|
-
#
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
end
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Discorb
|
4
|
+
#
|
5
|
+
# Represents a message component interaction.
|
6
|
+
# @abstract
|
7
|
+
#
|
8
|
+
class MessageComponentInteraction < Interaction
|
9
|
+
include Interaction::SourceResponder
|
10
|
+
include Interaction::UpdateResponder
|
11
|
+
include Interaction::ModalResponder
|
12
|
+
|
13
|
+
# @return [String] The content of the response.
|
14
|
+
attr_reader :custom_id
|
15
|
+
# @return [Discorb::Message] The target message.
|
16
|
+
attr_reader :message
|
17
|
+
|
18
|
+
@interaction_type = 3
|
19
|
+
@interaction_name = :message_component
|
20
|
+
|
21
|
+
#
|
22
|
+
# Initialize a new message component interaction.
|
23
|
+
# @private
|
24
|
+
#
|
25
|
+
# @param [Discorb::Client] client The client.
|
26
|
+
# @param [Hash] data The data.
|
27
|
+
#
|
28
|
+
def initialize(client, data)
|
29
|
+
super
|
30
|
+
@message =
|
31
|
+
Message.new(
|
32
|
+
@client,
|
33
|
+
data[:message].merge(
|
34
|
+
{ member: data[:member], guild_id: data[:guild_id] }
|
35
|
+
)
|
36
|
+
)
|
37
|
+
end
|
38
|
+
|
39
|
+
class << self
|
40
|
+
# @private
|
41
|
+
# @return [Integer] The component type.
|
42
|
+
attr_reader :component_type
|
43
|
+
|
44
|
+
#
|
45
|
+
# Create a MessageComponentInteraction instance for the given data.
|
46
|
+
# @private
|
47
|
+
#
|
48
|
+
def make_interaction(client, data)
|
49
|
+
nested_classes.each do |klass|
|
50
|
+
if !klass.component_type.nil? &&
|
51
|
+
klass.component_type == data[:data][:component_type]
|
52
|
+
return klass.new(client, data)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
client.logger.warn(
|
56
|
+
"Unknown component type #{data[:component_type]}, initialized Interaction"
|
57
|
+
)
|
58
|
+
MessageComponentInteraction.new(client, data)
|
59
|
+
end
|
60
|
+
|
61
|
+
#
|
62
|
+
# Returns the classes under this class.
|
63
|
+
# @private
|
64
|
+
#
|
65
|
+
def nested_classes
|
66
|
+
constants
|
67
|
+
.select { |c| const_get(c).is_a? Class }
|
68
|
+
.map { |c| const_get(c) }
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
#
|
73
|
+
# Represents a button interaction.
|
74
|
+
#
|
75
|
+
class Button < MessageComponentInteraction
|
76
|
+
@component_type = 2
|
77
|
+
@event_name = :button_click
|
78
|
+
# @return [String] The custom id of the button.
|
79
|
+
attr_reader :custom_id
|
80
|
+
|
81
|
+
private
|
82
|
+
|
83
|
+
def _set_data(data)
|
84
|
+
@custom_id = data[:custom_id]
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
#
|
89
|
+
# Represents a select menu interaction.
|
90
|
+
#
|
91
|
+
class SelectMenu < MessageComponentInteraction
|
92
|
+
@component_type = 3
|
93
|
+
@event_name = :select_menu_select
|
94
|
+
# @return [String] The custom id of the select menu.
|
95
|
+
attr_reader :custom_id
|
96
|
+
# @return [Array<String>] The selected options.
|
97
|
+
attr_reader :values
|
98
|
+
|
99
|
+
# @!attribute [r] value
|
100
|
+
# @return [String] The first selected value.
|
101
|
+
|
102
|
+
def value
|
103
|
+
@values[0]
|
104
|
+
end
|
105
|
+
|
106
|
+
private
|
107
|
+
|
108
|
+
def _set_data(data)
|
109
|
+
@custom_id = data[:custom_id]
|
110
|
+
@values = data[:values]
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
@@ -1,32 +1,36 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Discorb
|
4
|
-
#
|
5
|
-
# Represents a modal interaction.
|
6
|
-
#
|
7
|
-
class ModalInteraction < Interaction
|
8
|
-
include Interaction::SourceResponder
|
9
|
-
|
10
|
-
@interaction_type = 5
|
11
|
-
@interaction_name = :modal_submit
|
12
|
-
@event_name = :modal_submit
|
13
|
-
|
14
|
-
# @return [String] The custom id of the modal.
|
15
|
-
attr_reader :custom_id
|
16
|
-
# @return [{String => String}] The contents of the modal.
|
17
|
-
attr_reader :contents
|
18
|
-
|
19
|
-
private
|
20
|
-
|
21
|
-
def _set_data(data)
|
22
|
-
@custom_id = data[:custom_id]
|
23
|
-
@contents =
|
24
|
-
[
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
end
|
31
|
-
|
32
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Discorb
|
4
|
+
#
|
5
|
+
# Represents a modal interaction.
|
6
|
+
#
|
7
|
+
class ModalInteraction < Interaction
|
8
|
+
include Interaction::SourceResponder
|
9
|
+
|
10
|
+
@interaction_type = 5
|
11
|
+
@interaction_name = :modal_submit
|
12
|
+
@event_name = :modal_submit
|
13
|
+
|
14
|
+
# @return [String] The custom id of the modal.
|
15
|
+
attr_reader :custom_id
|
16
|
+
# @return [{String => String}] The contents of the modal.
|
17
|
+
attr_reader :contents
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def _set_data(data)
|
22
|
+
@custom_id = data[:custom_id]
|
23
|
+
@contents =
|
24
|
+
data[:components].to_h do |component|
|
25
|
+
[
|
26
|
+
component[:components][0][:custom_id],
|
27
|
+
component[:components][0][:value]
|
28
|
+
]
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
class << self
|
33
|
+
alias make_interaction new
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|