discordrb 3.3.0 → 3.4.3
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/.circleci/config.yml +126 -0
 - data/.github/ISSUE_TEMPLATE/bug_report.md +39 -0
 - data/.github/ISSUE_TEMPLATE/feature_request.md +25 -0
 - data/.github/pull_request_template.md +37 -0
 - data/.rubocop.yml +34 -37
 - data/.travis.yml +5 -6
 - data/CHANGELOG.md +504 -347
 - data/Gemfile +2 -0
 - data/LICENSE.txt +1 -1
 - data/README.md +61 -79
 - data/Rakefile +2 -0
 - data/bin/console +1 -0
 - data/discordrb-webhooks.gemspec +6 -6
 - data/discordrb.gemspec +18 -18
 - data/lib/discordrb/allowed_mentions.rb +36 -0
 - data/lib/discordrb/api/channel.rb +62 -39
 - data/lib/discordrb/api/invite.rb +3 -3
 - data/lib/discordrb/api/server.rb +57 -50
 - data/lib/discordrb/api/user.rb +9 -8
 - data/lib/discordrb/api/webhook.rb +6 -6
 - data/lib/discordrb/api.rb +40 -15
 - data/lib/discordrb/await.rb +0 -1
 - data/lib/discordrb/bot.rb +175 -73
 - data/lib/discordrb/cache.rb +4 -2
 - data/lib/discordrb/colour_rgb.rb +43 -0
 - data/lib/discordrb/commands/command_bot.rb +30 -9
 - data/lib/discordrb/commands/container.rb +20 -23
 - data/lib/discordrb/commands/parser.rb +18 -18
 - data/lib/discordrb/commands/rate_limiter.rb +3 -2
 - data/lib/discordrb/container.rb +77 -17
 - data/lib/discordrb/data/activity.rb +271 -0
 - data/lib/discordrb/data/application.rb +50 -0
 - data/lib/discordrb/data/attachment.rb +56 -0
 - data/lib/discordrb/data/audit_logs.rb +345 -0
 - data/lib/discordrb/data/channel.rb +849 -0
 - data/lib/discordrb/data/embed.rb +251 -0
 - data/lib/discordrb/data/emoji.rb +82 -0
 - data/lib/discordrb/data/integration.rb +83 -0
 - data/lib/discordrb/data/invite.rb +137 -0
 - data/lib/discordrb/data/member.rb +297 -0
 - data/lib/discordrb/data/message.rb +334 -0
 - data/lib/discordrb/data/overwrite.rb +102 -0
 - data/lib/discordrb/data/profile.rb +91 -0
 - data/lib/discordrb/data/reaction.rb +33 -0
 - data/lib/discordrb/data/recipient.rb +34 -0
 - data/lib/discordrb/data/role.rb +191 -0
 - data/lib/discordrb/data/server.rb +1002 -0
 - data/lib/discordrb/data/user.rb +204 -0
 - data/lib/discordrb/data/voice_region.rb +45 -0
 - data/lib/discordrb/data/voice_state.rb +41 -0
 - data/lib/discordrb/data/webhook.rb +145 -0
 - data/lib/discordrb/data.rb +25 -4180
 - data/lib/discordrb/errors.rb +2 -1
 - data/lib/discordrb/events/bans.rb +7 -5
 - data/lib/discordrb/events/channels.rb +2 -0
 - data/lib/discordrb/events/guilds.rb +16 -9
 - data/lib/discordrb/events/invites.rb +125 -0
 - data/lib/discordrb/events/members.rb +6 -2
 - data/lib/discordrb/events/message.rb +69 -27
 - data/lib/discordrb/events/presence.rb +14 -4
 - data/lib/discordrb/events/raw.rb +1 -3
 - data/lib/discordrb/events/reactions.rb +49 -3
 - data/lib/discordrb/events/typing.rb +6 -4
 - data/lib/discordrb/events/voice_server_update.rb +47 -0
 - data/lib/discordrb/events/voice_state_update.rb +15 -10
 - data/lib/discordrb/events/webhooks.rb +9 -6
 - data/lib/discordrb/gateway.rb +72 -57
 - data/lib/discordrb/id_object.rb +39 -0
 - data/lib/discordrb/light/integrations.rb +1 -1
 - data/lib/discordrb/light/light_bot.rb +1 -1
 - data/lib/discordrb/logger.rb +4 -4
 - data/lib/discordrb/paginator.rb +57 -0
 - data/lib/discordrb/permissions.rb +103 -8
 - data/lib/discordrb/version.rb +1 -1
 - data/lib/discordrb/voice/encoder.rb +16 -7
 - data/lib/discordrb/voice/network.rb +84 -43
 - data/lib/discordrb/voice/sodium.rb +96 -0
 - data/lib/discordrb/voice/voice_bot.rb +34 -26
 - data/lib/discordrb.rb +73 -0
 - metadata +98 -60
 - /data/{CONTRIBUTING.md → .github/CONTRIBUTING.md} +0 -0
 
