discordrb 1.7.3 → 1.7.4
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.
Potentially problematic release.
This version of discordrb might be problematic. Click here for more details.
- checksums.yaml +4 -4
 - data/CHANGELOG.md +9 -0
 - data/lib/discordrb/bot.rb +46 -24
 - data/lib/discordrb/data.rb +18 -5
 - data/lib/discordrb/events/await.rb +10 -0
 - data/lib/discordrb/events/message.rb +16 -0
 - data/lib/discordrb/logger.rb +3 -1
 - data/lib/discordrb/version.rb +1 -1
 - data/lib/discordrb/voice/encoder.rb +0 -5
 - data/lib/discordrb/voice/network.rb +5 -4
 - data/lib/discordrb/voice/voice_bot.rb +1 -1
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 36dd991249332783c1bd50f94ddbb555cc8483d2
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 2b68f3bb825c2e6f49290356d7f7ebcbbb8e509e
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: b22aa3bfb28c470f931eec7e060414f349e3cd46c29cd725cdc3235e372ece0dbaccd1d72b7b6077afb0f12b76ed112abc869a844acb152c5e8eb2e0c1ef0210
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 12ee016ea86fb2fcd721855f32466552b4e471212c247005b864c416359b969e1b5ce943141eceede6177405d12c2b210f364533a55a44210fb0ab8e96eb90f9
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -1,5 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # Changelog
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
            ## 1.7.4
         
     | 
| 
      
 4 
     | 
    
         
            +
            * Added methods `Channel#text?` and `Channel#voice?` to check a channel's type.
         
     | 
| 
      
 5 
     | 
    
         
            +
            * Frequently allocated strings have been turned into symbols or frozen constants, this should improve performance slightly.
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            ### Bugfixes
         
     | 
| 
      
 8 
     | 
    
         
            +
            * `VoiceBot#destroy` will now properly disconnect you and should no longer cause segfaults.
         
     | 
| 
      
 9 
     | 
    
         
            +
            * Fixed a bug where you couldn't set any settings on a role created using `Server#create_role`.
         
     | 
| 
      
 10 
     | 
    
         
            +
            * Fixed `Profile#avatar=` doing absolutely nothing.
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
       3 
12 
     | 
    
         
             
            ## 1.7.3
         
     | 
| 
       4 
13 
     | 
    
         
             
            * The server banlist can now be accessed more nicely using `Server#bans`.
         
     | 
| 
       5 
14 
     | 
    
         
             
            * Some abstractions for OAuth application creation were added - `bot.create_oauth_application` and `bot.update_oauth_application`. See the docs about how to use them.
         
     | 
    
        data/lib/discordrb/bot.rb
    CHANGED
    
    | 
         @@ -265,6 +265,27 @@ module Discordrb 
     | 
|
| 
       265 
265 
     | 
    
         
             
                  @voice
         
     | 
| 
       266 
266 
     | 
    
         
             
                end
         
     | 
| 
       267 
267 
     | 
    
         | 
| 
      
 268 
     | 
    
         
            +
                # Disconnects the client from all voice connections across Discord.
         
     | 
| 
      
 269 
     | 
    
         
            +
                # @param destroy_vws [true, false] Whether or not the VWS should also be destroyed. If you're calling this method
         
     | 
| 
      
 270 
     | 
    
         
            +
                #   directly, you should leave it as true.
         
     | 
| 
      
 271 
     | 
    
         
            +
                def voice_destroy(destroy_vws = true)
         
     | 
| 
      
 272 
     | 
    
         
            +
                  data = {
         
     | 
| 
      
 273 
     | 
    
         
            +
                      op: 4,
         
     | 
| 
      
 274 
     | 
    
         
            +
                      d: {
         
     | 
| 
      
 275 
     | 
    
         
            +
                          guild_id: nil,
         
     | 
| 
      
 276 
     | 
    
         
            +
                          channel_id: nil,
         
     | 
| 
      
 277 
     | 
    
         
            +
                          self_mute: false,
         
     | 
| 
      
 278 
     | 
    
         
            +
                          self_deaf: false
         
     | 
| 
      
 279 
     | 
    
         
            +
                      }
         
     | 
| 
      
 280 
     | 
    
         
            +
                  }
         
     | 
| 
      
 281 
     | 
    
         
            +
             
     | 
| 
      
 282 
     | 
    
         
            +
                  debug("Voice channel destroy packet is: #{data.to_json}")
         
     | 
| 
      
 283 
     | 
    
         
            +
                  @ws.send(data.to_json)
         
     | 
