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.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build_main.yml +1 -0
  3. data/.github/workflows/build_version.yml +1 -0
  4. data/.github/workflows/crowdin.yml +32 -0
  5. data/.gitignore +3 -1
  6. data/.yardopts +2 -0
  7. data/Changelog.md +399 -388
  8. data/Gemfile +5 -1
  9. data/README.md +1 -1
  10. data/Rakefile +139 -9
  11. data/crowdin.yml +2 -0
  12. data/docs/Examples.md +2 -0
  13. data/docs/application_command.md +7 -5
  14. data/docs/cli/irb.md +2 -0
  15. data/docs/cli/new.md +2 -0
  16. data/docs/cli/run.md +3 -1
  17. data/docs/cli/setup.md +4 -2
  18. data/docs/cli.md +2 -0
  19. data/docs/events.md +6 -4
  20. data/docs/extension.md +2 -2
  21. data/docs/faq.md +4 -2
  22. data/docs/license.md +2 -0
  23. data/docs/tutorial.md +4 -3
  24. data/docs/voice_events.md +2 -0
  25. data/lib/discorb/app_command.rb +8 -7
  26. data/lib/discorb/application.rb +1 -1
  27. data/lib/discorb/channel.rb +100 -76
  28. data/lib/discorb/client.rb +13 -15
  29. data/lib/discorb/common.rb +3 -1
  30. data/lib/discorb/emoji.rb +5 -7
  31. data/lib/discorb/emoji_table.rb +3891 -3891
  32. data/lib/discorb/event.rb +8 -7
  33. data/lib/discorb/exe/show.rb +2 -0
  34. data/lib/discorb/extension.rb +1 -1
  35. data/lib/discorb/flag.rb +1 -1
  36. data/lib/discorb/gateway.rb +9 -13
  37. data/lib/discorb/guild.rb +63 -89
  38. data/lib/discorb/guild_template.rb +12 -9
  39. data/lib/discorb/http.rb +82 -44
  40. data/lib/discorb/integration.rb +3 -0
  41. data/lib/discorb/interaction/response.rb +27 -25
  42. data/lib/discorb/interaction/root.rb +8 -0
  43. data/lib/discorb/invite.rb +3 -2
  44. data/lib/discorb/member.rb +41 -12
  45. data/lib/discorb/message.rb +28 -17
  46. data/lib/discorb/modules.rb +19 -26
  47. data/lib/discorb/role.rb +15 -11
  48. data/lib/discorb/sticker.rb +8 -12
  49. data/lib/discorb/user.rb +7 -7
  50. data/lib/discorb/voice_state.rb +8 -5
  51. data/lib/discorb/webhook.rb +38 -47
  52. data/lib/discorb.rb +1 -1
  53. data/po/yard.pot +7772 -5154
  54. data/sig/discorb.rbs +3316 -3819
  55. data/template-replace/scripts/locale_ja.rb +62 -0
  56. metadata +5 -3
@@ -166,8 +166,7 @@ module Discorb
166
166
 
167
167
  #
168
168
  # Deletes the channel.
169
- # @macro async
170
- # @macro http
169
+ # @async
171
170
  #
172
171
  # @param [String] reason The reason of deleting the channel.
173
172
  #
@@ -186,8 +185,7 @@ module Discorb
186
185
 
187
186
  #
188
187
  # Moves the channel to another position.
189
- # @macro async
190
- # @macro http
188
+ # @async
191
189
  #
192
190
  # @param [Integer] position The position to move the channel.
193
191
  # @param [Boolean] lock_permissions Whether to lock the permissions of the channel.
@@ -196,13 +194,13 @@ module Discorb
196
194
  #
197
195
  # @return [Async::Task<self>] The moved channel.
198
196
  #
199
- def move(position, lock_permissions: false, parent: :unset, reason: nil)
197
+ def move(position, lock_permissions: false, parent: Discorb::Unset, reason: nil)
200
198
  Async do