| 
         @@ -5,7 +5,7 @@ module Discordrb::API::Channel 
     | 
|
| 
       5 
5 
     | 
    
         
             
              module_function
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
              # Get a channel's data
         
     | 
| 
       8 
     | 
    
         
            -
              # https:// 
     | 
| 
      
 8 
     | 
    
         
            +
              # https://discord.com/developers/docs/resources/channel#get-channel
         
     | 
| 
       9 
9 
     | 
    
         
             
              def resolve(token, channel_id)
         
     | 
| 
       10 
10 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       11 
11 
     | 
    
         
             
                  :channels_cid,
         
     | 
| 
         @@ -17,7 +17,7 @@ module Discordrb::API::Channel 
     | 
|
| 
       17 
17 
     | 
    
         
             
              end
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
              # Update a channel's data
         
     | 
| 
       20 
     | 
    
         
            -
              # https:// 
     | 
| 
      
 20 
     | 
    
         
            +
              # https://discord.com/developers/docs/resources/channel#modify-channel
         
     | 
| 
       21 
21 
     | 
    
         
             
              def update(token, channel_id, name, topic, position, bitrate, user_limit, nsfw, permission_overwrites = nil, parent_id = nil, rate_limit_per_user = nil, reason = nil)
         
     | 
| 
       22 
22 
     | 
    
         
             
                data = { name: name, position: position, topic: topic, bitrate: bitrate, user_limit: user_limit, nsfw: nsfw, parent_id: parent_id, rate_limit_per_user: rate_limit_per_user }
         
     | 
| 
       23 
23 
     | 
    
         
             
                data[:permission_overwrites] = permission_overwrites unless permission_overwrites.nil?
         
     | 
| 
         @@ -34,7 +34,7 @@ module Discordrb::API::Channel 
     | 
|
| 
       34 
34 
     | 
    
         
             
              end
         
     | 
| 
       35 
35 
     | 
    
         | 
| 
       36 
36 
     | 
    
         
             
              # Delete a channel
         
     | 
| 
       37 
     | 
    
         
            -
              # https:// 
     | 
| 
      
 37 
     | 
    
         
            +
              # https://discord.com/developers/docs/resources/channel#deleteclose-channel
         
     | 
| 
       38 
38 
     | 
    
         
             
              def delete(token, channel_id, reason = nil)
         
     | 
| 
       39 
39 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       40 
40 
     | 
    
         
             
                  :channels_cid,
         
     | 
| 
         @@ -47,7 +47,7 @@ module Discordrb::API::Channel 
     | 
|
| 
       47 
47 
     | 
    
         
             
              end
         
     | 
| 
       48 
48 
     | 
    
         | 
| 
       49 
49 
     | 
    
         
             
              # Get a list of messages from a channel's history
         
     | 
| 
       50 
     | 
    
         
            -
              # https:// 
     | 
| 
      
 50 
     | 
    
         
            +
              # https://discord.com/developers/docs/resources/channel#get-channel-messages
         
     | 
| 
       51 
51 
     | 
    
         
             
              def messages(token, channel_id, amount, before = nil, after = nil, around = nil)
         
     | 
| 
       52 
52 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       53 
53 
     | 
    
         
             
                  :channels_cid_messages,
         
     | 
| 
         @@ -59,7 +59,7 @@ module Discordrb::API::Channel 
     | 
|
| 
       59 
59 
     | 
    
         
             
              end
         
     | 
| 
       60 
60 
     | 
    
         | 
| 
       61 
61 
     | 
    
         
             
              # Get a single message from a channel's history by id
         
     | 
| 
       62 
     | 
    
         
            -
              # https:// 
     | 
| 
      
 62 
     | 
    
         
            +
              # https://discord.com/developers/docs/resources/channel#get-channel-message
         
     | 
| 
       63 
63 
     | 
    
         
             
              def message(token, channel_id, message_id)
         
     | 
| 
       64 
64 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       65 
65 
     | 
    
         
             
                  :channels_cid_messages_mid,
         
     | 
| 
         @@ -72,24 +72,37 @@ module Discordrb::API::Channel 
     | 
|
| 
       72 
72 
     | 
    
         | 
| 
       73 
73 
     | 
    
         
             
              # Send a message to a channel
         
     | 
| 
       74 
74 
     | 
    
         
             
              # https://discordapp.com/developers/docs/resources/channel#create-message
         
     | 
| 
       75 
     | 
    
         
            -
               
     | 
| 
      
 75 
     | 
    
         
            +
              # @param attachments [Array<File>, nil] Attachments to use with `attachment://` in embeds. See
         
     | 