| 
      
 284 
     | 
    
         
            +
             
     | 
| 
      
 285 
     | 
    
         
            +
                  @voice.destroy if @voice && destroy_vws
         
     | 
| 
      
 286 
     | 
    
         
            +
                  @voice = nil
         
     | 
| 
      
 287 
     | 
    
         
            +
                end
         
     | 
| 
      
 288 
     | 
    
         
            +
             
     | 
| 
       268 
289 
     | 
    
         
             
                # Revokes an invite to a server. Will fail unless you have the *Manage Server* permission.
         
     | 
| 
       269 
290 
     | 
    
         
             
                # It is recommended that you use {Invite#delete} instead.
         
     | 
| 
       270 
291 
     | 
    
         
             
                # @param code [String, Invite] The invite to revoke. For possible formats see {#resolve_invite_code}.
         
     | 
| 
         @@ -787,8 +808,9 @@ module Discordrb 
     | 
|
| 
       787 
808 
     | 
    
         
             
                  fail 'Invalid Packet' unless packet['op'] == 0 # TODO
         
     | 
| 
       788 
809 
     | 
    
         | 
| 
       789 
810 
     | 
    
         
             
                  data = packet['d']
         
     | 
| 
       790 
     | 
    
         
            -
                   
     | 
| 
       791 
     | 
    
         
            -
                   
     | 
| 
      
 811 
     | 
    
         
            +
                  type = packet['t'].intern
         
     | 
| 
      
 812 
     | 
    
         
            +
                  case type
         
     | 
| 
      
 813 
     | 
    
         
            +
                  when :READY
         
     | 
| 
       792 
814 
     | 
    
         
             
                    # Activate the heartbeats
         
     | 
| 
       793 
815 
     | 
    
         
             
                    @heartbeat_interval = data['heartbeat_interval'].to_f / 1000.0
         
     | 
| 
       794 
816 
     | 
    
         
             
                    @heartbeat_active = true
         
     | 
| 
         @@ -830,7 +852,7 @@ module Discordrb 
     | 
|
| 
       830 
852 
     | 
    
         | 
| 
       831 
853 
     | 
    
         
             
                    # Tell the run method that everything was successful
         
     | 
| 
       832 
854 
     | 
    
         
             
                    @ws_success = true
         
     | 
| 
       833 
     | 
    
         
            -
                  when  
     | 
| 
      
 855 
     | 
    
         
            +
                  when :GUILD_MEMBERS_CHUNK
         
     | 
| 
       834 
856 
     | 
    
         
             
                    id = data['guild_id'].to_i
         
     | 
| 
       835 
857 
     | 
    
         
             
                    members = data['members']
         
     | 
| 
       836 
858 
     | 
    
         | 
| 
         @@ -850,7 +872,7 @@ module Discordrb 
     | 
|
| 
       850 
872 
     | 
    
         
             
                    else
         
     | 
| 
       851 
873 
     | 
    
         
             
                      debug "Got one chunk for server #{id}, parsing took #{duration} seconds"
         
     | 
| 
       852 
874 
     | 
    
         
             
                    end
         
     | 
| 
       853 
     | 
    
         
            -
                  when  
     | 
| 
      
 875 
     | 
    
         
            +
                  when :MESSAGE_CREATE
         
     | 
| 
       854 
876 
     | 
    
         
             
                    create_message(data)
         
     | 
| 
       855 
877 
     | 
    
         | 
| 
       856 
878 
     | 
    
         
             
                    message = Message.new(data, self)
         
     | 
| 
         @@ -869,22 +891,22 @@ module Discordrb 
     | 
|
| 
       869 
891 
     | 
    
         
             
                      event = PrivateMessageEvent.new(message, self)
         
     | 
| 
       870 
892 
     | 
    
         
             
                      raise_event(event)
         
     | 
| 
       871 
893 
     | 
    
         
             
                    end
         
     | 
| 
       872 
     | 
    
         
            -
                  when  
     | 
| 
      
 894 
     | 
    
         
            +
                  when :MESSAGE_UPDATE
         
     | 
| 
       873 
895 
     | 
    
         
             
                    update_message(data)
         
     | 
| 
       874 
896 
     | 
    
         | 
| 
       875 
897 
     | 
    
         
             
                    event = MessageEditEvent.new(data, self)
         
     | 
| 
       876 
898 
     | 
    
         
             
                    raise_event(event)
         
     | 
| 
       877 
     | 
    
         
            -
                  when  
     | 