201
199
  payload = {
202
200
  position: position,
203
201
  }
204
202
  payload[:lock_permissions] = lock_permissions
205
- payload[:parent_id] = parent&.id if parent != :unset
203
+ payload[:parent_id] = parent&.id if parent != Discorb::Unset
206
204
  @client.http.patch("/guilds/#{@guild_id}/channels", payload, audit_log_reason: reason).wait
207
205
  end
208
206
  end
@@ -256,8 +254,7 @@ module Discorb
256
254
 
257
255
  #
258
256
  # Edits the channel.
259
- # @macro async
260
- # @macro http
257
+ # @async
261
258
  # @macro edit
262
259
  #
263
260
  # @param [String] name The name of the channel.
@@ -275,25 +272,25 @@ module Discorb
275
272
  #
276
273
  # @return [Async::Task<self>] The edited channel.
277
274
  #
278
- def edit(name: :unset, position: :unset, category: :unset, parent: :unset,
279
- topic: :unset, nsfw: :unset, announce: :unset,
280
- rate_limit_per_user: :unset, slowmode: :unset, default_auto_archive_duration: :unset,
281
- archive_in: :unset, reason: nil)
275
+ def edit(name: Discorb::Unset, position: Discorb::Unset, category: Discorb::Unset, parent: Discorb::Unset,
276
+ topic: Discorb::Unset, nsfw: Discorb::Unset, announce: Discorb::Unset,
277
+ rate_limit_per_user: Discorb::Unset, slowmode: Discorb::Unset, default_auto_archive_duration: Discorb::Unset,
278
+ archive_in: Discorb::Unset, reason: nil)
282
279
  Async do
283
280
  payload = {}
284
- payload[:name] = name if name != :unset
285
- payload[:announce] = announce ? 5 : 0 if announce != :unset
286
- payload[:position] = position if position != :unset
287
- payload[:topic] = topic || "" if topic != :unset
288
- payload[:nsfw] = nsfw if nsfw != :unset
281
+ payload[:name] = name if name != Discorb::Unset
282
+ payload[:announce] = announce ? 5 : 0 if announce != Discorb::Unset
283
+ payload[:position] = position if position != Discorb::Unset
284
+ payload[:topic] = topic || "" if topic != Discorb::Unset
285
+ payload[:nsfw] = nsfw if nsfw != Discorb::Unset
289
286
 
290
- slowmode = rate_limit_per_user if slowmode == :unset
291
- payload[:rate_limit_per_user] = slowmode || 0 if slowmode != :unset
292
- parent = category if parent == :unset
293
- payload[:parent_id] = parent&.id if parent != :unset
287
+ slowmode = rate_limit_per_user if slowmode == Discorb::Unset
288
+ payload[:rate_limit_per_user] = slowmode || 0 if slowmode != Discorb::Unset
289
+ parent = category if parent == Discorb::Unset
290
+ payload[:parent_id] = parent&.id if parent != Discorb::Unset
294
291
 
295
292
  default_auto_archive_duration ||= archive_in
296
- payload[:default_auto_archive_duration] = default_auto_archive_duration if default_auto_archive_duration != :unset
293
+ payload[:default_auto_archive_duration] = default_auto_archive_duration if default_auto_archive_duration != Discorb::Unset
297
294
 
298
295
  @client.http.patch("/channels/#{@id}", payload, audit_log_reason: reason).wait
299
296
  self
@@ -304,8 +301,7 @@ module Discorb
304
301
 
305
302
  #
306
303
  # Create webhook in the channel.
307
- # @macro async
308
- # @macro http
304
+ # @async
309
305
  #
310
306
  # @param [String] name The name of the webhook.
311
307
  # @param [Discorb::Image] avatar The avatar of the webhook.
@@ -324,8 +320,7 @@ module Discorb
324
320
 
325
321
  #
326
322
  # Fetch webhooks in the channel.
327
- # @macro async
328
- # @macro http
323
+ # @async
329
324
  #