| 
      
 76 
     | 
    
         
            +
              #   https://discord.com/developers/docs/resources/channel#create-message-using-attachments-within-embeds
         
     | 
| 
      
 77 
     | 
    
         
            +
              def create_message(token, channel_id, message, tts = false, embed = nil, nonce = nil, attachments = nil, allowed_mentions = nil, message_reference = nil)
         
     | 
| 
      
 78 
     | 
    
         
            +
                body = { content: message, tts: tts, embed: embed, nonce: nonce, allowed_mentions: allowed_mentions, message_reference: message_reference }
         
     | 
| 
      
 79 
     | 
    
         
            +
                body = if attachments
         
     | 
| 
      
 80 
     | 
    
         
            +
                         files = [*0...attachments.size].zip(attachments).to_h
         
     | 
| 
      
 81 
     | 
    
         
            +
                         { **files, payload_json: body.to_json }
         
     | 
| 
      
 82 
     | 
    
         
            +
                       else
         
     | 
| 
      
 83 
     | 
    
         
            +
                         body.to_json
         
     | 
| 
      
 84 
     | 
    
         
            +
                       end
         
     | 
| 
      
 85 
     | 
    
         
            +
             
     | 
| 
      
 86 
     | 
    
         
            +
                headers = { Authorization: token }
         
     | 
| 
      
 87 
     | 
    
         
            +
                headers[:content_type] = :json unless attachments
         
     | 
| 
      
 88 
     | 
    
         
            +
             
     | 
| 
       76 
89 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       77 
90 
     | 
    
         
             
                  :channels_cid_messages_mid,
         
     | 
| 
       78 
91 
     | 
    
         
             
                  channel_id,
         
     | 
| 
       79 
92 
     | 
    
         
             
                  :post,
         
     | 
| 
       80 
93 
     | 
    
         
             
                  "#{Discordrb::API.api_base}/channels/#{channel_id}/messages",
         
     | 
| 
       81 
     | 
    
         
            -
                   
     | 
| 
       82 
     | 
    
         
            -
                   
     | 
| 
       83 
     | 
    
         
            -
                  content_type: :json
         
     | 
| 
      
 94 
     | 
    
         
            +
                  body,
         
     | 
| 
      
 95 
     | 
    
         
            +
                  **headers
         
     | 
| 
       84 
96 
     | 
    
         
             
                )
         
     | 
| 
       85 
97 
     | 
    
         
             
              rescue RestClient::BadRequest => e
         
     | 
| 
       86 
98 
     | 
    
         
             
                parsed = JSON.parse(e.response.body)
         
     | 
| 
       87 
     | 
    
         
            -
                raise Discordrb::Errors::MessageTooLong, "Message over the character limit (#{message.length} > 2000)" if parsed['content'] 
     | 
| 
      
 99 
     | 
    
         
            +
                raise Discordrb::Errors::MessageTooLong, "Message over the character limit (#{message.length} > 2000)" if parsed['content'].is_a?(Array) && parsed['content'].first == 'Must be 2000 or fewer in length.'
         
     | 
| 
      
 100 
     | 
    
         
            +
             
     | 
| 
       88 
101 
     | 
    
         
             
                raise
         
     | 
| 
       89 
102 
     | 
    
         
             
              end
         
     | 
| 
       90 
103 
     | 
    
         | 
| 
       91 
104 
     | 
    
         
             
              # Send a file as a message to a channel
         
     | 
| 
       92 
     | 
    
         
            -
              # https:// 
     | 
| 
      
 105 
     | 
    
         
            +
              # https://discord.com/developers/docs/resources/channel#upload-file
         
     | 
| 
       93 
106 
     | 
    
         
             
              def upload_file(token, channel_id, file, caption: nil, tts: false)
         
     | 
| 
       94 
107 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       95 
108 
     | 
    
         
             
                  :channels_cid_messages_mid,
         
     | 
| 
         @@ -102,7 +115,7 @@ module Discordrb::API::Channel 
     | 
|
| 
       102 
115 
     | 
    
         
             
              end
         
     | 
| 
       103 
116 
     | 
    
         | 
| 
       104 
117 
     | 
    
         
             
              # Edit a message
         
     | 
| 
       105 
     | 
    
         
            -
              # https:// 
     | 
| 
      
 118 
     | 
    
         
            +
              # https://discord.com/developers/docs/resources/channel#edit-message
         
     | 
| 
       106 
119 
     | 
    
         
             
              def edit_message(token, channel_id, message_id, message, mentions = [], embed = nil)
         
     | 
| 
       107 
120 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       108 
121 
     | 
    
         
             
                  :channels_cid_messages_mid,
         
     | 
| 
         @@ -117,19 +130,20 @@ module Discordrb::API::Channel 
     | 
|
| 
       117 