| 
      
 899 
     | 
    
         
            +
                  when :MESSAGE_DELETE
         
     | 
| 
       878 
900 
     | 
    
         
             
                    delete_message(data)
         
     | 
| 
       879 
901 
     | 
    
         | 
| 
       880 
902 
     | 
    
         
             
                    event = MessageDeleteEvent.new(data, self)
         
     | 
| 
       881 
903 
     | 
    
         
             
                    raise_event(event)
         
     | 
| 
       882 
     | 
    
         
            -
                  when  
     | 
| 
      
 904 
     | 
    
         
            +
                  when :TYPING_START
         
     | 
| 
       883 
905 
     | 
    
         
             
                    start_typing(data)
         
     | 
| 
       884 
906 
     | 
    
         | 
| 
       885 
907 
     | 
    
         
             
                    event = TypingEvent.new(data, self)
         
     | 
| 
       886 
908 
     | 
    
         
             
                    raise_event(event)
         
     | 
| 
       887 
     | 
    
         
            -
                  when  
     | 
| 
      
 909 
     | 
    
         
            +
                  when :PRESENCE_UPDATE
         
     | 
| 
       888 
910 
     | 
    
         
             
                    now_playing = data['game']
         
     | 
| 
       889 
911 
     | 
    
         
             
                    presence_user = user(data['user']['id'].to_i)
         
     | 
| 
       890 
912 
     | 
    
         
             
                    played_before = presence_user.nil? ? nil : presence_user.game
         
     | 
| 
         @@ -897,81 +919,81 @@ module Discordrb 
     | 
|
| 
       897 
919 
     | 
    
         
             
                            end
         
     | 
| 
       898 
920 
     | 
    
         | 
| 
       899 
921 
     | 
    
         
             
                    raise_event(event)
         
     | 
| 
       900 
     | 
    
         
            -
                  when  
     | 
| 
      
 922 
     | 
    
         
            +
                  when :VOICE_STATE_UPDATE
         
     | 
| 
       901 
923 
     | 
    
         
             
                    update_voice_state(data)
         
     | 
| 
       902 
924 
     | 
    
         | 
| 
       903 
925 
     | 
    
         
             
                    event = VoiceStateUpdateEvent.new(data, self)
         
     | 
| 
       904 
926 
     | 
    
         
             
                    raise_event(event)
         
     | 
| 
       905 
     | 
    
         
            -
                  when  
     | 
| 
      
 927 
     | 
    
         
            +
                  when :VOICE_SERVER_UPDATE
         
     | 
| 
       906 
928 
     | 
    
         
             
                    update_voice_server(data)
         
     | 
| 
       907 
929 
     | 
    
         | 
| 
       908 
930 
     | 
    
         
             
                    # no event as this is irrelevant to users
         
     | 
| 
       909 
     | 
    
         
            -
                  when  
     | 
| 
      
 931 
     | 
    
         
            +
                  when :CHANNEL_CREATE
         
     | 
| 
       910 
932 
     | 
    
         
             
                    create_channel(data)
         
     | 
| 
       911 
933 
     | 
    
         | 
| 
       912 
934 
     | 
    
         
             
                    event = ChannelCreateEvent.new(data, self)
         
     | 
| 
       913 
935 
     | 
    
         
             
                    raise_event(event)
         
     | 
| 
       914 
     | 
    
         
            -
                  when  
     | 
| 
      
 936 
     | 
    
         
            +
                  when :CHANNEL_UPDATE
         
     | 
| 
       915 
937 
     | 
    
         
             
                    update_channel(data)
         
     | 
| 
       916 
938 
     | 
    
         | 
| 
       917 
939 
     | 
    
         
             
                    event = ChannelUpdateEvent.new(data, self)
         
     | 
| 
       918 
940 
     | 
    
         
             
                    raise_event(event)
         
     | 
| 
       919 
     | 
    
         
            -
                  when  
     | 
| 
      
 941 
     | 
    
         
            +
                  when :CHANNEL_DELETE
         
     | 
| 
       920 
942 
     | 
    
         
             
                    delete_channel(data)
         
     | 
| 
       921 
943 
     | 
    
         | 
| 
       922 
944 
     | 
    
         
             
                    event = ChannelDeleteEvent.new(data, self)
         
     | 
| 
       923 
945 
     | 
    
         
             
                    raise_event(event)
         
     | 
| 
       924 
     | 
    
         
            -
                  when  
     | 
| 
      
 946 
     | 
    
         
            +
                  when :GUILD_MEMBER_ADD
         
     | 