330
325
  # @return [Async::Task<Array<Discorb::Webhook>>] The webhooks in the channel.
331
326
  #
@@ -338,12 +333,13 @@ module Discorb
338
333
 
339
334
  #
340
335
  # Bulk delete messages in the channel.
341
- # @macro async
342
- # @macro http
336
+ # @async
343
337
  #
344
338
  # @param [Discorb::Message] messages The messages to delete.
345
339
  # @param [Boolean] force Whether to ignore the validation for message (14 days limit).
346
340
  #
341
+ # @return [Async::Task<void>] The task.
342
+ #
347
343
  def delete_messages!(*messages, force: false)
348
344
  Async do
349
345
  messages = messages.first if messages.length == 1 && messages.first.is_a?(Array)
@@ -367,12 +363,13 @@ module Discorb
367
363
 
368
364
  #
369
365
  # Set the channel's permission overwrite.
370
- # @macro async
371
- # @macro http
366
+ # @async
372
367
  #
373
368
  # @param [Discorb::Role, Discorb::Member] target The target of the overwrite.
374
369
  # @param [String] reason The reason of setting the overwrite.
375
- # @param [Symbol => Boolean] perms The permission overwrites to replace.
370
+ # @param [{Symbol => Boolean}] perms The permission overwrites to replace.
371
+ #
372
+ # @return [Async::Task<void>] The task.
376
373
  #
377
374
  def set_permissions(target, reason: nil, **perms)
378
375
  Async do
@@ -398,12 +395,13 @@ module Discorb
398
395
 
399
396
  #
400
397
  # Delete the channel's permission overwrite.
401
- # @macro async
402
- # @macro http
398
+ # @async
403
399
  #
404
400
  # @param [Discorb::Role, Discorb::Member] target The target of the overwrite.
405
401
  # @param [String] reason The reason of deleting the overwrite.
406
402
  #
403
+ # @return [Async::Task<void>] The task.
404
+ #
407
405
  def delete_permissions(target, reason: nil)
408
406
  Async do
409
407
  @client.http.delete("/channels/#{@id}/permissions/#{target.id}", audit_log_reason: reason).wait
@@ -416,8 +414,7 @@ module Discorb
416
414
 
417
415
  #
418
416
  # Fetch the channel's invites.
419
- # @macro async
420
- # @macro http
417
+ # @async
421
418
  #
422
419
  # @return [Async::Task<Array<Discorb::Invite>>] The invites in the channel.
423
420
  #
@@ -430,8 +427,7 @@ module Discorb
430
427
 
431
428
  #
432
429
  # Create an invite in the channel.
433
- # @macro async
434
- # @macro http
430
+ # @async
435
431
  #
436
432
  # @param [Integer] max_age The max age of the invite.
437
433
  # @param [Integer] max_uses The max uses of the invite.
@@ -456,12 +452,13 @@ module Discorb
456
452
 
457
453
  #
458
454
  # Follow the existing announcement channel.
459
- # @macro async
460
- # @macro http
455
+ # @async
461
456
  #
462
457
  # @param [Discorb::NewsChannel] target The channel to follow.
463
458
  # @param [String] reason The reason of following the channel.
464
459
  #
460
+ # @return [Async::Task<void>] The task.
461
+ #
465
462
  def follow_from(target, reason: nil)
466
463
  Async do
467
464
  @client.http.post("/channels/#{target.id}/followers", { webhook_channel_id: @id }, audit_log_reason: reason).wait
@@ -470,12 +467,13 @@ module Discorb
470
467
 
471
468
  #
472
469
  # Follow the existing announcement channel from self.
473
- # @macro async
474
- # @macro http
470
+ # @async
475
471
  #
476
472
  # @param [Discorb::TextChannel] target The channel to follow to.
477
473
  # @param [String] reason The reason of following the channel.
478
474
  #
475
+ # @return [Async::Task<void>] The task.
476
+ #
479
477
  def follow_to(target, reason: nil)
