Class: Discorb::CustomEmoji

Inherits:
Emoji
  • Object
show all
Defined in:
lib/discorb/emoji.rb

Overview

Represents a custom emoji in discord.

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Emoji

#==, #eql?

Instance Attribute Details

#available -> Boolean (readonly) Also known as: available?

Returns whether the emoji is available.

Returns:

  • (Boolean)

    whether the emoji is available.



41
42
43
# File 'lib/discorb/emoji.rb', line 41

def available
  @available
end

#guild -> Boolean (readonly)

Returns Whether the emoji requires colons.

Returns:

  • (Boolean)

    Whether the emoji requires colons.



33
34
35
# File 'lib/discorb/emoji.rb', line 33

def guild
  @guild
end

#id -> Discorb::Snowflake (readonly)

Returns The ID of the emoji.

Returns:



25
26
27
# File 'lib/discorb/emoji.rb', line 25

def id
  @id
end

#managed -> Boolean (readonly) Also known as: managed?

Returns whether the emoji is managed by integration (ex: Twitch).

Returns:

  • (Boolean)

    whether the emoji is managed by integration (ex: Twitch).



35
36
37
# File 'lib/discorb/emoji.rb', line 35

def managed
  @managed
end

#name -> String (readonly)

Returns The name of the emoji.

Returns:

  • (String)

    The name of the emoji.



27
28
29
# File 'lib/discorb/emoji.rb', line 27

def name
  @name
end

#require_colons -> Boolean (readonly) Also known as: require_colons?

Returns whether the emoji requires colons.

Returns:

  • (Boolean)

    whether the emoji requires colons.



38
39
40
# File 'lib/discorb/emoji.rb', line 38

def require_colons
  @require_colons
end

#roles -> Array<Discorb::Role> (readonly)

Returns The roles that can use this emoji.

Returns:



29
30
31
# File 'lib/discorb/emoji.rb', line 29

def roles
  @roles
end

#roles? -> Boolean (readonly) Also known as: role?

Returns whether or not this emoji is restricted to certain roles.

Returns:

  • (Boolean)

    whether or not this emoji is restricted to certain roles.



# File 'lib/discorb/emoji.rb', line 44

#user -> Discorb::User (readonly)

Returns The user that created this emoji.

Returns:



31
32
33
# File 'lib/discorb/emoji.rb', line 31

def user
  @user
end

Instance Method Details

#delete!(reason: nil) -> Async::Task<self> Also known as: destroy!

Delete the emoji.

Parameters:

  • reason (String) (defaults to: nil)

    The reason for deleting the emoji.

Returns:

  • (Async::Task<self>)

    The deleted emoji.



124
125
126
127
128
129
130
131
132
133
# File 'lib/discorb/emoji.rb', line 124

def delete!(reason: nil)
  Async do
    @client.http.request(
      Route.new("/guilds/#{@guild.id}/emojis/#{@id}", "//guilds/:guild_id/emojis/:emoji_id",
                :delete), {}, audit_log_reason: reason,
    ).wait
    @available = false
    self
  end
end

#edit(name: Discorb::Unset, roles: 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 emoji.

Parameters:

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

    The new name of the emoji.

  • roles (Array<Discorb::Role>) (defaults to: Discorb::Unset)

    The new roles that can use this emoji.

  • reason (String) (defaults to: nil)

    The reason for editing the emoji.

Returns:

  • (Async::Task<self>)

    The edited emoji.



101
102
103
104
105
106
107
108
109
110
111
112
# File 'lib/discorb/emoji.rb', line 101

def edit(name: Discorb::Unset, roles: Discorb::Unset, reason: nil)
  Async do
    payload = {}
    payload[:name] = name if name != Discorb::Unset
    payload[:roles] = roles.map { |r| Discorb::Utils.try(r, :id) } if roles != Discorb::Unset
    @client.http.request(
      Route.new("/guilds/#{@guild.id}/emojis/#{@id}", "//guilds/:guild_id/emojis/:emoji_id",
                :patch), payload, audit_log_reason: reason,
    )
    self
  end
end

#inspect -> Object



86
87
88
# File 'lib/discorb/emoji.rb', line 86

def inspect
  "#<#{self.class} id=#{@id} :#{@name}:>"
end

#to_s -> String

Format the emoji for sending.

Returns:

  • (String)

    the formatted emoji.



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

def to_s
  "<#{@animated ? "a" : ""}:#{@name}:#{id}>"
end

#to_uri -> String

Format the emoji for URI.

Returns:

  • (String)

    the formatted emoji.



76
77
78
# File 'lib/discorb/emoji.rb', line 76

def to_uri
  "#{@name}:#{@id}"
end