130 
     | 
    
         | 
| 
       118 
131 
     | 
    
         
             
              # Delete a message
         
     | 
| 
       119 
132 
     | 
    
         
             
              # https://discordapp.com/developers/docs/resources/channel#delete-message
         
     | 
| 
       120 
     | 
    
         
            -
              def delete_message(token, channel_id, message_id)
         
     | 
| 
      
 133 
     | 
    
         
            +
              def delete_message(token, channel_id, message_id, reason = nil)
         
     | 
| 
       121 
134 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       122 
135 
     | 
    
         
             
                  :channels_cid_messages_mid,
         
     | 
| 
       123 
136 
     | 
    
         
             
                  channel_id,
         
     | 
| 
       124 
137 
     | 
    
         
             
                  :delete,
         
     | 
| 
       125 
138 
     | 
    
         
             
                  "#{Discordrb::API.api_base}/channels/#{channel_id}/messages/#{message_id}",
         
     | 
| 
       126 
     | 
    
         
            -
                  Authorization: token
         
     | 
| 
      
 139 
     | 
    
         
            +
                  Authorization: token,
         
     | 
| 
      
 140 
     | 
    
         
            +
                  'X-Audit-Log-Reason': reason
         
     | 
| 
       127 
141 
     | 
    
         
             
                )
         
     | 
| 
       128 
142 
     | 
    
         
             
              end
         
     | 
| 
       129 
143 
     | 
    
         | 
| 
       130 
144 
     | 
    
         
             
              # Delete messages in bulk
         
     | 
| 
       131 
145 
     | 
    
         
             
              # https://discordapp.com/developers/docs/resources/channel#bulk-delete-messages
         
     | 
| 
       132 
     | 
    
         
            -
              def bulk_delete_messages(token, channel_id, messages = [])
         
     | 
| 
      
 146 
     | 
    
         
            +
              def bulk_delete_messages(token, channel_id, messages = [], reason = nil)
         
     | 
| 
       133 
147 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       134 
148 
     | 
    
         
             
                  :channels_cid_messages_bulk_delete,
         
     | 
| 
       135 
149 
     | 
    
         
             
                  channel_id,
         
     | 
| 
         @@ -137,14 +151,15 @@ module Discordrb::API::Channel 
     | 
|
| 
       137 
151 
     | 
    
         
             
                  "#{Discordrb::API.api_base}/channels/#{channel_id}/messages/bulk-delete",
         
     | 
| 
       138 
152 
     | 
    
         
             
                  { messages: messages }.to_json,
         
     | 
| 
       139 
153 
     | 
    
         
             
                  Authorization: token,
         
     | 
| 
       140 
     | 
    
         
            -
                  content_type: :json
         
     | 
| 
      
 154 
     | 
    
         
            +
                  content_type: :json,
         
     | 
| 
      
 155 
     | 
    
         
            +
                  'X-Audit-Log-Reason': reason
         
     | 
| 
       141 
156 
     | 
    
         
             
                )
         
     | 
| 
       142 
157 
     | 
    
         
             
              end
         
     | 
| 
       143 
158 
     | 
    
         | 
| 
       144 
159 
     | 
    
         
             
              # Create a reaction on a message using this client
         
     | 
| 
       145 
     | 
    
         
            -
              # https:// 
     | 
| 
      
 160 
     | 
    
         
            +
              # https://discord.com/developers/docs/resources/channel#create-reaction
         
     | 
| 
       146 
161 
     | 
    
         
             
              def create_reaction(token, channel_id, message_id, emoji)
         
     | 
| 
       147 
     | 
    
         
            -
                emoji = URI. 
     | 
| 
      
 162 
     | 
    
         
            +
                emoji = URI.encode_www_form_component(emoji) unless emoji.ascii_only?
         
     | 
| 
       148 
163 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       149 
164 
     | 
    
         
             
                  :channels_cid_messages_mid_reactions_emoji_me,
         
     | 
| 
       150 
165 
     | 
    
         
             
                  channel_id,
         
     | 
| 
         @@ -157,9 +172,9 @@ module Discordrb::API::Channel 
     | 
|
| 
       157 
172 
     | 
    
         
             
              end
         
     | 
| 
       158 
173 
     | 
    
         | 
| 
       159 
174 
     | 
    
         
             
              # Delete this client's own reaction on a message
         
     | 
| 
       160 
     | 
    
         
            -
              # https:// 
     | 
| 
      
 175 
     | 
    
         
            +
              # https://discord.com/developers/docs/resources/channel#delete-own-reaction
         
     | 
| 
       161 
176 
     | 
    
         
             
              def delete_own_reaction(token, channel_id, message_id, emoji)
         
     | 
| 
       162 
     | 
    
         
            -
                emoji = URI. 
     | 
