discorb 0.13.0 → 0.13.1
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_main.yml +1 -0
- data/.github/workflows/build_version.yml +1 -0
- data/.github/workflows/crowdin.yml +32 -0
- data/.gitignore +3 -1
- data/.yardopts +2 -0
- data/Changelog.md +399 -388
- data/Gemfile +5 -1
- data/README.md +1 -1
- data/Rakefile +139 -9
- data/crowdin.yml +2 -0
- data/docs/Examples.md +2 -0
- data/docs/application_command.md +7 -5
- data/docs/cli/irb.md +2 -0
- data/docs/cli/new.md +2 -0
- data/docs/cli/run.md +3 -1
- data/docs/cli/setup.md +4 -2
- data/docs/cli.md +2 -0
- data/docs/events.md +6 -4
- data/docs/extension.md +2 -2
- data/docs/faq.md +4 -2
- data/docs/license.md +2 -0
- data/docs/tutorial.md +4 -3
- data/docs/voice_events.md +2 -0
- data/lib/discorb/app_command.rb +8 -7
- data/lib/discorb/application.rb +1 -1
- data/lib/discorb/channel.rb +100 -76
- data/lib/discorb/client.rb +13 -15
- data/lib/discorb/common.rb +3 -1
- data/lib/discorb/emoji.rb +5 -7
- data/lib/discorb/emoji_table.rb +3891 -3891
- data/lib/discorb/event.rb +8 -7
- data/lib/discorb/exe/show.rb +2 -0
- data/lib/discorb/extension.rb +1 -1
- data/lib/discorb/flag.rb +1 -1
- data/lib/discorb/gateway.rb +9 -13
- data/lib/discorb/guild.rb +63 -89
- data/lib/discorb/guild_template.rb +12 -9
- data/lib/discorb/http.rb +82 -44
- data/lib/discorb/integration.rb +3 -0
- data/lib/discorb/interaction/response.rb +27 -25
- data/lib/discorb/interaction/root.rb +8 -0
- data/lib/discorb/invite.rb +3 -2
- data/lib/discorb/member.rb +41 -12
- data/lib/discorb/message.rb +28 -17
- data/lib/discorb/modules.rb +19 -26
- data/lib/discorb/role.rb +15 -11
- data/lib/discorb/sticker.rb +8 -12
- data/lib/discorb/user.rb +7 -7
- data/lib/discorb/voice_state.rb +8 -5
- data/lib/discorb/webhook.rb +38 -47
- data/lib/discorb.rb +1 -1
- data/po/yard.pot +7772 -5154
- data/sig/discorb.rbs +3316 -3819
- data/template-replace/scripts/locale_ja.rb +62 -0
- metadata +5 -3
data/lib/discorb/modules.rb
CHANGED
@@ -7,8 +7,7 @@ module Discorb
|
|
7
7
|
module Messageable
|
8
8
|
#
|
9
9
|
# Post a message to the channel.
|
10
|
-
# @
|
11
|
-
# @macro http
|
10
|
+
# @async
|
12
11
|
#
|
13
12
|
# @param [String] content The message content.
|
14
13
|
# @param [Boolean] tts Whether the message is tts.
|
@@ -38,14 +37,8 @@ module Discorb
|
|
38
37
|
allowed_mentions ? allowed_mentions.to_hash(@client.allowed_mentions) : @client.allowed_mentions.to_hash
|
39
38
|
payload[:message_reference] = reference.to_reference if reference
|
40
39
|
payload[:components] = Component.to_payload(components) if components
|
41
|
-
files = [file]
|
42
|
-
|
43
|
-
seperator, payload = HTTP.multipart(payload, files)
|
44
|
-
headers = { "content-type" => "multipart/form-data; boundary=#{seperator}" }
|
45
|
-
else
|
46
|
-
headers = {}
|
47
|
-
end
|
48
|
-
_resp, data = @client.http.post("/channels/#{channel_id.wait}/messages", payload, headers: headers).wait
|
40
|
+
files = [file]
|
41
|
+
_resp, data = @client.http.multipart_post("/channels/#{channel_id.wait}/messages", payload, files).wait
|
49
42
|
Message.new(@client, data.merge({ guild_id: @guild_id.to_s }))
|
50
43
|
end
|
51
44
|
end
|
@@ -54,8 +47,7 @@ module Discorb
|
|
54
47
|
|
55
48
|
#
|
56
49
|
# Edit a message.
|
57
|
-
# @
|
58
|
-
# @macro http
|
50
|
+
# @async
|
59
51
|
#
|
60
52
|
# @param [#to_s] message_id The message id.
|
61
53
|
# @param [String] content The message content.
|
@@ -65,6 +57,8 @@ module Discorb
|
|
65
57
|
# @param [Array<Discorb::Component>, Array<Array<Discorb::Component>>] components The components to send.
|
66
58
|
# @param [Boolean] supress Whether to supress embeds.
|
67
59
|
#
|
60
|
+
# @return [Async::Task<void>] The task.
|
61
|
+
#
|
68
62
|
def edit_message(message_id, content = nil, embed: nil, embeds: nil, allowed_mentions: nil,
|
69
63
|
components: nil, supress: nil)
|
70
64
|
Async do
|
@@ -86,12 +80,13 @@ module Discorb
|
|
86
80
|
|
87
81
|
#
|
88
82
|
# Delete a message.
|
89
|
-
# @
|
90
|
-
# @macro http
|
83
|
+
# @async
|
91
84
|
#
|
92
85
|
# @param [#to_s] message_id The message id.
|
93
86
|
# @param [String] reason The reason for deleting the message.
|
94
87
|
#
|
88
|
+
# @return [Async::Task<void>] The task.
|
89
|
+
#
|
95
90
|
def delete_message!(message_id, reason: nil)
|
96
91
|
Async do
|
97
92
|
@client.http.delete("/channels/#{channel_id.wait}/messages/#{message_id}", audit_log_reason: reason).wait
|
@@ -102,8 +97,7 @@ module Discorb
|
|
102
97
|
|
103
98
|
#
|
104
99
|
# Fetch a message from ID.
|
105
|
-
# @
|
106
|
-
# @macro http
|
100
|
+
# @async
|
107
101
|
#
|
108
102
|
# @param [Discorb::Snowflake] id The ID of the message.
|
109
103
|
#
|
@@ -119,8 +113,7 @@ module Discorb
|
|
119
113
|
|
120
114
|
#
|
121
115
|
# Fetch a message history.
|
122
|
-
# @
|
123
|
-
# @macro http
|
116
|
+
# @async
|
124
117
|
#
|
125
118
|
# @param [Integer] limit The number of messages to fetch.
|
126
119
|
# @param [Discorb::Snowflake] before The ID of the message to fetch before.
|
@@ -144,8 +137,7 @@ module Discorb
|
|
144
137
|
|
145
138
|
#
|
146
139
|
# Fetch the pinned messages in the channel.
|
147
|
-
# @
|
148
|
-
# @macro http
|
140
|
+
# @async
|
149
141
|
#
|
150
142
|
# @return [Async::Task<Array<Discorb::Message>>] The pinned messages in the channel.
|
151
143
|
#
|
@@ -158,12 +150,13 @@ module Discorb
|
|
158
150
|
|
159
151
|
#
|
160
152
|
# Pin a message in the channel.
|
161
|
-
# @
|
162
|
-
# @macro http
|
153
|
+
# @async
|
163
154
|
#
|
164
155
|
# @param [Discorb::Message] message The message to pin.
|
165
156
|
# @param [String] reason The reason of pinning the message.
|
166
157
|
#
|
158
|
+
# @return [Async::Task<void>] The task.
|
159
|
+
#
|
167
160
|
def pin_message(message, reason: nil)
|
168
161
|
Async do
|
169
162
|
@client.http.put("/channels/#{channel_id.wait}/pins/#{message.id}", {}, audit_log_reason: reason).wait
|
@@ -172,12 +165,13 @@ module Discorb
|
|
172
165
|
|
173
166
|
#
|
174
167
|
# Unpin a message in the channel.
|
175
|
-
# @
|
176
|
-
# @macro http
|
168
|
+
# @async
|
177
169
|
#
|
178
170
|
# @param [Discorb::Message] message The message to unpin.
|
179
171
|
# @param [String] reason The reason of unpinning the message.
|
180
172
|
#
|
173
|
+
# @return [Async::Task<void>] The task.
|
174
|
+
#
|
181
175
|
def unpin_message(message, reason: nil)
|
182
176
|
Async do
|
183
177
|
@client.http.delete("/channels/#{channel_id.wait}/pins/#{message.id}", audit_log_reason: reason).wait
|
@@ -186,8 +180,7 @@ module Discorb
|
|
186
180
|
|
187
181
|
#
|
188
182
|
# Trigger the typing indicator in the channel.
|
189
|
-
# @
|
190
|
-
# @macro http
|
183
|
+
# @async
|
191
184
|
#
|
192
185
|
# If block is given, trigger typing indicator during executing block.
|
193
186
|
# @example
|
data/lib/discorb/role.rb
CHANGED
@@ -90,12 +90,13 @@ module Discorb
|
|
90
90
|
|
91
91
|
#
|
92
92
|
# Moves the role to a new position.
|
93
|
-
# @
|
94
|
-
# @macro http
|
93
|
+
# @async
|
95
94
|
#
|
96
95
|
# @param [Integer] position The new position.
|
97
96
|
# @param [String] reason The reason for moving the role.
|
98
97
|
#
|
98
|
+
# @return [Async::Task<void>] The task.
|
99
|
+
#
|
99
100
|
def move(position, reason: nil)
|
100
101
|
Async do
|
101
102
|
@client.http.patch("/guilds/#{@guild.id}/roles", { id: @id, position: position }, audit_log_reason: reason).wait
|
@@ -104,8 +105,7 @@ module Discorb
|
|
104
105
|
|
105
106
|
#
|
106
107
|
# Edits the role.
|
107
|
-
# @
|
108
|
-
# @macro http
|
108
|
+
# @async
|
109
109
|
# @macro edit
|
110
110
|
#
|
111
111
|
# @param [String] name The new name of the role.
|
@@ -116,15 +116,17 @@ module Discorb
|
|
116
116
|
# @param [Discorb::Image, Discorb::UnicodeEmoji] icon The new icon or emoji of the role.
|
117
117
|
# @param [String] reason The reason for editing the role.
|
118
118
|
#
|
119
|
-
|
119
|
+
# @return [Async::Task<void>] The task.
|
120
|
+
#
|
121
|
+
def edit(name: Discorb::Unset, position: Discorb::Unset, color: Discorb::Unset, hoist: Discorb::Unset, mentionable: Discorb::Unset, icon: Discorb::Unset, reason: nil)
|
120
122
|
Async do
|
121
123
|
payload = {}
|
122
|
-
payload[:name] = name if name !=
|
123
|
-
payload[:position] = position if position !=
|
124
|
-
payload[:color] = color.to_i if color !=
|
125
|
-
payload[:hoist] = hoist if hoist !=
|
126
|
-
payload[:mentionable] = mentionable if mentionable !=
|
127
|
-
if icon !=
|
124
|
+
payload[:name] = name if name != Discorb::Unset
|
125
|
+
payload[:position] = position if position != Discorb::Unset
|
126
|
+
payload[:color] = color.to_i if color != Discorb::Unset
|
127
|
+
payload[:hoist] = hoist if hoist != Discorb::Unset
|
128
|
+
payload[:mentionable] = mentionable if mentionable != Discorb::Unset
|
129
|
+
if icon != Discorb::Unset
|
128
130
|
if icon.is_a?(Discorb::Image)
|
129
131
|
payload[:icon] = icon.to_s
|
130
132
|
else
|
@@ -142,6 +144,8 @@ module Discorb
|
|
142
144
|
#
|
143
145
|
# @param [String] reason The reason for deleting the role.
|
144
146
|
#
|
147
|
+
# @return [Async::Task<void>] The task.
|
148
|
+
#
|
145
149
|
def delete!(reason: nil)
|
146
150
|
Async do
|
147
151
|
@client.http.delete("/guilds/#{@guild.id}/roles/#{@id}", audit_log_reason: reason).wait
|
data/lib/discorb/sticker.rb
CHANGED
@@ -67,8 +67,7 @@ module Discorb
|
|
67
67
|
|
68
68
|
#
|
69
69
|
# Edits the sticker.
|
70
|
-
# @
|
71
|
-
# @macro http
|
70
|
+
# @async
|
72
71
|
# @macro edit
|
73
72
|
#
|
74
73
|
# @param [String] name The new name of the sticker.
|
@@ -76,12 +75,14 @@ module Discorb
|
|
76
75
|
# @param [Discorb::Emoji] tag The new tags of the sticker.
|
77
76
|
# @param [String] reason The reason for the edit.
|
78
77
|
#
|
79
|
-
|
78
|
+
# @return [Async::Task<void>] The task.
|
79
|
+
#
|
80
|
+
def edit(name: Discorb::Unset, description: Discorb::Unset, tag: Discorb::Unset, reason: Discorb::Unset)
|
80
81
|
Async do
|
81
82
|
payload = {}
|
82
|
-
payload[:name] = name unless name ==
|
83
|
-
payload[:description] = description unless description ==
|
84
|
-
payload[:tags] = tag.name unless tag ==
|
83
|
+
payload[:name] = name unless name == Discorb::Unset
|
84
|
+
payload[:description] = description unless description == Discorb::Unset
|
85
|
+
payload[:tags] = tag.name unless tag == Discorb::Unset
|
85
86
|
@client.http.patch("/guilds/#{@guild_id}/stickers/#{@id}", payload, audit_log_reason: reason).wait
|
86
87
|
end
|
87
88
|
end
|
@@ -90,8 +91,7 @@ module Discorb
|
|
90
91
|
|
91
92
|
#
|
92
93
|
# Deletes the sticker.
|
93
|
-
# @
|
94
|
-
# @macro http
|
94
|
+
# @async
|
95
95
|
#
|
96
96
|
# @param [String] reason The reason for the deletion.
|
97
97
|
#
|
@@ -112,14 +112,10 @@ module Discorb
|
|
112
112
|
attr_reader :id
|
113
113
|
# @return [String] The name of the sticker pack.
|
114
114
|
attr_reader :name
|
115
|
-
# @return [Discorb::Snowflake] The ID of the SKU.
|
116
|
-
attr_reader :sku_id
|
117
115
|
# @return [Discorb::Snowflake] The cover sticker of the pack.
|
118
116
|
attr_reader :cover_sticker_id
|
119
117
|
# @return [String] The description of the pack.
|
120
118
|
attr_reader :description
|
121
|
-
# @return [Discorb::Store::SKU] The banner asset ID of the pack.
|
122
|
-
attr_reader :banner_asset_id
|
123
119
|
# @return [Array<Discorb::Sticker>] The stickers in the pack.
|
124
120
|
attr_reader :stickers
|
125
121
|
# @return [Discorb::Asset] The banner of the pack.
|
data/lib/discorb/user.rb
CHANGED
@@ -58,8 +58,7 @@ module Discorb
|
|
58
58
|
|
59
59
|
#
|
60
60
|
# Whether the user is a owner of the client.
|
61
|
-
# @
|
62
|
-
# @macro http
|
61
|
+
# @async
|
63
62
|
#
|
64
63
|
# @param [Boolean] strict Whether don't allow if the user is a member of the team.
|
65
64
|
#
|
@@ -150,18 +149,19 @@ module Discorb
|
|
150
149
|
class ClientUser < User
|
151
150
|
#
|
152
151
|
# Edit the client user.
|
153
|
-
# @
|
154
|
-
# @macro http
|
152
|
+
# @async
|
155
153
|
# @macro edit
|
156
154
|
#
|
157
155
|
# @param [String] name The new username.
|
158
156
|
# @param [Discorb::Image] avatar The new avatar.
|
159
157
|
#
|
160
|
-
|
158
|
+
# @return [Async::Task<void>] The task.
|
159
|
+
#
|
160
|
+
def edit(name: Discorb::Unset, avatar: Discorb::Unset)
|
161
161
|
Async do
|
162
162
|
payload = {}
|
163
|
-
payload[:username] = name unless name ==
|
164
|
-
if avatar ==
|
163
|
+
payload[:username] = name unless name == Discorb::Unset
|
164
|
+
if avatar == Discorb::Unset
|
165
165
|
# Nothing
|
166
166
|
elsif avatar.nil?
|
167
167
|
payload[:avatar] = nil
|
data/lib/discorb/voice_state.rb
CHANGED
@@ -166,19 +166,20 @@ module Discorb
|
|
166
166
|
|
167
167
|
#
|
168
168
|
# Edits the stage instance.
|
169
|
-
# @
|
170
|
-
# @macro http
|
169
|
+
# @async
|
171
170
|
# @macro edit
|
172
171
|
#
|
173
172
|
# @param [String] topic The new topic of the stage instance.
|
174
173
|
# @param [:public, :guild_only] privacy_level The new privacy level of the stage instance.
|
175
174
|
# @param [String] reason The reason for editing the stage instance.
|
176
175
|
#
|
177
|
-
|
176
|
+
# @return [Async::Task<void>] The task.
|
177
|
+
#
|
178
|
+
def edit(topic: Discorb::Unset, privacy_level: Discorb::Unset, reason: nil)
|
178
179
|
Async do
|
179
180
|
payload = {}
|
180
|
-
payload[:topic] = topic if topic !=
|
181
|
-
payload[:privacy_level] = self.class.privacy_level.key(privacy_level) if privacy_level !=
|
181
|
+
payload[:topic] = topic if topic != Discorb::Unset
|
182
|
+
payload[:privacy_level] = self.class.privacy_level.key(privacy_level) if privacy_level != Discorb::Unset
|
182
183
|
@client.http.edit("/stage-instances/#{@channel_id}", payload, audit_log_reason: reason).wait
|
183
184
|
self
|
184
185
|
end
|
@@ -191,6 +192,8 @@ module Discorb
|
|
191
192
|
#
|
192
193
|
# @param [String] reason The reason for deleting the stage instance.
|
193
194
|
#
|
195
|
+
# @return [Async::Task<void>] The task.
|
196
|
+
#
|
194
197
|
def delete!(reason: nil)
|
195
198
|
Async do
|
196
199
|
@client.http.delete("/stage-instances/#{@channel_id}", audit_log_reason: reason).wait
|
data/lib/discorb/webhook.rb
CHANGED
@@ -43,8 +43,7 @@ module Discorb
|
|
43
43
|
|
44
44
|
#
|
45
45
|
# Posts a message to the webhook.
|
46
|
-
# @
|
47
|
-
# @macro http
|
46
|
+
# @async
|
48
47
|
#
|
49
48
|
# @param [String] content The content of the message.
|
50
49
|
# @param [Boolean] tts Whether the message should be sent as text-to-speech.
|
@@ -61,7 +60,7 @@ module Discorb
|
|
61
60
|
# @return [Async::Task<nil>] If `wait` is false.
|
62
61
|
#
|
63
62
|
def post(content = nil, tts: false, embed: nil, embeds: nil, allowed_mentions: nil,
|
64
|
-
file: nil, files: nil, username: nil, avatar_url:
|
63
|
+
file: nil, files: nil, username: nil, avatar_url: Discorb::Unset, wait: true)
|
65
64
|
Async do
|
66
65
|
payload = {}
|
67
66
|
payload[:content] = content if content
|
@@ -74,17 +73,9 @@ module Discorb
|
|
74
73
|
payload[:embeds] = tmp_embed.map(&:to_hash) if tmp_embed
|
75
74
|
payload[:allowed_mentions] = allowed_mentions&.to_hash
|
76
75
|
payload[:username] = username if username
|
77
|
-
payload[:avatar_url] = avatar_url if avatar_url !=
|
78
|
-
files = [file]
|
79
|
-
|
80
|
-
headers, payload = HTTP.multipart(payload, files)
|
81
|
-
else
|
82
|
-
headers = {
|
83
|
-
"Content-Type" => "application/json",
|
84
|
-
}
|
85
|
-
end
|
86
|
-
_resp, data = @http.post("#{url}?wait=#{wait}", payload, headers: headers).wait
|
87
|
-
|
76
|
+
payload[:avatar_url] = avatar_url if avatar_url != Discorb::Unset
|
77
|
+
files = [file]
|
78
|
+
_resp, data = @http.multipart_post("#{url}?wait=#{wait}", files, payload, headers: headers).wait
|
88
79
|
data && Webhook::Message.new(self, data)
|
89
80
|
end
|
90
81
|
end
|
@@ -93,20 +84,21 @@ module Discorb
|
|
93
84
|
|
94
85
|
#
|
95
86
|
# Edits the webhook.
|
96
|
-
# @
|
97
|
-
# @macro http
|
87
|
+
# @async
|
98
88
|
# @macro edit
|
99
89
|
#
|
100
90
|
# @param [String] name The new name of the webhook.
|
101
91
|
# @param [Discorb::Image] avatar The new avatar of the webhook.
|
102
92
|
# @param [Discorb::GuildChannel] channel The new channel of the webhook.
|
103
93
|
#
|
104
|
-
|
94
|
+
# @return [Async::Task<void>] The task.
|
95
|
+
#
|
96
|
+
def edit(name: Discorb::Unset, avatar: Discorb::Unset, channel: Discorb::Unset)
|
105
97
|
Async do
|
106
98
|
payload = {}
|
107
|
-
payload[:name] = name if name !=
|
108
|
-
payload[:avatar] = avatar if avatar !=
|
109
|
-
payload[:channel_id] = Utils.try(channel, :id) if channel !=
|
99
|
+
payload[:name] = name if name != Discorb::Unset
|
100
|
+
payload[:avatar] = avatar if avatar != Discorb::Unset
|
101
|
+
payload[:channel_id] = Utils.try(channel, :id) if channel != Discorb::Unset
|
110
102
|
@http.patch(url.to_s, payload).wait
|
111
103
|
end
|
112
104
|
end
|
@@ -115,8 +107,9 @@ module Discorb
|
|
115
107
|
|
116
108
|
#
|
117
109
|
# Deletes the webhook.
|
118
|
-
# @
|
119
|
-
#
|
110
|
+
# @async
|
111
|
+
#
|
112
|
+
# @return [Async::Task<void>] The task.
|
120
113
|
#
|
121
114
|
def delete!
|
122
115
|
Async do
|
@@ -129,8 +122,7 @@ module Discorb
|
|
129
122
|
|
130
123
|
#
|
131
124
|
# Edits the webhook's message.
|
132
|
-
# @
|
133
|
-
# @macro http
|
125
|
+
# @async
|
134
126
|
# @macro edit
|
135
127
|
#
|
136
128
|
# @param [Discorb::Webhook::Message] message The message to edit.
|
@@ -142,29 +134,24 @@ module Discorb
|
|
142
134
|
# @param [Array<Discorb::File>] files The files to send.
|
143
135
|
# @param [Discorb::AllowedMentions] allowed_mentions The allowed mentions to send.
|
144
136
|
#
|
137
|
+
# @return [Async::Task<void>] The task.
|
138
|
+
#
|
145
139
|
def edit_message(
|
146
|
-
message, content =
|
147
|
-
embed:
|
148
|
-
file:
|
149
|
-
attachments:
|
150
|
-
allowed_mentions:
|
140
|
+
message, content = Discorb::Unset,
|
141
|
+
embed: Discorb::Unset, embeds: Discorb::Unset,
|
142
|
+
file: Discorb::Unset, files: Discorb::Unset,
|
143
|
+
attachments: Discorb::Unset,
|
144
|
+
allowed_mentions: Discorb::Unset
|
151
145
|
)
|
152
146
|
Async do
|
153
147
|
payload = {}
|
154
|
-
payload[:content] = content if content !=
|
155
|
-
payload[:embeds] = embed ? [embed.to_hash] : [] if embed !=
|
156
|
-
payload[:embeds] = embeds.map(&:to_hash) if embeds !=
|
157
|
-
payload[:attachments] = attachments.map(&:to_hash) if attachments !=
|
158
|
-
payload[:allowed_mentions] = allowed_mentions if allowed_mentions !=
|
159
|
-
files = [file] if file !=
|
160
|
-
|
161
|
-
headers = {
|
162
|
-
"Content-Type" => "application/json",
|
163
|
-
}
|
164
|
-
else
|
165
|
-
headers, payload = HTTP.multipart(payload, files)
|
166
|
-
end
|
167
|
-
_resp, data = @http.patch("#{url}/messages/#{Utils.try(message, :id)}", payload, headers: headers).wait
|
148
|
+
payload[:content] = content if content != Discorb::Unset
|
149
|
+
payload[:embeds] = embed ? [embed.to_hash] : [] if embed != Discorb::Unset
|
150
|
+
payload[:embeds] = embeds.map(&:to_hash) if embeds != Discorb::Unset
|
151
|
+
payload[:attachments] = attachments.map(&:to_hash) if attachments != Discorb::Unset
|
152
|
+
payload[:allowed_mentions] = allowed_mentions if allowed_mentions != Discorb::Unset
|
153
|
+
files = [file] if file != Discorb::Unset
|
154
|
+
_resp, data = @http.multipart_patch("#{url}/messages/#{Utils.try(message, :id)}", payload, headers: headers).wait
|
168
155
|
message.send(:_set_data, data)
|
169
156
|
message
|
170
157
|
end
|
@@ -175,6 +162,8 @@ module Discorb
|
|
175
162
|
#
|
176
163
|
# @param [Discorb::Webhook::Message] message The message to delete.
|
177
164
|
#
|
165
|
+
# @return [Async::Task<void>] The task.
|
166
|
+
#
|
178
167
|
def delete_message!(message)
|
179
168
|
Async do
|
180
169
|
@http.delete("#{url}/messages/#{Utils.try(message, :id)}").wait
|
@@ -308,12 +297,13 @@ module Discorb
|
|
308
297
|
|
309
298
|
#
|
310
299
|
# Edits the message.
|
311
|
-
# @
|
312
|
-
# @macro http
|
300
|
+
# @async
|
313
301
|
# @macro edit
|
314
302
|
#
|
315
303
|
# @param (see Webhook#edit_message)
|
316
304
|
#
|
305
|
+
# @return [Async::Task<void>] The task.
|
306
|
+
#
|
317
307
|
def edit(...)
|
318
308
|
Async do
|
319
309
|
@webhook.edit_message(self, ...).wait
|
@@ -322,8 +312,9 @@ module Discorb
|
|
322
312
|
|
323
313
|
#
|
324
314
|
# Deletes the message.
|
325
|
-
# @
|
326
|
-
#
|
315
|
+
# @async
|
316
|
+
#
|
317
|
+
# @return [Async::Task<void>] The task.
|
327
318
|
#
|
328
319
|
def delete!
|
329
320
|
Async do
|
data/lib/discorb.rb
CHANGED
@@ -16,7 +16,7 @@ module Discorb
|
|
16
16
|
# @note You must enable `GUILD_MEMBERS` intent to use this method.
|
17
17
|
#
|
18
18
|
# @!macro edit
|
19
|
-
# @note The arguments of this method are defaultly set to
|
19
|
+
# @note The arguments of this method are defaultly set to `Discorb::Unset`. Specify value to set the value, if not don't specify or specify `Discorb::Unset`.
|
20
20
|
#
|
21
21
|
# @!macro http
|
22
22
|
# @note This method calls HTTP request.
|