480
478
  Async do
481
479
  @client.http.post("/channels/#{@id}/followers", { webhook_channel_id: target.id }, audit_log_reason: reason).wait
@@ -484,8 +482,7 @@ module Discorb
484
482
 
485
483
  #
486
484
  # Start thread in the channel.
487
- # @macro async
488
- # @macro http
485
+ # @async
489
486
  #
490
487
  # @param [String] name The name of the thread.
491
488
  # @param [Discorb::Message] message The message to start the thread.
@@ -522,8 +519,7 @@ module Discorb
522
519
 
523
520
  #
524
521
  # Fetch archived threads in the channel.
525
- # @macro async
526
- # @macro http
522
+ # @async
527
523
  #
528
524
  # @return [Async::Task<Array<Discorb::ThreadChannel>>] The archived threads in the channel.
529
525
  #
@@ -536,8 +532,7 @@ module Discorb
536
532
 
537
533
  #
538
534
  # Fetch archived private threads in the channel.
539
- # @macro async
540
- # @macro http
535
+ # @async
541
536
  #
542
537
  # @return [Async::Task<Array<Discorb::ThreadChannel>>] The archived private threads in the channel.
543
538
  #
@@ -550,8 +545,7 @@ module Discorb
550
545
 
551
546
  #
552
547
  # Fetch joined archived private threads in the channel.
553
- # @macro async
554
- # @macro http
548
+ # @async
555
549
  #
556
550
  # @param [Integer] limit The limit of threads to fetch.
557
551
  # @param [Time] before <description>
@@ -614,8 +608,7 @@ module Discorb
614
608
  @channel_type = 2
615
609
  #
616
610
  # Edit the voice channel.
617
- # @macro async
618
- # @macro http
611
+ # @async
619
612
  # @macro edit
620
613
  #
621
614
  # @param [String] name The name of the voice channel.
@@ -627,14 +620,14 @@ module Discorb
627
620
  #
628
621
  # @return [Async::Task<self>] The edited voice channel.
629
622
  #
630
- def edit(name: :unset, position: :unset, bitrate: :unset, user_limit: :unset, rtc_region: :unset, reason: nil)
623
+ def edit(name: Discorb::Unset, position: Discorb::Unset, bitrate: Discorb::Unset, user_limit: Discorb::Unset, rtc_region: Discorb::Unset, reason: nil)
631
624
  Async do
632
625
  payload = {}
633
- payload[:name] = name if name != :unset
634
- payload[:position] = position if position != :unset
635
- payload[:bitrate] = bitrate if bitrate != :unset
636
- payload[:user_limit] = user_limit if user_limit != :unset
637
- payload[:rtc_region] = rtc_region if rtc_region != :unset
626
+ payload[:name] = name if name != Discorb::Unset
627
+ payload[:position] = position if position != Discorb::Unset
628
+ payload[:bitrate] = bitrate if bitrate != Discorb::Unset
629
+ payload[:user_limit] = user_limit if user_limit != Discorb::Unset
630
+ payload[:rtc_region] = rtc_region if rtc_region != Discorb::Unset
638
631
 
639
632
  @client.http.patch("/channels/#{@id}", payload, audit_log_reason: reason).wait
640
633
  self
@@ -683,8 +676,7 @@ module Discorb
683
676
 
684
677
  #
685
678
  # Edit the stage channel.
686
- # @macro async
687
- # @macro http
679
+ # @async
688
680
  # @macro edit
689
681
  #
690
682
  # @param [String] name The name of the stage channel.
@@ -695,13 +687,13 @@ module Discorb
695
687
  #
696
688
  # @return [Async::Task<self>] The edited stage channel.
697
689
  #
698
- def edit(name: :unset, position: :unset, bitrate: :unset, rtc_region: :unset, reason: nil)
690
+ def edit(name: Discorb::Unset, position: Discorb::Unset, bitrate: Discorb::Unset, rtc_region: Discorb::Unset, reason: nil)
699
691
  Async do
