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
# 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



65
66
67
# File 'lib/discorb/channel/voice.rb', line 65

def members
  voice_states.map(&:member)
end

#voice_states -> Object



61
62
63
# File 'lib/discorb/channel/voice.rb', line 61

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