| 
       925 
947 
     | 
    
         
             
                    add_guild_member(data)
         
     | 
| 
       926 
948 
     | 
    
         | 
| 
       927 
949 
     | 
    
         
             
                    event = GuildMemberAddEvent.new(data, self)
         
     | 
| 
       928 
950 
     | 
    
         
             
                    raise_event(event)
         
     | 
| 
       929 
     | 
    
         
            -
                  when  
     | 
| 
      
 951 
     | 
    
         
            +
                  when :GUILD_MEMBER_UPDATE
         
     | 
| 
       930 
952 
     | 
    
         
             
                    update_guild_member(data)
         
     | 
| 
       931 
953 
     | 
    
         | 
| 
       932 
954 
     | 
    
         
             
                    event = GuildMemberUpdateEvent.new(data, self)
         
     | 
| 
       933 
955 
     | 
    
         
             
                    raise_event(event)
         
     | 
| 
       934 
     | 
    
         
            -
                  when  
     | 
| 
      
 956 
     | 
    
         
            +
                  when :GUILD_MEMBER_REMOVE
         
     | 
| 
       935 
957 
     | 
    
         
             
                    delete_guild_member(data)
         
     | 
| 
       936 
958 
     | 
    
         | 
| 
       937 
959 
     | 
    
         
             
                    event = GuildMemberDeleteEvent.new(data, self)
         
     | 
| 
       938 
960 
     | 
    
         
             
                    raise_event(event)
         
     | 
| 
       939 
     | 
    
         
            -
                  when  
     | 
| 
      
 961 
     | 
    
         
            +
                  when :GUILD_BAN_ADD
         
     | 
| 
       940 
962 
     | 
    
         
             
                    add_user_ban(data)
         
     | 
| 
       941 
963 
     | 
    
         | 
| 
       942 
964 
     | 
    
         
             
                    event = UserBanEvent.new(data, self)
         
     | 
| 
       943 
965 
     | 
    
         
             
                    raise_event(event)
         
     | 
| 
       944 
     | 
    
         
            -
                  when  
     | 
| 
      
 966 
     | 
    
         
            +
                  when :GUILD_BAN_REMOVE
         
     | 
| 
       945 
967 
     | 
    
         
             
                    remove_user_ban(data)
         
     | 
| 
       946 
968 
     | 
    
         | 
| 
       947 
969 
     | 
    
         
             
                    event = UserUnbanEvent.new(data, self)
         
     | 
| 
       948 
970 
     | 
    
         
             
                    raise_event(event)
         
     | 
| 
       949 
     | 
    
         
            -
                  when  
     | 
| 
      
 971 
     | 
    
         
            +
                  when :GUILD_ROLE_UPDATE
         
     | 
| 
       950 
972 
     | 
    
         
             
                    update_guild_role(data)
         
     | 
| 
       951 
973 
     | 
    
         | 
| 
       952 
974 
     | 
    
         
             
                    event = GuildRoleUpdateEvent.new(data, self)
         
     | 
| 
       953 
975 
     | 
    
         
             
                    raise_event(event)
         
     | 
| 
       954 
     | 
    
         
            -
                  when  
     | 
| 
      
 976 
     | 
    
         
            +
                  when :GUILD_ROLE_CREATE
         
     | 
| 
       955 
977 
     | 
    
         
             
                    create_guild_role(data)
         
     | 
| 
       956 
978 
     | 
    
         | 
| 
       957 
979 
     | 
    
         
             
                    event = GuildRoleCreateEvent.new(data, self)
         
     | 
| 
       958 
980 
     | 
    
         
             
                    raise_event(event)
         
     | 
| 
       959 
     | 
    
         
            -
                  when  
     | 
| 
      
 981 
     | 
    
         
            +
                  when :GUILD_ROLE_DELETE
         
     | 
| 
       960 
982 
     | 
    
         
             
                    delete_guild_role(data)
         
     | 
| 
       961 
983 
     | 
    
         | 
| 
       962 
984 
     | 
    
         
             
                    event = GuildRoleDeleteEvent.new(data, self)
         
     | 
| 
       963 
985 
     | 
    
         
             
                    raise_event(event)
         
     | 
| 
       964 
     | 
    
         
            -
                  when  
     | 
| 
      
 986 
     | 
    
         
            +
                  when :GUILD_CREATE
         
     | 
| 
       965 
987 
     | 
    
         
             
                    create_guild(data)
         
     | 
| 
       966 