700
692
  payload = {}
701
- payload[:name] = name if name != :unset
702
- payload[:position] = position if position != :unset
703
- payload[:bitrate] = bitrate if bitrate != :unset
704
- payload[:rtc_region] = rtc_region if rtc_region != :unset
693
+ payload[:name] = name if name != Discorb::Unset
694
+ payload[:position] = position if position != Discorb::Unset
695
+ payload[:bitrate] = bitrate if bitrate != Discorb::Unset
696
+ payload[:rtc_region] = rtc_region if rtc_region != Discorb::Unset
705
697
  @client.http.patch("/channels/#{@id}", payload, audit_log_reason: reason).wait
706
698
  self
707
699
  end
@@ -711,8 +703,7 @@ module Discorb
711
703
 
712
704
  #
713
705
  # Start a stage instance.
714
- # @macro async
715
- # @macro http
706
+ # @async
716
707
  #
717
708
  # @param [String] topic The topic of the stage instance.
718
709
  # @param [Boolean] public Whether the stage instance is public or not.
@@ -729,8 +720,7 @@ module Discorb
729
720
 
730
721
  #
731
722
  # Fetch a current stage instance.
732
- # @macro async
733
- # @macro http
723
+ # @async
734
724
  #
735
725
  # @return [Async::Task<StageInstance>] The current stage instance.
736
726
  # @return [Async::Task<nil>] If there is no current stage instance.
@@ -792,6 +782,19 @@ module Discorb
792
782
  # @!attribute [r] parent
793
783
  # @macro client_cache
794
784
  # @return [Discorb::GuildChannel] The parent channel of the thread.
785
+ # @!attribute [r] me
786
+ # @return [Discorb::ThreadChannel::Member] The bot's member in the thread.
787
+ # @return [nil] If the bot is not in the thread.
788
+ # @!attribute [r] joined?
789
+ # @return [Boolean] Whether the bot is in the thread or not.
790
+ # @!attribute [r] guild
791
+ # @macro client_cache
792
+ # @return [Discorb::Guild] The guild of the thread.
793
+ # @!attribute [r] owner
794
+ # @macro client_cache
795
+ # @macro members_intent
796
+ # @return [Discorb::Member] The owner of the thread.
797
+
795
798
 
796
799
  include Messageable
797
800
  @channel_type = nil
@@ -807,8 +810,7 @@ module Discorb
807
810
 
808
811
  #
809
812
  # Edit the thread.
810
- # @macro async
811
- # @macro http
813
+ # @async
812
814
  # @macro edit
813
815
  #
814
816
  # @param [String] name The name of the thread.
@@ -825,14 +827,14 @@ module Discorb
825
827
  # @see #unarchive
826
828
  # @see #unlock
827
829
  #
828
- def edit(name: :unset, archived: :unset, auto_archive_duration: :unset, archive_in: :unset, locked: :unset, reason: nil)
830
+ def edit(name: Discorb::Unset, archived: Discorb::Unset, auto_archive_duration: Discorb::Unset, archive_in: Discorb::Unset, locked: Discorb::Unset, reason: nil)
829
831
  Async do
830
832
  payload = {}
831
- payload[:name] = name if name != :unset
832
- payload[:archived] = archived if archived != :unset
833
+ payload[:name] = name if name != Discorb::Unset
834
+ payload[:archived] = archived if archived != Discorb::Unset
833
835
  auto_archive_duration ||= archive_in
834
- payload[:auto_archive_duration] = auto_archive_duration if auto_archive_duration != :unset
835
- payload[:locked] = locked if locked != :unset
836
+ payload[:auto_archive_duration] = auto_archive_duration if auto_archive_duration != Discorb::Unset
837
+ payload[:locked] = locked if locked != Discorb::Unset
836
838
  @client.http.patch("/channels/#{@id}", payload, audit_log_reason: reason).wait
837
839
  self
838
840
  end
@@ -897,7 +899,7 @@ module Discorb
897
899
  end
