class Discorb::Invite
Represents invite of discord.
Attributes
target_types[R]
@!visibility private
approximate_member_count[R]
@return [Integer] The approximate number of members of invite.
approximate_presence_count[R]
@return [Integer] The approximate number of online users of invite.
code[R]
@return [String] The code of invite.
created_at[R]
@return [Time] The time when invite was created. @macro nometa
expires_at[R]
@return [Time] The time when invite expires. @return [nil] The invite never expires. @macro [new] nometa
@return [nil] The invite doesn't have metadata.
max_age[R]
@return [Integer] Duration of invite in seconds. @macro nometa
max_uses[R]
@return [Integer] The maximum number of uses of invite. @macro nometa
target_type[R]
@return [:voice, :stream, :guild] The type of invite.
target_user[R]
@return [User] The user of invite.
uses[R]
@return [Integer] The number of uses of invite. @macro nometa
Public Class Methods
new(client, data, gateway)
click to toggle source
@!visibility private
# File lib/discorb/invite.rb, line 76 def initialize(client, data, gateway) @client = client @data = data[:data] _set_data(data, gateway) end
Public Instance Methods
channel()
click to toggle source
# File lib/discorb/invite.rb, line 82 def channel @client.channels[@channel_data[:id]] end
delete!(reason: nil)
click to toggle source
Delete the invite. @macro async @macro http
# File lib/discorb/invite.rb, line 105 def delete!(reason: nil) Async do @client.http.delete("/invites/#{@code}", audit_log_reason: reason) end end
guild()
click to toggle source
# File lib/discorb/invite.rb, line 86 def guild @client.guilds[@guild_data[:id]] end
remain_uses()
click to toggle source
# File lib/discorb/invite.rb, line 94 def remain_uses @max_uses && @max_uses - @uses end
temporary?()
click to toggle source
# File lib/discorb/invite.rb, line 98 def temporary? @temporary end
url()
click to toggle source
# File lib/discorb/invite.rb, line 90 def url "https://discord.gg/#{@code}" end
Private Instance Methods
_set_data(data, gateway)
click to toggle source
# File lib/discorb/invite.rb, line 113 def _set_data(data, gateway) @code = data[:code] if gateway @channel_data = { id: data[:channel_id] } @guild_data = { id: data[:guild_id] } else @guild_data = data[:guild] @channel_data = data[:channel] @approximate_presence_count = data[:approximate_presence_count] @approximate_member_count = data[:approximate_member_count] @expires_at = data[:expires_at] && Time.iso8601(data[:expires_at]) end @inviter_data = data[:inviter] @target_type = self.class.target_types[data[:target_type]] @target_user = @client.users[data[:target_user][:id]] || User.new(@client, data[:target_user]) if data[:target_user] # @target_application = nil # @stage_instance = data[:stage_instance] && Invite::StageInstance.new(self, data[:stage_instance]) return unless data.key?(:uses) @uses = data[:uses] @max_uses = data[:max_uses] @max_age = data[:max_age] @temporary = data[:temporary] @created_at = Time.iso8601(data[:created_at]) end