988 
     | 
    
         | 
| 
       967 
989 
     | 
    
         
             
                    event = GuildCreateEvent.new(data, self)
         
     | 
| 
       968 
990 
     | 
    
         
             
                    raise_event(event)
         
     | 
| 
       969 
     | 
    
         
            -
                  when  
     | 
| 
      
 991 
     | 
    
         
            +
                  when :GUILD_UPDATE
         
     | 
| 
       970 
992 
     | 
    
         
             
                    update_guild(data)
         
     | 
| 
       971 
993 
     | 
    
         | 
| 
       972 
994 
     | 
    
         
             
                    event = GuildUpdateEvent.new(data, self)
         
     | 
| 
       973 
995 
     | 
    
         
             
                    raise_event(event)
         
     | 
| 
       974 
     | 
    
         
            -
                  when  
     | 
| 
      
 996 
     | 
    
         
            +
                  when :GUILD_DELETE
         
     | 
| 
       975 
997 
     | 
    
         
             
                    delete_guild(data)
         
     | 
| 
       976 
998 
     | 
    
         | 
| 
       977 
999 
     | 
    
         
             
                    event = GuildDeleteEvent.new(data, self)
         
     | 
    
        data/lib/discordrb/data.rb
    CHANGED
    
    | 
         @@ -262,7 +262,7 @@ module Discordrb 
     | 
|
| 
       262 
262 
     | 
    
         
             
                # Changes the bot's avatar.
         
     | 
| 
       263 
263 
     | 
    
         
             
                # @param avatar [String, File] A JPG file to be used as the avatar, either as a File object or as a base64-encoded String.
         
     | 
| 
       264 
264 
     | 
    
         
             
                def avatar=(avatar)
         
     | 
| 
       265 
     | 
    
         
            -
                  if avatar. 
     | 
| 
      
 265 
     | 
    
         
            +
                  if avatar.respond_to? :read
         
     | 
| 
       266 
266 
     | 
    
         
             
                    avatar_string = 'data:image/jpg;base64,'
         
     | 
| 
       267 
267 
     | 
    
         
             
                    avatar_string += Base64.strict_encode64(avatar.read)
         
     | 
| 
       268 
268 
     | 
    
         
             
                    update_server_data(avatar: avatar_string)
         
     | 
| 
         @@ -288,7 +288,7 @@ module Discordrb 
     | 
|
| 
       288 
288 
     | 
    
         
             
                                  new_data[:email] || @email,
         
     | 
| 
       289 
289 
     | 
    
         
             
                                  @password,
         
     | 
| 
       290 
290 
     | 
    
         
             
                                  new_data[:username] || @username,
         
     | 
| 
       291 
     | 
    
         
            -
                                  new_data[: 
     | 
| 
      
 291 
     | 
    
         
            +
                                  new_data[:avatar],
         
     | 
| 
       292 
292 
     | 
    
         
             
                                  new_data[:new_password] || nil)
         
     | 
| 
       293 
293 
     | 
    
         
             
                  update_data(new_data)
         
     | 
| 
       294 
294 
     | 
    
         
             
                end
         
     | 
| 
         @@ -474,10 +474,13 @@ module Discordrb 
     | 
|
| 
       474 
474 
     | 
    
         | 
| 
       475 
475 
     | 
    
         
             
              # A Discord channel, including data like the topic
         
     | 
| 
       476 
476 
     | 
    
         
             
              class Channel
         
     | 
| 
      
 477 
     | 
    
         
            +
                TEXT_TYPE = 'text'.freeze
         
     | 
| 
      
 478 
     | 
    
         
            +
                VOICE_TYPE = 'voice'.freeze
         
     | 
| 
      
 479 
     | 
    
         
            +
             
     | 
| 
       477 
480 
     | 
    
         
             
                # @return [String] this channel's name.
         
     | 
| 
       478 
481 
     | 
    
         
             
                attr_reader :name
         
     | 
| 
       479 
482 
     | 
    
         | 
| 
       480 
     | 
    
         
            -
                # @return [Server] the server this channel is on.
         
     | 
| 
      
 483 
     | 
    
         
            +
                # @return [Server, nil] the server this channel is on. If this channel is a PM channel, it will be nil.
         
     | 
| 
       481 
484 
     | 
    
         
             
                attr_reader :server
         
     | 
| 
       482 
485 
     | 
    
         | 
| 
       483 
486 
     | 
    
         
             
                # @return [String] the type of this channel (currently either 'text' or 'voice')
         
     | 
