Class: Discorb::VoiceChannel

Inherits:
GuildChannel show all
Includes:
Connectable, Messageable
Defined in:
lib/discorb/channel/voice.rb

Overview

Represents a voice channel.

Instance Attribute Summary collapse

Attributes inherited from GuildChannel

#permission_overwrites, #position

Attributes inherited from Channel

#id, #name

Instance Method Summary collapse

Methods included from Messageable

#delete_message, #edit_message, #fetch_message, #fetch_messages, #fetch_pins, #pin_message, #post, #typing, #unpin_message

Methods included from Connectable

#connect

Methods inherited from GuildChannel

#<=>, #==, #create_invite, #delete, #delete_permissions, #fetch_invites, #guild, #inspect, #mention, #move, #parent, #set_permissions, #to_s

Methods inherited from Channel

#==, #inspect, #type

Methods inherited from DiscordModel

#==, #eql?, #inspect

Instance Attribute Details

#bitrate -> Integer (readonly)

Returns The bitrate of the voice channel.

Returns:

  • (Integer)

    The bitrate of the voice channel.



9
10
11
# File 'lib/discorb/channel/voice.rb', line 9

def bitrate
  @bitrate
end

#user_limit -> Integer? (readonly)

Returns:

  • (Integer)

    The user limit of the voice channel.

  • (nil)

    If the user limit is not set.



12
13
14
# File 'lib/discorb/channel/voice.rb', line 12

def user_limit
  @user_limit
end

Instance Method Details

#edit(name: Discorb::Unset, position: Discorb::Unset, bitrate: Discorb::Unset, user_limit: Discorb::Unset, rtc_region: Discorb::Unset, reason: nil) -> Async::Task<self> Also known as: modify

Note:

The arguments of this method are defaultly set to Discorb::Unset. Specify value to set the value, if not don't specify or specify Discorb::Unset.

Edit the voice channel.

Parameters:

  • name (String) (defaults to: Discorb::Unset)

    The name of the voice channel.

  • position (Integer) (defaults to: Discorb::Unset)

    The position of the voice channel.

  • bitrate (Integer) (defaults to: Discorb::Unset)

    The bitrate of the voice channel.

  • user_limit (Integer) (defaults to: Discorb::Unset)

    The user limit of the voice channel.

  • rtc_region (Symbol) (defaults to: Discorb::Unset)

    The region of the voice channel.

  • reason (String) (defaults to: nil)

    The reason of editing the voice channel.

Returns:

  • (Async::Task<self>)

    The edited voice channel.



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/discorb/channel/voice.rb', line 37

def edit(
  name: Discorb::Unset,
  position: Discorb::Unset,
  bitrate: Discorb::Unset,
  user_limit: Discorb::Unset,
  rtc_region: Discorb::Unset,
  reason: nil
)
  Async do
    payload = {}
    payload[:name] = name if name != Discorb::Unset
    payload[:position] = position if position != Discorb::Unset
    payload[:bitrate] = bitrate if bitrate != Discorb::Unset
    payload[:user_limit] = user_limit if user_limit != Discorb::Unset
    payload[:rtc_region] = rtc_region if rtc_region != Discorb::Unset

    @client
      .http
      .request(
        Route.new("/channels/#{@id}", "//channels/:channel_id", :patch),
        payload,
        audit_log_reason: reason
      )
      .wait
    self
  end
end

#members -> Object



71
72
73
# File 'lib/discorb/channel/voice.rb', line 71

def members
  voice_states.map(&:member)
end

#voice_states -> Object



67
68
69
# File 'lib/discorb/channel/voice.rb', line 67

def voice_states
  guild.voice_states.select { |state| state.channel&.id == @id }
end