| 
      
 177 
     | 
    
         
            +
                emoji = URI.encode_www_form_component(emoji) unless emoji.ascii_only?
         
     | 
| 
       163 
178 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       164 
179 
     | 
    
         
             
                  :channels_cid_messages_mid_reactions_emoji_me,
         
     | 
| 
       165 
180 
     | 
    
         
             
                  channel_id,
         
     | 
| 
         @@ -170,9 +185,9 @@ module Discordrb::API::Channel 
     | 
|
| 
       170 
185 
     | 
    
         
             
              end
         
     | 
| 
       171 
186 
     | 
    
         | 
| 
       172 
187 
     | 
    
         
             
              # Delete another client's reaction on a message
         
     | 
| 
       173 
     | 
    
         
            -
              # https:// 
     | 
| 
      
 188 
     | 
    
         
            +
              # https://discord.com/developers/docs/resources/channel#delete-user-reaction
         
     | 
| 
       174 
189 
     | 
    
         
             
              def delete_user_reaction(token, channel_id, message_id, emoji, user_id)
         
     | 
| 
       175 
     | 
    
         
            -
                emoji = URI. 
     | 
| 
      
 190 
     | 
    
         
            +
                emoji = URI.encode_www_form_component(emoji) unless emoji.ascii_only?
         
     | 
| 
       176 
191 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       177 
192 
     | 
    
         
             
                  :channels_cid_messages_mid_reactions_emoji_uid,
         
     | 
| 
       178 
193 
     | 
    
         
             
                  channel_id,
         
     | 
| 
         @@ -183,20 +198,21 @@ module Discordrb::API::Channel 
     | 
|
| 
       183 
198 
     | 
    
         
             
              end
         
     | 
| 
       184 
199 
     | 
    
         | 
| 
       185 
200 
     | 
    
         
             
              # Get a list of clients who reacted with a specific reaction on a message
         
     | 
| 
       186 
     | 
    
         
            -
              # https:// 
     | 
| 
       187 
     | 
    
         
            -
              def get_reactions(token, channel_id, message_id, emoji)
         
     | 
| 
       188 
     | 
    
         
            -
                emoji = URI. 
     | 
| 
      
 201 
     | 
    
         
            +
              # https://discord.com/developers/docs/resources/channel#get-reactions
         
     | 
| 
      
 202 
     | 
    
         
            +
              def get_reactions(token, channel_id, message_id, emoji, before_id, after_id, limit = 100)
         
     | 
| 
      
 203 
     | 
    
         
            +
                emoji = URI.encode_www_form_component(emoji) unless emoji.ascii_only?
         
     | 
| 
      
 204 
     | 
    
         
            +
                query_string = "limit=#{limit}#{"&before=#{before_id}" if before_id}#{"&after=#{after_id}" if after_id}"
         
     | 
| 
       189 
205 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       190 
206 
     | 
    
         
             
                  :channels_cid_messages_mid_reactions_emoji,
         
     | 
| 
       191 
207 
     | 
    
         
             
                  channel_id,
         
     | 
| 
       192 
208 
     | 
    
         
             
                  :get,
         
     | 
| 
       193 
     | 
    
         
            -
                  "#{Discordrb::API.api_base}/channels/#{channel_id}/messages/#{message_id}/reactions/#{emoji}",
         
     | 
| 
      
 209 
     | 
    
         
            +
                  "#{Discordrb::API.api_base}/channels/#{channel_id}/messages/#{message_id}/reactions/#{emoji}?#{query_string}",
         
     | 
| 
       194 
210 
     | 
    
         
             
                  Authorization: token
         
     | 
| 
       195 
211 
     | 
    
         
             
                )
         
     | 
| 
       196 
212 
     | 
    
         
             
              end
         
     | 
| 
       197 
213 
     | 
    
         | 
| 
       198 
214 
     | 
    
         
             
              # Deletes all reactions on a message from all clients
         
     | 
| 
       199 
     | 
    
         
            -
              # https:// 
     | 
| 
      
 215 
     | 
    
         
            +
              # https://discord.com/developers/docs/resources/channel#delete-all-reactions
         
     | 
| 
       200 
216 
     | 
    
         
             
              def delete_all_reactions(token, channel_id, message_id)
         
     | 
| 
       201 
217 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       202 
218 
     | 
    
         
             
                  :channels_cid_messages_mid_reactions,
         
     | 
| 
         @@ -208,7 +224,7 @@ module Discordrb::API::Channel 
     | 
|
| 
       208 
224 
     | 
    
         
             
              end
         
     | 
| 
       209 
225 
     | 
    
         | 
| 
       210 
226 
     | 
    
         
             
              # Update a channels permission for a role or member
         
     | 
| 
       211 
     | 
    
         
            -
              # https:// 
     | 