| 
         @@ -523,7 +526,7 @@ module Discordrb 
     | 
|
| 
       523 
526 
     | 
    
         
             
                  data = data[-1] if data.is_a?(Array)
         
     | 
| 
       524 
527 
     | 
    
         | 
| 
       525 
528 
     | 
    
         
             
                  @id = data['id'].to_i
         
     | 
| 
       526 
     | 
    
         
            -
                  @type = data['type'] ||  
     | 
| 
      
 529 
     | 
    
         
            +
                  @type = data['type'] || TEXT_TYPE
         
     | 
| 
       527 
530 
     | 
    
         
             
                  @topic = data['topic']
         
     | 
| 
       528 
531 
     | 
    
         
             
                  @position = data['position']
         
     | 
| 
       529 
532 
     | 
    
         | 
| 
         @@ -555,6 +558,16 @@ module Discordrb 
     | 
|
| 
       555 
558 
     | 
    
         
             
                  Discordrb.id_compare(@id, other)
         
     | 
| 
       556 
559 
     | 
    
         
             
                end
         
     | 
| 
       557 
560 
     | 
    
         | 
| 
      
 561 
     | 
    
         
            +
                # @return [true, false] whether or not this channel is a text channel
         
     | 
| 
      
 562 
     | 
    
         
            +
                def text?
         
     | 
| 
      
 563 
     | 
    
         
            +
                  @type == TEXT_TYPE
         
     | 
| 
      
 564 
     | 
    
         
            +
                end
         
     | 
| 
      
 565 
     | 
    
         
            +
             
     | 
| 
      
 566 
     | 
    
         
            +
                # @return [true, false] whether or not this channel is a voice channel
         
     | 
| 
      
 567 
     | 
    
         
            +
                def voice?
         
     | 
| 
      
 568 
     | 
    
         
            +
                  @type == VOICE_TYPE
         
     | 
| 
      
 569 
     | 
    
         
            +
                end
         
     | 
| 
      
 570 
     | 
    
         
            +
             
     | 
| 
       558 
571 
     | 
    
         
             
                # Sends a message to this channel.
         
     | 
| 
       559 
572 
     | 
    
         
             
                # @param content [String] The content to send. Should not be longer than 2000 characters or it will result in an error.
         
     | 
| 
       560 
573 
     | 
    
         
             
                # @return [Message] the message that was sent.
         
     | 
| 
         @@ -905,7 +918,7 @@ module Discordrb 
     | 
|
| 
       905 
918 
     | 
    
         
             
                # @return [Role] the created role.
         
     | 
| 
       906 
919 
     | 
    
         
             
                def create_role
         
     | 
| 
       907 
920 
     | 
    
         
             
                  response = API.create_role(@bot.token, @id)
         
     | 
| 
       908 
     | 
    
         
            -
                  role = Role.new(JSON.parse(response), @bot)
         
     | 
| 
      
 921 
     | 
    
         
            +
                  role = Role.new(JSON.parse(response), @bot, self)
         
     | 
| 
       909 
922 
     | 
    
         
             
                  @roles << role
         
     | 
| 
       910 
923 
     | 
    
         
             
                  role
         
     | 
| 
       911 
924 
     | 
    
         
             
                end
         
     | 
| 
         @@ -11,6 +11,16 @@ module Discordrb::Events 
     | 
|
| 
       11 
11 
     | 
    
         
             
                # The event that triggered the await.
         
     | 
| 
       12 
12 
     | 
    
         
             
                # @return [Event] The event
         
     | 
| 
       13 
13 
     | 
    
         
             
                attr_reader :event
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                # @!attribute [r] key
         
     | 
| 
      
 16 
     | 
    
         
            +
                #   @return [Symbol] the await's key.
         
     | 
| 
      
 17 
     | 
    
         
            +
                #   @see Await#key
         
     | 
| 
      
 18 
     | 
    
         
            +
                # @!attribute [r] type
         
     | 
| 
      
 19 
     | 
    
         
            +
                #   @return [Class] the await's event class.
         
     | 
| 
      
 20 
     | 
    
         
            +
                #   @see Await#type
         
     | 
| 
      
 21 
     | 
    
         
            +
                # @!attribute [r] attributes
         
     | 
| 
      
 22 
     | 
    
         
            +
                #   @return [Hash] a hash of attributes defined on the await.
         
     | 
| 
      
 23 
     | 
    
         
            +
                #   @see Await#attributes
         
     | 
| 
       14 
24 
     | 
    
         
             
                delegate :key, :type, :attributes, to: :await
         
     | 