898
900
 
899
901
  def joined?
900
- @members[@client.user.id]
902
+ !!me
901
903
  end
902
904
 
903
905
  def guild
@@ -912,6 +914,13 @@ module Discorb
912
914
  "#<#{self.class} \"##{@name}\" id=#{@id}>"
913
915
  end
914
916
 
917
+ #
918
+ # Add a member to the thread.
919
+ #
920
+ # @param [Discorb::Member, :me] member The member to add. If `:me` is given, the bot will be added.
921
+ #
922
+ # @return [Async::Task<void>] The task.
923
+ #
915
924
  def add_member(member = :me)
916
925
  Async do
917
926
  if member == :me
@@ -924,6 +933,13 @@ module Discorb
924
933
 
925
934
  alias join add_member
926
935
 
936
+ #
937
+ # Remove a member from the thread.
938
+ #
939
+ # @param [Discorb::Member, :me] member The member to remove. If `:me` is given, the bot will be removed.
940
+ #
941
+ # @return [Async::Task<void>] The task.
942
+ #
927
943
  def remove_member(member = :me)
928
944
  Async do
929
945
  if member == :me
@@ -936,6 +952,11 @@ module Discorb
936
952
 
937
953
  alias leave remove_member
938
954
 
955
+ #
956
+ # Fetch members in the thread.
957
+ #
958
+ # @return [Array<Discorb::ThreadChannel::Member>] The members in the thread.
959
+ #
939
960
  def fetch_members
940
961
  Async do
941
962
  _resp, data = @client.http.get("/channels/#{@id}/thread-members").wait
@@ -959,6 +980,9 @@ module Discorb
959
980
  attr_reader :channel_type
960
981
  end
961
982
 
983
+ #
984
+ # Repre
985
+ #
962
986
  class Member < DiscordModel
963
987
  attr_reader :joined_at
964
988
 
@@ -105,7 +105,7 @@ module Discorb
105
105
 
106
106
  #
107
107
  # Registers an event handler.
108
- # @see file:docs/Events.md
108
+ # @see file:docs/Events.md Events Documentation
109
109
  #
110
110
  # @param [Symbol] event_name The name of the event.
111
111
  # @param [Symbol] id Custom ID of the event.
@@ -146,10 +146,13 @@ module Discorb
146
146
 
147
147
  #
148
148
  # Dispatch an event.
149
+ # @async
149
150
  #
150
151
  # @param [Symbol] event_name The name of the event.
151
152
  # @param [Object] args The arguments to pass to the event.
152
153
  #
154
+ # @return [Async::Task<void>] The task.
155
+ #
153
156
  def dispatch(event_name, *args)
154
157
  Async do
155
158
  if (conditions = @conditions[event_name])
@@ -199,8 +202,7 @@ module Discorb
199
202
 
200
203
  #
201
204
  # Fetch user from ID.
202
- # @macro async
203
- # @macro http
205
+ # @async
204
206
  #
205
207
  # @param [#to_s] id <description>
206
208
  #
@@ -217,8 +219,7 @@ module Discorb
217
219
 
218
220
  #
219
221
  # Fetch channel from ID.
220
- # @macro async
221
- # @macro http
222
+ # @async
222
223
  #
223
224
  # @param [#to_s] id The ID of the channel.
224
225
  #
@@ -235,8 +236,7 @@ module Discorb
235
236
 
236
237
  #
237
238
  # Fetch guild from ID.
238
- # @macro async
239
- # @macro http
239
+ # @async
240
240
  #
241
241
  # @param [#to_s] id <description>
242
242
  #
@@ -253,8 +253,7 @@ module Discorb
253
253
 
254
254
  #
255
255
  # Fetch invite from code.
256
- # @macro async
257
- # @macro http
256
+ # @async
258
257
  #
259
258
  # @param [String] code The code of the invite.
260
259
  # @param [Boolean] with_count Whether to include the count of the invite.