| 
      
 227 
     | 
    
         
            +
              # https://discord.com/developers/docs/resources/channel#edit-channel-permissions
         
     | 
| 
       212 
228 
     | 
    
         
             
              def update_permission(token, channel_id, overwrite_id, allow, deny, type, reason = nil)
         
     | 
| 
       213 
229 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       214 
230 
     | 
    
         
             
                  :channels_cid_permissions_oid,
         
     | 
| 
         @@ -223,7 +239,7 @@ module Discordrb::API::Channel 
     | 
|
| 
       223 
239 
     | 
    
         
             
              end
         
     | 
| 
       224 
240 
     | 
    
         | 
| 
       225 
241 
     | 
    
         
             
              # Get a channel's invite list
         
     | 
| 
       226 
     | 
    
         
            -
              # https:// 
     | 
| 
      
 242 
     | 
    
         
            +
              # https://discord.com/developers/docs/resources/channel#get-channel-invites
         
     | 
| 
       227 
243 
     | 
    
         
             
              def invites(token, channel_id)
         
     | 
| 
       228 
244 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       229 
245 
     | 
    
         
             
                  :channels_cid_invites,
         
     | 
| 
         @@ -235,7 +251,7 @@ module Discordrb::API::Channel 
     | 
|
| 
       235 
251 
     | 
    
         
             
              end
         
     | 
| 
       236 
252 
     | 
    
         | 
| 
       237 
253 
     | 
    
         
             
              # Create an instant invite from a server or a channel id
         
     | 
| 
       238 
     | 
    
         
            -
              # https:// 
     | 
| 
      
 254 
     | 
    
         
            +
              # https://discord.com/developers/docs/resources/channel#create-channel-invite
         
     | 
| 
       239 
255 
     | 
    
         
             
              def create_invite(token, channel_id, max_age = 0, max_uses = 0, temporary = false, unique = false, reason = nil)
         
     | 
| 
       240 
256 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       241 
257 
     | 
    
         
             
                  :channels_cid_invites,
         
     | 
| 
         @@ -250,7 +266,7 @@ module Discordrb::API::Channel 
     | 
|
| 
       250 
266 
     | 
    
         
             
              end
         
     | 
| 
       251 
267 
     | 
    
         | 
| 
       252 
268 
     | 
    
         
             
              # Delete channel permission
         
     | 
| 
       253 
     | 
    
         
            -
              # https:// 
     | 
| 
      
 269 
     | 
    
         
            +
              # https://discord.com/developers/docs/resources/channel#delete-channel-permission
         
     | 
| 
       254 
270 
     | 
    
         
             
              def delete_permission(token, channel_id, overwrite_id, reason = nil)
         
     | 
| 
       255 
271 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       256 
272 
     | 
    
         
             
                  :channels_cid_permissions_oid,
         
     | 
| 
         @@ -263,7 +279,7 @@ module Discordrb::API::Channel 
     | 
|
| 
       263 
279 
     | 
    
         
             
              end
         
     | 
| 
       264 
280 
     | 
    
         | 
| 
       265 
281 
     | 
    
         
             
              # Start typing (needs to be resent every 5 seconds to keep up the typing)
         
     | 
| 
       266 
     | 
    
         
            -
              # https:// 
     | 
| 
      
 282 
     | 
    
         
            +
              # https://discord.com/developers/docs/resources/channel#trigger-typing-indicator
         
     | 
| 
       267 
283 
     | 
    
         
             
              def start_typing(token, channel_id)
         
     | 
| 
       268 
284 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       269 
285 
     | 
    
         
             
                  :channels_cid_typing,
         
     | 
| 
         @@ -276,7 +292,7 @@ module Discordrb::API::Channel 
     | 
|
| 
       276 
292 
     | 
    
         
             
              end
         
     | 
| 
       277 
293 
     | 
    
         | 
| 
       278 
294 
     | 
    
         
             
              # Get a list of pinned messages in a channel
         
     | 
| 
       279 
     | 
    
         
            -
              # https:// 
     | 
| 
      
 295 
     | 
    
         
            +
              # https://discord.com/developers/docs/resources/channel#get-pinned-messages
         
     | 
| 
       280 
296 
     | 
    
         
             
              def pinned_messages(token, channel_id)
         
     | 
| 
       281 
297 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       282 
298 
     | 
    
         
             
                  :channels_cid_pins,
         
     | 
| 
         @@ -289,30 +305,33 @@ module Discordrb::API::Channel 
     | 
|
| 
       289 
305 
     | 
    
         | 
| 
       290 
306 
     | 
    
         
             
              # Pin a message
         
     | 
| 
       291 
307 
     | 
    
         
             
              # https://discordapp.com/developers/docs/resources/channel#add-pinned-channel-message
         
     | 