| 
       15 
25 
     | 
    
         | 
| 
       16 
26 
     | 
    
         
             
                # For internal use only
         
     | 
| 
         @@ -5,7 +5,23 @@ module Discordrb::Events 
     | 
|
| 
       5 
5 
     | 
    
         
             
              class MessageEvent < Event
         
     | 
| 
       6 
6 
     | 
    
         
             
                attr_reader :message, :saved_message
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
      
 8 
     | 
    
         
            +
                # @!attribute [r] author
         
     | 
| 
      
 9 
     | 
    
         
            +
                #   @return [User] who sent this message.
         
     | 
| 
      
 10 
     | 
    
         
            +
                #   @see Message#author
         
     | 
| 
      
 11 
     | 
    
         
            +
                # @!attribute [r] channel
         
     | 
| 
      
 12 
     | 
    
         
            +
                #   @return [Channel] the channel in which this message was sent.
         
     | 
| 
      
 13 
     | 
    
         
            +
                #   @see Message#channel
         
     | 
| 
      
 14 
     | 
    
         
            +
                # @!attribute [r] content
         
     | 
| 
      
 15 
     | 
    
         
            +
                #   @return [String] the message's content.
         
     | 
| 
      
 16 
     | 
    
         
            +
                #   @see Message#content
         
     | 
| 
      
 17 
     | 
    
         
            +
                # @!attribute [r] timestamp
         
     | 
| 
      
 18 
     | 
    
         
            +
                #   @return [Time] the time at which the message was sent.
         
     | 
| 
      
 19 
     | 
    
         
            +
                #   @see Message#timestamp
         
     | 
| 
       8 
20 
     | 
    
         
             
                delegate :author, :channel, :content, :timestamp, to: :message
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                # @!attribute [r] server
         
     | 
| 
      
 23 
     | 
    
         
            +
                #   @return [Server, nil] the server where this message was sent, or nil if it was sent in PM.
         
     | 
| 
      
 24 
     | 
    
         
            +
                #   @see Channel#server
         
     | 
| 
       9 
25 
     | 
    
         
             
                delegate :server, to: :channel
         
     | 
| 
       10 
26 
     | 
    
         | 
| 
       11 
27 
     | 
    
         
             
                def initialize(message, bot)
         
     | 
    
        data/lib/discordrb/logger.rb
    CHANGED
    
    | 
         @@ -1,4 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            module Discordrb
         
     | 
| 
      
 2 
     | 
    
         
            +
              LOG_TIMESTAMP_FORMAT = '%Y-%m-%d %H:%M:%S.%L %z'.freeze
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
       2 
4 
     | 
    
         
             
              # Logs debug messages
         
     | 
| 
       3 
5 
     | 
    
         
             
              class Logger
         
     | 
| 
       4 
6 
     | 
    
         
             
                # @return [true, false] whether or not this logger should be in debug mode (all debug messages will be printed)
         
     | 
| 
         @@ -7,7 +9,7 @@ module Discordrb 
     | 
|
| 
       7 
9 
     | 
    
         
             
                # Writes a debug message to the console.
         
     | 
| 
       8 
10 
     | 
    
         
             
                # @param important [true, false] Whether this message should be printed regardless of debug mode being on or off.
         
     | 
| 
       9 
11 
     | 
    
         
             
                def debug(message, important = false)
         
     | 
| 
       10 
     | 
    
         
            -
                  puts "[DEBUG : #{Thread.current[:discordrb_name]} @ #{Time.now.strftime( 
     | 
| 
      
 12 
     | 
    
         
            +
                  puts "[DEBUG : #{Thread.current[:discordrb_name]} @ #{Time.now.strftime(LOG_TIMESTAMP_FORMAT)}] #{message}" if @debug || important
         
     | 
| 
       11 
13 
     | 
    
         
             
                end
         
     | 
| 
       12 
14 
     | 
    
         | 
| 
       13 
15 
     | 
    
         
             
                # Logs an exception to the console.
         
     | 
    
        data/lib/discordrb/version.rb
    CHANGED
    
    
| 
         @@ -47,11 +47,6 @@ module Discordrb::Voice 
     | 
|
| 
       47 
47 
     | 
    
         
             
                  @opus.encode(buffer, 1920)
         
     | 
| 
       48 
48 
     | 
    
         
             
                end
         
     | 
| 
       49 
49 
     | 
    
         | 
| 
       50 
     | 
    
         
            -
                # Destroys this encoder and the opus connection, preventing any future encodings.
         
     | 