@@ -272,8 +271,7 @@ module Discorb
272
271
  #
273
272
  # Fetch webhook from ID.
274
273
  # If application was cached, it will be used.
275
- # @macro async
276
- # @macro http
274
+ # @async
277
275
  #
278
276
  # @param [Boolean] force Whether to force the fetch.
279
277
  #
@@ -291,8 +289,7 @@ module Discorb
291
289
 
292
290
  #
293
291
  # Fetch nitro sticker pack from ID.
294
- # @macro async
295
- # @macro http
292
+ # @async
296
293
  #
297
294
  # @return [Async::Task<Array<Discorb::Sticker::Pack>>] The packs.
298
295
  #
@@ -334,12 +331,13 @@ module Discorb
334
331
 
335
332
  #
336
333
  # Method to wait for a event.
334
+ # @async
337
335
  #
338
336
  # @param [Symbol] event The name of the event.
339
337
  # @param [Integer] timeout The timeout in seconds.
340
338
  # @param [Proc] check The check to use.
341
339
  #
342
- # @return [Object] The result of the event.
340
+ # @return [Async::Task<Object>] The result of the event.
343
341
  #
344
342
  # @raise [Discorb::TimeoutError] If the event didn't occur in time.
345
343
  #
@@ -416,7 +414,7 @@ module Discorb
416
414
  #
417
415
  # Starts the client.
418
416
  # @note This method behavior will change by CLI.
419
- # @see file:docs/cli.md
417
+ # @see file:docs/cli.md CLI documentation
420
418
  #
421
419
  # @param [String, nil] token The token to use.
422
420
  #
@@ -4,7 +4,7 @@ module Discorb
4
4
  # @return [String] The API base URL.
5
5
  API_BASE_URL = "https://discord.com/api/v9"
6
6
  # @return [String] The version of discorb.
7
- VERSION = "0.13.0"
7
+ VERSION = "0.13.1"
8
8
  # @return [String] The user agent for the bot.
9
9
  USER_AGENT = "DiscordBot (https://discorb-lib.github.io #{VERSION}) Ruby/#{RUBY_VERSION}"
10
10
 
@@ -117,6 +117,8 @@ module Discorb
117
117
  alias id to_s
118
118
  end
119
119
 
120
+ # @return [Object] Object that represents nil.
121
+ # This is used as a default value for optional parameters.
120
122
  Unset = Object.new
121
123
  class << Unset
122
124
  def method_missing(*)
data/lib/discorb/emoji.rb CHANGED
@@ -82,8 +82,7 @@ module Discorb
82
82
 
83
83
  #
84
84
  # Edit the emoji.
85
- # @macro async
86
- # @macro http
85
+ # @async
87
86
  # @macro edit
88
87
  #
89
88
  # @param [String] name The new name of the emoji.
@@ -92,11 +91,11 @@ module Discorb
92
91
  #
93
92
  # @return [Async::Task<self>] The edited emoji.
94
93
  #
95
- def edit(name: :unset, roles: :unset, reason: nil)
94
+ def edit(name: Discorb::Unset, roles: Discorb::Unset, reason: nil)
96
95
  Async do
97
96
  payload = {}
98
- payload[:name] = name if name != :unset
99
- payload[:roles] = roles.map { |r| Discorb::Utils.try(r, :id) } if roles != :unset
97
+ payload[:name] = name if name != Discorb::Unset
98
+ payload[:roles] = roles.map { |r| Discorb::Utils.try(r, :id) } if roles != Discorb::Unset
100
99
  @client.http.patch("/guilds/#{@guild.id}/emojis/#{@id}", payload, audit_log_reason: reason)
101
100
  self
102
101
  end
@@ -106,8 +105,7 @@ module Discorb
106
105
 
107
106
  #
108
107
  # Delete the emoji.
109
- # @macro async
110
- # @macro http
108
+ # @async
111
109
  #
112
110
  # @param [String] reason The reason for deleting the emoji.
113
111
  #