| 
       292 
     | 
    
         
            -
              def pin_message(token, channel_id, message_id)
         
     | 
| 
      
 308 
     | 
    
         
            +
              def pin_message(token, channel_id, message_id, reason = nil)
         
     | 
| 
       293 
309 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       294 
310 
     | 
    
         
             
                  :channels_cid_pins_mid,
         
     | 
| 
       295 
311 
     | 
    
         
             
                  channel_id,
         
     | 
| 
       296 
312 
     | 
    
         
             
                  :put,
         
     | 
| 
       297 
313 
     | 
    
         
             
                  "#{Discordrb::API.api_base}/channels/#{channel_id}/pins/#{message_id}",
         
     | 
| 
       298 
314 
     | 
    
         
             
                  nil,
         
     | 
| 
       299 
     | 
    
         
            -
                  Authorization: token
         
     | 
| 
      
 315 
     | 
    
         
            +
                  Authorization: token,
         
     | 
| 
      
 316 
     | 
    
         
            +
                  'X-Audit-Log-Reason': reason
         
     | 
| 
       300 
317 
     | 
    
         
             
                )
         
     | 
| 
       301 
318 
     | 
    
         
             
              end
         
     | 
| 
       302 
319 
     | 
    
         | 
| 
       303 
320 
     | 
    
         
             
              # Unpin a message
         
     | 
| 
       304 
321 
     | 
    
         
             
              # https://discordapp.com/developers/docs/resources/channel#delete-pinned-channel-message
         
     | 
| 
       305 
     | 
    
         
            -
              def unpin_message(token, channel_id, message_id)
         
     | 
| 
      
 322 
     | 
    
         
            +
              def unpin_message(token, channel_id, message_id, reason = nil)
         
     | 
| 
       306 
323 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       307 
324 
     | 
    
         
             
                  :channels_cid_pins_mid,
         
     | 
| 
       308 
325 
     | 
    
         
             
                  channel_id,
         
     | 
| 
       309 
326 
     | 
    
         
             
                  :delete,
         
     | 
| 
       310 
327 
     | 
    
         
             
                  "#{Discordrb::API.api_base}/channels/#{channel_id}/pins/#{message_id}",
         
     | 
| 
       311 
     | 
    
         
            -
                  Authorization: token
         
     | 
| 
      
 328 
     | 
    
         
            +
                  Authorization: token,
         
     | 
| 
      
 329 
     | 
    
         
            +
                  'X-Audit-Log-Reason': reason
         
     | 
| 
       312 
330 
     | 
    
         
             
                )
         
     | 
| 
       313 
331 
     | 
    
         
             
              end
         
     | 
| 
       314 
332 
     | 
    
         | 
| 
       315 
333 
     | 
    
         
             
              # Create an empty group channel.
         
     | 
| 
      
 334 
     | 
    
         
            +
              # https://discord.com/developers/docs/resources/user#create-group-dm
         
     | 
| 
       316 
335 
     | 
    
         
             
              def create_empty_group(token, bot_user_id)
         
     | 
| 
       317 
336 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       318 
337 
     | 
    
         
             
                  :users_uid_channels,
         
     | 
| 
         @@ -326,6 +345,7 @@ module Discordrb::API::Channel 
     | 
|
| 
       326 
345 
     | 
    
         
             
              end
         
     | 
| 
       327 
346 
     | 
    
         | 
| 
       328 
347 
     | 
    
         
             
              # Create a group channel.
         
     | 
| 
      
 348 
     | 
    
         
            +
              # https://discord.com/developers/docs/resources/channel#group-dm-add-recipient
         
     | 
| 
       329 
349 
     | 
    
         
             
              def create_group(token, pm_channel_id, user_id)
         
     | 
| 
       330 
350 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       331 
351 
     | 
    
         
             
                  :channels_cid_recipients_uid,
         
     | 
| 
         @@ -345,6 +365,7 @@ module Discordrb::API::Channel 
     | 
|
| 
       345 
365 
     | 
    
         
             
              end
         
     | 
| 
       346 
366 
     | 
    
         | 
| 
       347 
367 
     | 
    
         
             
              # Add a user to a group channel.
         
     | 
| 
      
 368 
     | 
    
         
            +
              # https://discord.com/developers/docs/resources/channel#group-dm-add-recipient
         
     | 
| 
       348 
369 
     | 
    
         
             
              def add_group_user(token, group_channel_id, user_id)
         
     | 
| 
       349 
370 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       350 
371 
     | 
    
         
             
                  :channels_cid_recipients_uid,
         
     | 
| 
         @@ -358,6 +379,7 @@ module Discordrb::API::Channel 
     | 
|
| 
       358 
379 
     | 
    
         
             
              end
         
     | 
| 
       359 
380 
     | 
    
         | 
| 
       360 
381 
     | 
    
         
             
              # Remove a user from a group channel.
         
     | 