| 
       51 
     | 
    
         
            -
                def destroy
         
     | 
| 
       52 
     | 
    
         
            -
                  @opus.destroy
         
     | 
| 
       53 
     | 
    
         
            -
                end
         
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
       55 
50 
     | 
    
         
             
                # Adjusts the volume of a given buffer of s16le PCM data.
         
     | 
| 
       56 
51 
     | 
    
         
             
                # @param buf [String] An unencoded PCM (s16le) buffer.
         
     | 
| 
       57 
52 
     | 
    
         
             
                # @param mult [Float] The volume multiplier, 1 for same volume.
         
     | 
| 
         @@ -256,7 +256,7 @@ module Discordrb::Voice 
     | 
|
| 
       256 
256 
     | 
    
         | 
| 
       257 
257 
     | 
    
         
             
                # Disconnects the websocket and kills the thread
         
     | 
| 
       258 
258 
     | 
    
         
             
                def destroy
         
     | 
| 
       259 
     | 
    
         
            -
                  @ 
     | 
| 
      
 259 
     | 
    
         
            +
                  @heartbeat_running = false
         
     | 
| 
       260 
260 
     | 
    
         
             
                end
         
     | 
| 
       261 
261 
     | 
    
         | 
| 
       262 
262 
     | 
    
         
             
                private
         
     | 
| 
         @@ -267,7 +267,8 @@ module Discordrb::Voice 
     | 
|
| 
       267 
267 
     | 
    
         
             
                end
         
     | 
| 
       268 
268 
     | 
    
         | 
| 
       269 
269 
     | 
    
         
             
                def heartbeat_loop
         
     | 
| 
       270 
     | 
    
         
            -
                   
     | 
| 
      
 270 
     | 
    
         
            +
                  @heartbeat_running = true
         
     | 
| 
      
 271 
     | 
    
         
            +
                  while @heartbeat_running
         
     | 
| 
       271 
272 
     | 
    
         
             
                    if @heartbeat_interval
         
     | 
| 
       272 
273 
     | 
    
         
             
                      sleep @heartbeat_interval / 1000.0
         
     | 
| 
       273 
274 
     | 
    
         
             
                      send_heartbeat
         
     | 
| 
         @@ -288,8 +289,8 @@ module Discordrb::Voice 
     | 
|
| 
       288 
289 
     | 
    
         | 
| 
       289 
290 
     | 
    
         
             
                  @client.on(:open) { instance.websocket_open }
         
     | 
| 
       290 
291 
     | 
    
         
             
                  @client.on(:message) { |msg| instance.websocket_message(msg.data) }
         
     | 
| 
       291 
     | 
    
         
            -
                  @client.on(:error) { |e| puts e 
     | 
| 
       292 
     | 
    
         
            -
                  @client.on(:close) { |e| puts e 
     | 
| 
      
 292 
     | 
    
         
            +
                  @client.on(:error) { |e| puts "VWS error: #{e}" }
         
     | 
| 
      
 293 
     | 
    
         
            +
                  @client.on(:close) { |e| puts "VWS close: #{e}" }
         
     | 
| 
       293 
294 
     | 
    
         | 
| 
       294 
295 
     | 
    
         
             
                  # Block any further execution
         
     | 
| 
       295 
296 
     | 
    
         
             
                  heartbeat_loop
         
     | 
| 
         @@ -141,8 +141,8 @@ module Discordrb::Voice 
     | 
|
| 
       141 
141 
     | 
    
         
             
                # Permanently disconnects from the voice channel; to reconnect you will have to call {Bot#voice_connect} again.
         
     | 
| 
       142 
142 
     | 
    
         
             
                def destroy
         
     | 
| 
       143 
143 
     | 
    
         
             
                  stop_playing
         
     | 
| 
      
 144 
     | 
    
         
            +
                  @bot.voice_destroy(false)
         
     | 
| 
       144 
145 
     | 
    
         
             
                  @ws.destroy
         
     | 
| 
       145 
     | 
    
         
            -
                  @encoder.destroy
         
     | 
| 
       146 
146 
     | 
    
         
             
                end
         
     | 
| 
       147 
147 
     | 
    
         | 
| 
       148 
148 
     | 
    
         
             
                # Plays a stream of raw data to the channel. All playback methods are blocking, i. e. they wait for the playback to
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: discordrb
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 1.7. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.7.4
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - meew0
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: exe
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2016-02- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2016-02-28 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: faye-websocket
         
     |