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.



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

def available
  @available
end

#guild -> Boolean (readonly)

Returns Whether the emoji requires colons.

Returns:

  • (Boolean)

    Whether the emoji requires colons.



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

def guild
  @guild
end

#id -> Discorb::Snowflake (readonly)

Returns The ID of the emoji.

Returns:



21
22
23
# File 'lib/discorb/emoji.rb', line 21

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).



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

def managed
  @managed
end

#name -> String (readonly)

Returns The name of the emoji.

Returns:

  • (String)

    The name of the emoji.



23
24
25
# File 'lib/discorb/emoji.rb', line 23

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.



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

def require_colons
  @require_colons
end

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

Returns The roles that can use this emoji.

Returns:



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

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 40

#user -> Discorb::User (readonly)

Returns The user that created this emoji.

Returns:



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

def user
  @user
end

Instance Method Details

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

Note:

This is an asynchronous method, it will return a Async::Task object. Use Async::Task#wait to get the result.

Note:

This method calls HTTP request.

Delete the emoji.

Parameters:

  • reason (String) (defaults to: nil)

    The reason for deleting the emoji.

Returns:

  • (Async::Task<self>)

    The deleted emoji.

Raises:



112
113
114
115
116
117
118
# File 'lib/discorb/emoji.rb', line 112

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

#edit(name: :unset, roles: :unset, reason: nil) -> Async::Task<self> Also known as: modify

Note:

This is an asynchronous method, it will return a Async::Task object. Use Async::Task#wait to get the result.

Note:

This method calls HTTP request.

Note:

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

Edit the emoji.

Parameters:

  • name (String) (defaults to: :unset)

    The new name of the emoji.

  • roles (Array<Discorb::Role>) (defaults to: :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.

Raises:



91
92
93
94
95
96
97
98
99
# File 'lib/discorb/emoji.rb', line 91

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

#inspect -> Object



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

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

#to_s -> String

Format the emoji for sending.

Returns:

  • (String)

    the formatted emoji.



56
57
58
# File 'lib/discorb/emoji.rb', line 56

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

#to_uri -> String

Format the emoji for URI.

Returns:

  • (String)

    the formatted emoji.



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

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