discorb 0.5.1 → 0.5.5
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/Changelog.md +21 -1
- data/Gemfile.lock +1 -1
- data/README.md +2 -1
- data/docs/events.md +1 -2
- data/docs/extension.md +27 -0
- data/lib/discorb/channel.rb +4 -1
- data/lib/discorb/client.rb +13 -0
- data/lib/discorb/command.rb +7 -38
- data/lib/discorb/common.rb +1 -1
- data/lib/discorb/embed.rb +2 -2
- data/lib/discorb/exe/init.rb +3 -3
- data/lib/discorb/extension.rb +9 -0
- data/lib/discorb/gateway.rb +7 -5
- data/lib/discorb/interaction.rb +3 -3
- data/lib/discorb/modules.rb +10 -0
- data/lib/discorb/user.rb +1 -1
- data/lib/discorb.rb +2 -2
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: d6919eceb7431839769fc4bca402df56fef34e50d12f47f6cc8824e210bef95b
         | 
| 4 | 
            +
              data.tar.gz: 8e50f4f53b5a1b52d3c4e29f9856cac2469a067c7d6005542a520081622d8da2
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 45a3649f783094e691921a041428df1a7a1d368705a116240385b94e9d2b30983a232b47a5d702c50ae61a7a4b36ef3252f6b7f48992832c6f4073cadab08d26
         | 
| 7 | 
            +
              data.tar.gz: 1a89fba62ef9b03db524eb6b57e409280c1888709e248df33cd1c42266c12ae534535a39c2765046a56eebd66adb5b8472f202115cf0e16cfcbbefee04e17e1a
         | 
    
        data/Changelog.md
    CHANGED
    
    | @@ -111,4 +111,24 @@ | |
| 111 111 |  | 
| 112 112 | 
             
            - Add: Can use block for defining group commands
         | 
| 113 113 | 
             
            - Fix: Fix bug in subcommands
         | 
| 114 | 
            -
            - Fix: Fix bug in receiving commands
         | 
| 114 | 
            +
            - Fix: Fix bug in receiving commands
         | 
| 115 | 
            +
             | 
| 116 | 
            +
            ## 0.5.2
         | 
| 117 | 
            +
             | 
| 118 | 
            +
            - Fix: Fix bug of registering commands
         | 
| 119 | 
            +
            - Add: Add way to register commands in Extension
         | 
| 120 | 
            +
             | 
| 121 | 
            +
            ## 0.5.3
         | 
| 122 | 
            +
             | 
| 123 | 
            +
            - Add: Add way to handle raw events with `event_xxx`
         | 
| 124 | 
            +
            - Add: Add `Client#session_id`
         | 
| 125 | 
            +
            - Add: Add `Connectable`
         | 
| 126 | 
            +
            - Fix: Fix error by sending DM
         | 
| 127 | 
            +
             | 
| 128 | 
            +
            ## 0.5.4
         | 
| 129 | 
            +
             | 
| 130 | 
            +
            - Fix: Fix issue of receiving component events
         | 
| 131 | 
            +
             | 
| 132 | 
            +
            ## 0.5.5
         | 
| 133 | 
            +
             | 