| 
      
 382 
     | 
    
         
            +
              # https://discord.com/developers/docs/resources/channel#group-dm-remove-recipient
         
     | 
| 
       361 
383 
     | 
    
         
             
              def remove_group_user(token, group_channel_id, user_id)
         
     | 
| 
       362 
384 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       363 
385 
     | 
    
         
             
                  :channels_cid_recipients_uid,
         
     | 
| 
         @@ -370,6 +392,7 @@ module Discordrb::API::Channel 
     | 
|
| 
       370 
392 
     | 
    
         
             
              end
         
     | 
| 
       371 
393 
     | 
    
         | 
| 
       372 
394 
     | 
    
         
             
              # Leave a group channel.
         
     | 
| 
      
 395 
     | 
    
         
            +
              # https://discord.com/developers/docs/resources/channel#deleteclose-channel
         
     | 
| 
       373 
396 
     | 
    
         
             
              def leave_group(token, group_channel_id)
         
     | 
| 
       374 
397 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       375 
398 
     | 
    
         
             
                  :channels_cid,
         
     | 
| 
         @@ -382,7 +405,7 @@ module Discordrb::API::Channel 
     | 
|
| 
       382 
405 
     | 
    
         
             
              end
         
     | 
| 
       383 
406 
     | 
    
         | 
| 
       384 
407 
     | 
    
         
             
              # Create a webhook
         
     | 
| 
       385 
     | 
    
         
            -
              # https:// 
     | 
| 
      
 408 
     | 
    
         
            +
              # https://discord.com/developers/docs/resources/webhook#create-webhook
         
     | 
| 
       386 
409 
     | 
    
         
             
              def create_webhook(token, channel_id, name, avatar = nil, reason = nil)
         
     | 
| 
       387 
410 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       388 
411 
     | 
    
         
             
                  :channels_cid_webhooks,
         
     | 
| 
         @@ -397,7 +420,7 @@ module Discordrb::API::Channel 
     | 
|
| 
       397 
420 
     | 
    
         
             
              end
         
     | 
| 
       398 
421 
     | 
    
         | 
| 
       399 
422 
     | 
    
         
             
              # Get channel webhooks
         
     | 
| 
       400 
     | 
    
         
            -
              # https:// 
     | 
| 
      
 423 
     | 
    
         
            +
              # https://discord.com/developers/docs/resources/webhook#get-channel-webhooks
         
     | 
| 
       401 
424 
     | 
    
         
             
              def webhooks(token, channel_id)
         
     | 
| 
       402 
425 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       403 
426 
     | 
    
         
             
                  :channels_cid_webhooks,
         
     | 
    
        data/lib/discordrb/api/invite.rb
    CHANGED
    
    | 
         @@ -5,7 +5,7 @@ module Discordrb::API::Invite 
     | 
|
| 
       5 
5 
     | 
    
         
             
              module_function
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
              # Resolve an invite
         
     | 
| 
       8 
     | 
    
         
            -
              # https:// 
     | 
| 
      
 8 
     | 
    
         
            +
              # https://discord.com/developers/docs/resources/invite#get-invite
         
     | 
| 
       9 
9 
     | 
    
         
             
              def resolve(token, invite_code, counts = true)
         
     | 
| 
       10 
10 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       11 
11 
     | 
    
         
             
                  :invite_code,
         
     | 
| 
         @@ -17,7 +17,7 @@ module Discordrb::API::Invite 
     | 
|
| 
       17 
17 
     | 
    
         
             
              end
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
              # Delete an invite by code
         
     | 
| 
       20 
     | 
    
         
            -
              # https:// 
     | 
| 
      
 20 
     | 
    
         
            +
              # https://discord.com/developers/docs/resources/invite#delete-invite
         
     | 
| 
       21 
21 
     | 
    
         
             
              def delete(token, code, reason = nil)
         
     | 
| 
       22 
22 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       23 
23 
     | 
    
         
             
                  :invites_code,
         
     | 
| 
         @@ -30,7 +30,7 @@ module Discordrb::API::Invite 
     | 
|
| 
       30 
30 
     | 
    
         
             
              end
         
     | 
| 
       31 
31 
     | 
    
         | 
| 
       32 
32 
     | 
    
         
             
              # Join a server using an invite
         
     | 
| 
       33 
     | 
    
         
            -
              # https:// 
     | 
| 
      
 33 
     | 
    
         
            +
              # https://discord.com/developers/docs/resources/invite#accept-invite
         
     | 
| 
       34 
34 
     | 
    
         
             
              def accept(token, invite_code)
         
     | 
| 
       35 
35 
     | 
    
         
             
                Discordrb::API.request(
         
     | 
| 
       36 
36 
     | 
    
         
             
                  :invite_code,
         
     |