| 134 | 
            +
            - Fix: Fix some bugs
         | 
    
        data/Gemfile.lock
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | @@ -2,7 +2,8 @@ | |
| 2 2 | 
             
            [](https://discorb-lib.github.io/)
         | 
| 3 3 | 
             
            [](https://rubygems.org/gems/discorb)
         | 
| 4 4 | 
             
            [](https://rubygems.org/gems/discorb)
         | 
| 5 | 
            -
            [](https://discord.gg/hCP6zq8Vpj) | 
| 5 | 
            +
            [](https://discord.gg/hCP6zq8Vpj)
         | 
| 6 | 
            +
            [](https://github.com/discorb-lib/discorb)  
         | 
| 6 7 |  | 
| 7 8 | 
             
            discorb is a Discord API wrapper for Ruby.
         | 
| 8 9 |  | 
    
        data/docs/events.md
    CHANGED
    
    | @@ -219,14 +219,13 @@ Fires when a guild integration is created. | |
| 219 219 | 
             
            | ---------- | ----- | ----------- |
         | 
| 220 220 | 
             
            |`integration`| {Discorb::Integration}| The created integration. |
         | 
| 221 221 |  | 
| 222 | 
            -
            #### `integration_update( | 
| 222 | 
            +
            #### `integration_update(after)`
         | 
| 223 223 |  | 
| 224 224 | 
             
            Fires when a guild integration is updated.
         | 
| 225 225 |  | 
| 226 226 |  | 
| 227 227 | 
             
            | Parameter  | Type  | Description |
         | 
| 228 228 | 
             
            | ---------- | ----- | ----------- |
         | 
| 229 | 
            -
            |`before`    | {Discorb::Integration}| The integration before the update. |
         | 
| 230 229 | 
             
            |`after`     | {Discorb::Integration}| The integration after the update. |
         | 
| 231 230 |  | 
| 232 231 | 
             
            #### `integration_delete(integration)`
         | 
    
        data/docs/extension.md
    CHANGED
    
    | @@ -34,6 +34,33 @@ module MyExtension | |
| 34 34 | 
             
            end
         | 
| 35 35 | 
             
            ```
         | 
| 36 36 |  | 
| 37 | 
            +
            ## Register Command
         | 
| 38 | 
            +
             | 
| 39 | 
            +
            Since v0.5.2, {Discorb::Extension} includes {Discorb::Command::Handler} module, so you can register command with {Discorb::Command::Handler#slash} and {Discorb::Command::Handler#slash_group}.
         | 
| 40 | 
            +
             | 
| 41 | 
            +
            ```ruby
         | 
| 42 | 
            +
            module MyExtension
         | 
| 43 | 
            +
              extend Discorb::Extension
         | 
| 44 | 
            +
             | 
| 45 | 
            +
              slash("command", "Command") do |interaction|
         | 
| 46 | 
            +
                # ...
         | 
| 47 | 
            +
              end
         | 
| 48 | 
            +
             | 
| 49 | 
            +
              slash_group("group", "Group") do
         | 
| 50 | 
            +
                slash("subcommand", "Subcommand") do |interaction|
         | 
| 51 | 
            +
                  # ...
         | 
| 52 | 
            +
                end
         | 
| 53 | 
            +
             | 
| 54 | 
            +
                group("subgroup", "Subcommand group") do
         | 
| 55 | 
            +
                  slash("group_subcommand", "Command in Subcommand group") do |interaction|
         | 
| 56 | 
            +
                    # ...
         | 
| 57 | 
            +
                  end
         | 
| 58 | 
            +
                end
         | 
| 59 | 
            +
              end
         | 
| 60 | 
            +
            end
         | 
| 61 | 
            +
            ```
         | 
| 62 | 
            +
             | 
| 63 | 
            +
             | 
| 37 64 | 
             
            ## Load extension
         | 
| 38 65 |  | 
| 39 66 | 
             
            Use {Discorb::Client#extend} to load extension.
         | 
    
        data/lib/discorb/channel.rb
    CHANGED
    
    | @@ -636,7 +636,6 @@ module Discorb | |
| 636 636 |  | 
| 637 637 | 
             
              #
         | 
| 638 638 | 
             
              # Represents a voice channel.
         | 
| 639 | 
            -
              # @todo Implement connecting to voice channel.
         | 
| 640 639 | 
             
              #
         | 
| 641 640 | 
             
              class VoiceChannel < GuildChannel
         | 
| 642 641 | 
             
                # @return [Integer] The bitrate of the voice channel.
         | 
| @@ -645,6 +644,8 @@ module Discorb | |
| 645 644 | 
             
                # @return [nil] If the user limit is not set.
         | 
| 646 645 | 
             
                attr_reader :user_limit
         | 
| 647 646 |  | 
| 647 | 
            +
                include Connectable
         | 
| 648 | 
            +
             | 
| 648 649 | 
             
                @channel_type = 2
         | 
| 649 650 | 
             
                #
         | 
| 650 651 | 
             
                # Edit the voice channel.
         | 
| @@ -699,6 +700,8 @@ module Discorb | |
| 699 700 | 
             
                # @!visibility private
         | 
| 700 701 | 
             
                attr_reader :stage_instances
         | 
| 701 702 |  | 
| 703 | 
            +
                include Connectable
         | 
| 704 | 
            +
             | 
| 702 705 | 
             
                # @!attribute [r] stage_instance
         | 
| 703 706 | 
             
                #   @return [Discorb::StageInstance] The stage instance of the channel.
         | 
| 704 707 |  | 
    
        data/lib/discorb/client.rb
    CHANGED
    
    | @@ -49,6 +49,10 @@ module Discorb | |
| 49 49 | 
             
                attr_reader :ping
         | 
| 50 50 | 
             
                # @return [:initialized, :running, :closed] The status of the client.
         | 
| 51 51 | 
             
                attr_reader :status
         | 
| 52 | 
            +
                # @return [Integer] The session ID of connection.
         | 
| 53 | 
            +
                attr_reader :session_id
         | 
| 54 | 
            +
                # @private
         | 
| 55 | 
            +
                attr_reader :bottom_commands
         | 
| 52 56 |  | 
| 53 57 | 
             
                #
         | 
| 54 58 | 
             
                # Initializes a new client.
         | 
| @@ -85,6 +89,7 @@ module Discorb | |
| 85 89 | 
             
                  @tasks = []
         | 
| 86 90 | 
             
                  @conditions = {}
         | 
| 87 91 | 
             
                  @commands = []
         | 
| 92 | 
            +
                  @bottom_commands = []
         | 
| 88 93 | 
             
                  @status = :initialized
         | 
| 89 94 | 
             
                end
         | 
| 90 95 |  | 
| @@ -372,6 +377,14 @@ module Discorb | |
| 372 377 | 
             
                        @events[name] << event
         | 
| 373 378 | 
             
                      end
         | 
| 374 379 | 
             
                    end
         | 
| 380 | 
            +
                    @commands.delete_if do |cmd|
         | 
| 381 | 
            +
                      cmd.respond_to? :extension and cmd.extension == mod.name
         | 
| 382 | 
            +
                    end
         | 
| 383 | 
            +
                    mod.commands.each do |cmd|
         | 
| 384 | 
            +
                      cmd.define_singleton_method(:extension) { mod.name }
         | 
| 385 | 
            +
                      @commands << cmd
         | 
| 386 | 
            +
                    end
         | 
| 387 | 
            +
                    @bottom_commands += mod.bottom_commands
         | 
| 375 388 | 
             
                    mod.client = self
         | 
| 376 389 | 
             
                  end
         | 
| 377 390 | 
             
                  super(mod)
         | 
    
        data/lib/discorb/command.rb
    CHANGED
    
    | @@ -34,6 +34,7 @@ module Discorb | |
| 34 34 | 
             
                  def slash(command_name, description, options = {}, guild_ids: [], &block)
         | 
| 35 35 | 
             
                    command = Discorb::Command::Command::SlashCommand.new(command_name, description, options, guild_ids, block, 1, "")
         | 
| 36 36 | 
             
                    @commands << command
         | 
| 37 | 
            +
                    @bottom_commands << command
         | 
| 37 38 | 
             
                    command
         | 
| 38 39 | 
             
                  end
         | 
| 39 40 |  | 
| @@ -54,6 +55,7 @@ module Discorb | |
| 54 55 | 
             
                  def slash_group(command_name, description, guild_ids: [], &block)
         | 
| 55 56 | 
             
                    command = Discorb::Command::Command::GroupCommand.new(command_name, description, guild_ids, nil, self)
         | 
| 56 57 | 
             
                    command.instance_eval(&block) if block_given?
         | 
| 58 | 
            +
                    @commands << command
         | 
| 57 59 | 
             
                    command
         | 
| 58 60 | 
             
                  end
         | 
| 59 61 |  | 
| @@ -248,7 +250,7 @@ module Discorb | |
| 248 250 | 
             
                    def initialize(name, description, guild_ids, type, client)
         | 
| 249 251 | 
             
                      super(name, guild_ids, block, type)
         | 
| 250 252 | 
             
                      @description = description
         | 
| 251 | 
            -
                      @commands =  | 
| 253 | 
            +
                      @commands = []
         | 
| 252 254 | 
             
                      @client = client
         | 
| 253 255 | 
             
                      @id_map = Discorb::Dictionary.new
         | 
| 254 256 | 
             
                    end
         | 
| @@ -261,42 +263,7 @@ module Discorb | |
| 261 263 | 
             
                    #
         | 
| 262 264 | 
             
                    def slash(command_name, description, options = {}, &block)
         | 
| 263 265 | 
             
                      command = Discorb::Command::Command::SlashCommand.new(command_name, description, options, [], block, 1, @name)
         | 
| 264 | 
            -
                       | 
| 265 | 
            -
                        ret = {
         | 
| 266 | 
            -
                          type: case (value[:type].is_a?(Array) ? value[:type].first : value[:type])
         | 
| 267 | 
            -
                          when String, :string
         | 
| 268 | 
            -
                            3
         | 
| 269 | 
            -
                          when Integer
         | 
| 270 | 
            -
                            4
         | 
| 271 | 
            -
                          when TrueClass, FalseClass, :boolean
         | 
| 272 | 
            -
                            5
         | 
| 273 | 
            -
                          when Discorb::User, Discorb::Member, :user, :member
         | 
| 274 | 
            -
                            6
         | 
| 275 | 
            -
                          when Discorb::Channel, :channel
         | 
| 276 | 
            -
                            7
         | 
| 277 | 
            -
                          when Discorb::Role, :role
         | 
| 278 | 
            -
                            8
         | 
| 279 | 
            -
                          when :mentionable
         | 
| 280 | 
            -
                            9
         | 
| 281 | 
            -
                          when Float
         | 
| 282 | 
            -
                            10
         | 
| 283 | 
            -
                          end,
         | 
| 284 | 
            -
                          name: name,
         | 
| 285 | 
            -
                          description: value[:description],
         | 
| 286 | 
            -
                          required: !value[:optional],
         | 
| 287 | 
            -
                        }
         | 
| 288 | 
            -
                        if value[:type].is_a?(Array)
         | 
| 289 | 
            -
                          ret[:choices] = value[:type]
         | 
| 290 | 
            -
                        end
         | 
| 291 | 
            -
             | 
| 292 | 
            -
                        ret
         | 
| 293 | 
            -
                      end
         | 
| 294 | 
            -
                      {
         | 
| 295 | 
            -
                        name: @name,
         | 
| 296 | 
            -
                        default_permission: true,
         | 
| 297 | 
            -
                        description: @description,
         | 
| 298 | 
            -
                        options: options_payload,
         | 
| 299 | 
            -
                      }
         | 
| 266 | 
            +
                      @client.bottom_commands << command
         | 
| 300 267 | 
             
                      @commands << command
         | 
| 301 268 | 
             
                      command
         | 
| 302 269 | 
             
                    end
         | 
| @@ -317,6 +284,7 @@ module Discorb | |
| 317 284 | 
             
                    def group(command_name, description, &block)
         | 
| 318 285 | 
             
                      command = Discorb::Command::Command::SubcommandGroup.new(command_name, description, @name, @client)
         | 
| 319 286 | 
             
                      command.instance_eval(&block) if block_given?
         | 
| 287 | 
            +
                      @commands << command
         | 
| 320 288 | 
             
                      command
         | 
| 321 289 | 
             
                    end
         | 
| 322 290 |  | 
| @@ -371,7 +339,7 @@ module Discorb | |
| 371 339 | 
             
                    def initialize(name, description, parent, client)
         | 
| 372 340 | 
             
                      super(name, description, [], 1, client)
         | 
| 373 341 |  | 
| 374 | 
            -
                      @commands =  | 
| 342 | 
            +
                      @commands = []
         | 
| 375 343 | 
             
                      @parent = parent
         | 
| 376 344 | 
             
                    end
         | 
| 377 345 |  | 
| @@ -387,6 +355,7 @@ module Discorb | |
| 387 355 | 
             
                    def slash(command_name, description, options = {}, &block)
         | 
| 388 356 | 
             
                      command = Discorb::Command::Command::SlashCommand.new(command_name, description, options, [], block, 1, @parent + " " + @name)
         | 
| 389 357 | 
             
                      @commands << command
         | 
| 358 | 
            +
                      @client.bottom_commands << command
         | 
| 390 359 | 
             
                      command
         | 
| 391 360 | 
             
                    end
         | 
| 392 361 | 
             
                  end
         | 
    
        data/lib/discorb/common.rb
    CHANGED
    
    | @@ -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.5. | 
| 7 | 
            +
              VERSION = "0.5.5"
         | 
| 8 8 | 
             
              # @return [String] The user agent for the bot.
         | 
| 9 9 | 
             
              USER_AGENT = "DiscordBot (https://github.com/discorb-lib/discorb #{VERSION}) Ruby/#{RUBY_VERSION}"
         | 
| 10 10 |  | 
    
        data/lib/discorb/embed.rb
    CHANGED
    
    | @@ -65,9 +65,9 @@ module Discorb | |
| 65 65 | 
             
                    @timestamp = data[:timestamp] && Time.iso8601(data[:timestamp])
         | 
| 66 66 | 
             
                    @type = data[:type]
         | 
| 67 67 | 
             
                    @color = data[:color] && Color.new(data[:color])
         | 
| 68 | 
            -
                    @footer = data[:footer] && Footer.new(data[:footer][:text], icon: data[:footer][: | 
| 68 | 
            +
                    @footer = data[:footer] && Footer.new(data[:footer][:text], icon: data[:footer][:icon_url])
         | 
| 69 69 | 
             
                    @author = if data[:author]
         | 
| 70 | 
            -
                        Author.new(data[:author][:name], icon: data[:author][: | 
| 70 | 
            +
                        Author.new(data[:author][:name], icon: data[:author][:icon_url],
         | 
| 71 71 | 
             
                                                         url: data[:author][:url])
         | 
| 72 72 | 
             
                      end
         | 
| 73 73 | 
             
                    @thumbnail = data[:thumbnail] && Thumbnail.new(data[:thumbnail])
         | 
    
        data/lib/discorb/exe/init.rb
    CHANGED
    
    | @@ -171,10 +171,10 @@ if (dir = ARGV[0]) | |
| 171 171 | 
             
              $path += "/#{dir}"
         | 
| 172 172 | 
             
              if Dir.exist?($path)
         | 
| 173 173 | 
             
                if Dir.empty?($path)
         | 
| 174 | 
            -
                   | 
| 174 | 
            +
                  iputs "Found \e[30m#{dir}\e[90m and empty, using this directory."
         | 
| 175 175 | 
             
                else
         | 
| 176 176 | 
             
                  if $values[:force]
         | 
| 177 | 
            -
                     | 
| 177 | 
            +
                    iputs "Found \e[30m#{dir}\e[90m and not empty, but force is on, using this directory."
         | 
| 178 178 | 
             
                  else
         | 
| 179 179 | 
             
                    eputs "Directory \e[31m#{dir}\e[91m already exists and not empty. Use \e[31m-f\e[91m to force."
         | 
| 180 180 | 
             
                    exit
         | 
| @@ -182,7 +182,7 @@ if (dir = ARGV[0]) | |
| 182 182 | 
             
                end
         | 
| 183 183 | 
             
              else
         | 
| 184 184 | 
             
                Dir.mkdir($path)
         | 
| 185 | 
            -
                 | 
| 185 | 
            +
                iputs "Couldn't find \e[30m#{dir}\e[90m, created directory."
         | 
| 186 186 | 
             
              end
         | 
| 187 187 | 
             
              Dir.chdir($path)
         | 
| 188 188 | 
             
            end
         | 
    
        data/lib/discorb/extension.rb
    CHANGED
    
    | @@ -8,6 +8,9 @@ module Discorb | |
| 8 8 | 
             
              # @abstract
         | 
| 9 9 | 
             
              #
         | 
| 10 10 | 
             
              module Extension
         | 
| 11 | 
            +
                include Discorb::Command::Handler
         | 
| 12 | 
            +
                undef setup_commands
         | 
| 13 | 
            +
             | 
| 11 14 | 
             
                @events = {}
         | 
| 12 15 | 
             
                @client = nil
         | 
| 13 16 |  | 
| @@ -46,12 +49,18 @@ module Discorb | |
| 46 49 |  | 
| 47 50 | 
             
                # @return [Hash{Symbol => Array<Discorb::Event>}] The events of the extension.
         | 
| 48 51 | 
             
                attr_reader :events
         | 
| 52 | 
            +
                # @return [Array<Discorb::Command::Command] The commands of the extension.
         | 
| 53 | 
            +
                attr_reader :commands
         | 
| 54 | 
            +
                # @private
         | 
| 55 | 
            +
                attr_reader :bottom_commands
         | 
| 49 56 |  | 
| 50 57 | 
             
                # @!visibility private
         | 
| 51 58 | 
             
                attr_accessor :client
         | 
| 52 59 |  | 
| 53 60 | 
             
                def self.extended(obj)
         | 
| 54 61 | 
             
                  obj.instance_variable_set(:@events, {})
         | 
| 62 | 
            +
                  obj.instance_variable_set(:@commands, [])
         | 
| 63 | 
            +
                  obj.instance_variable_set(:@bottom_commands, [])
         | 
| 55 64 | 
             
                end
         | 
| 56 65 | 
             
              end
         | 
| 57 66 | 
             
            end
         | 
    
        data/lib/discorb/gateway.rb
    CHANGED
    
    | @@ -778,11 +778,9 @@ module Discorb | |
| 778 778 | 
             
                      dispatch(:integration_create, Integration.new(self, data, data[:guild_id]))
         | 
| 779 779 | 
             
                    when "INTEGRATION_UPDATE"
         | 
| 780 780 | 
             
                      return @log.warn "Unknown guild id #{data[:guild_id]}, ignoring" unless (guild = @guilds[data[:guild_id]])
         | 
| 781 | 
            -
                      return @log.warn "Unknown integration id #{data[:id]}, ignoring" unless (integration = guild.integrations[data[:id]])
         | 
| 782 781 |  | 
| 783 | 
            -
                      before = Integration.new(self,  | 
| 784 | 
            -
                       | 
| 785 | 
            -
                      dispatch(:integration_update, before, integration)
         | 
| 782 | 
            +
                      before = Integration.new(self, data, data[:guild_id])
         | 
| 783 | 
            +
                      dispatch(:integration_update, integration)
         | 
| 786 784 | 
             
                    when "INTEGRATION_DELETE"
         | 
| 787 785 | 
             
                      return @log.warn "Unknown guild id #{data[:guild_id]}, ignoring" unless (guild = @guilds[data[:guild_id]])
         | 
| 788 786 | 
             
                      return @log.warn "Unknown integration id #{data[:id]}, ignoring" unless (integration = guild.integrations.delete(data[:id]))
         | 
| @@ -979,7 +977,11 @@ module Discorb | |
| 979 977 | 
             
                      @log.info("Successfully resumed connection")
         | 
| 980 978 | 
             
                      dispatch(:resumed)
         | 
| 981 979 | 
             
                    else
         | 
| 982 | 
            -
                       | 
| 980 | 
            +
                      if respond_to?("event_" + event_name.downcase)
         | 
| 981 | 
            +
                        __send__("event_" + event_name.downcase, data)
         | 
| 982 | 
            +
                      else
         | 
| 983 | 
            +
                        @log.debug "Received unknown event: #{event_name}\n#{data.inspect}"
         | 
| 984 | 
            +
                      end
         | 
| 983 985 | 
             
                    end
         | 
| 984 986 | 
             
                  end
         | 
| 985 987 | 
             
                end
         | 
    
        data/lib/discorb/interaction.rb
    CHANGED
    
    | @@ -297,7 +297,7 @@ module Discorb | |
| 297 297 | 
             
                        end
         | 
| 298 298 | 
             
                      end
         | 
| 299 299 |  | 
| 300 | 
            -
                      unless (command = @client. | 
| 300 | 
            +
                      unless (command = @client.bottom_commands.find { |c| c.to_s == name && c.type_raw == 1 })
         | 
| 301 301 | 
             
                        @client.log.warn "Unknown command name #{name}, ignoreing"
         | 
| 302 302 | 
             
                        next
         | 
| 303 303 | 
             
                      end
         | 
| @@ -336,7 +336,7 @@ module Discorb | |
| 336 336 | 
             
                  private
         | 
| 337 337 |  | 
| 338 338 | 
             
                  def _set_data(data)
         | 
| 339 | 
            -
                    @target = Message.new(@client, data[:resolved][:messages][data[:target_id].to_sym] | 
| 339 | 
            +
                    @target = Message.new(@client, data[:resolved][:messages][data[:target_id].to_sym])
         | 
| 340 340 | 
             
                    @client.commands.find { |c| c.name == data[:name] && c.type_raw == 3 }.block.call(self, @target)
         | 
| 341 341 | 
             
                  end
         | 
| 342 342 | 
             
                end
         | 
| @@ -393,7 +393,7 @@ module Discorb | |
| 393 393 | 
             
                  # @!visibility private
         | 
| 394 394 | 
             
                  def make_interaction(client, data)
         | 
| 395 395 | 
             
                    nested_classes.each do |klass|
         | 
| 396 | 
            -
                      return klass.new(client, data) if !klass.component_type.nil? && klass.component_type == data[: | 
| 396 | 
            +
                      return klass.new(client, data) if !klass.component_type.nil? && klass.component_type == data[:data][:component_type]
         | 
| 397 397 | 
             
                    end
         | 
| 398 398 | 
             
                    client.log.warn("Unknown component type #{data[:component_type]}, initialized Interaction")
         | 
| 399 399 | 
             
                    MessageComponentInteraction.new(client, data)
         | 
    
        data/lib/discorb/modules.rb
    CHANGED
    
    | @@ -208,4 +208,14 @@ module Discorb | |
| 208 208 | 
             
                  end
         | 
| 209 209 | 
             
                end
         | 
| 210 210 | 
             
              end
         | 
| 211 | 
            +
             | 
| 212 | 
            +
              #
         | 
| 213 | 
            +
              # Module for connecting to a voice channel.
         | 
| 214 | 
            +
              # This will be discord-voice gem.
         | 
| 215 | 
            +
              #
         | 
| 216 | 
            +
              module Connectable
         | 
| 217 | 
            +
                def connect
         | 
| 218 | 
            +
                  raise NotImplementedError, "This method is implemented by discord-voice gem."
         | 
| 219 | 
            +
                end
         | 
| 220 | 
            +
              end
         | 
| 211 221 | 
             
            end
         | 
    
        data/lib/discorb/user.rb
    CHANGED
    
    | @@ -78,7 +78,7 @@ module Discorb | |
| 78 78 | 
             
                  Async do
         | 
| 79 79 | 
             
                    next @dm_channel_id if @dm_channel_id
         | 
| 80 80 |  | 
| 81 | 
            -
                    dm_channel = @client.http.post("/users | 
| 81 | 
            +
                    _resp, dm_channel = @client.http.post("/users/@me/channels", { recipient_id: @id }).wait
         | 
| 82 82 | 
             
                    @dm_channel_id = dm_channel[:id]
         | 
| 83 83 | 
             
                    @dm_channel_id
         | 
| 84 84 | 
             
                  end
         | 
    
        data/lib/discorb.rb
    CHANGED
    
    | @@ -41,11 +41,11 @@ end | |
| 41 41 |  | 
| 42 42 | 
             
            require_order = %w[common flag dictionary error rate_limit http intents emoji_table modules] +
         | 
| 43 43 | 
             
                            %w[user member guild emoji channel embed message] +
         | 
| 44 | 
            -
                            %w[application audit_logs color components event | 
| 44 | 
            +
                            %w[application audit_logs color components event] +
         | 
| 45 45 | 
             
                            %w[file guild_template image integration interaction invite log permission] +
         | 
| 46 46 | 
             
                            %w[presence reaction role sticker utils voice_state webhook] +
         | 
| 47 47 | 
             
                            %w[gateway_requests gateway command] +
         | 
| 48 | 
            -
                            %w[asset client extend]
         | 
| 48 | 
            +
                            %w[asset extension client extend]
         | 
| 49 49 | 
             
            require_order.each do |name|
         | 
| 50 50 | 
             
              require_relative "discorb/#{name}.rb"
         | 
| 51 51 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: discorb
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.5. | 
| 4 | 
            +
              version: 0.5.5
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - sevenc-nanashi
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2021-09- | 
| 11 | 
            +
            date: 2021-09-12 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: async
         |