D++ (DPP)
C++ Discord API Bot Library
|
Represents an emoji for a dpp::guild. More...
Public Member Functions | |
emoji ()=default | |
Construct a new emoji object. More... | |
emoji (const std::string_view name, const snowflake id=0, const uint8_t flags=0) | |
Construct a new emoji object with name, ID and flags. More... | |
emoji (const emoji &rhs)=default | |
Copy constructor, copies another emoji's data. More... | |
emoji (emoji &&rhs) noexcept=default | |
Move constructor, moves another emoji's data to this. More... | |
~emoji () override=default | |
Destroy the emoji object. More... | |
emoji & | operator= (const emoji &rhs)=default |
Copy assignment operator, copies another emoji's data. More... | |
emoji & | operator= (emoji &&rhs) noexcept=default |
Move constructor, moves another emoji's data to this. More... | |
bool | requires_colons () const |
Emoji requires colons. More... | |
bool | is_managed () const |
Emoji is managed. More... | |
bool | is_animated () const |
Emoji is animated. More... | |
bool | is_available () const |
Is available. More... | |
emoji & | load_image (std::string_view image_blob, const image_type type) |
Load an image into the object. More... | |
emoji & | load_image (const std::byte *data, uint32_t size, const image_type type) |
Load an image into the object. More... | |
std::string | format () const |
Format to name if unicode, name:id if has id or a:name:id if animated. More... | |
std::string | get_mention () const |
Get the mention/ping for the emoji. More... | |
std::string | get_url (uint16_t size=0, const image_type format=i_png, bool prefer_animated=true) const |
Get the custom emoji url. More... | |
constexpr double | get_creation_time () const noexcept |
Get the creation time of this object according to Discord. More... | |
constexpr bool | operator== (const managed &other) const noexcept |
Comparison operator for comparing two managed objects by id. More... | |
constexpr bool | operator!= (const managed &other) const noexcept |
Comparison operator for comparing two managed objects by id. More... | |
template<typename U = T, typename = decltype(std::declval<U&>().fill_from_json_impl(std::declval<nlohmann::json*>()))> | |
T & | fill_from_json (nlohmann::json *j) |
Convert object from nlohmann::json. More... | |
template<typename U = T, typename = decltype(std::declval<U&>().to_json_impl(bool{}))> | |
auto | to_json (bool with_id=false) const |
Convert object to nlohmann::json. More... | |
template<typename U = T, typename = decltype(std::declval<U&>().to_json_impl(bool{}))> | |
std::string | build_json (bool with_id=false) const |
Convert object to json string. More... | |
Static Public Member Functions | |
static std::string | get_mention (std::string_view name, snowflake id, bool is_animated=false) |
Create a mentionable emoji. More... | |
Public Attributes | |
std::string | name {} |
Emoji name. More... | |
std::vector< snowflake > | roles |
Roles allowed to use this emoji. More... | |
snowflake | user_id |
The id of the user that created this emoji. More... | |
utility::image_data | image_data |
Image data for the emoji, if uploading. More... | |
uint8_t | flags {0} |
Flags for the emoji from dpp::emoji_flags. More... | |
snowflake | id = {} |
Unique ID of object set by Discord. This value contains a timestamp, worker ID, internal server ID, and an incrementing value. Only the timestamp is relevant to us as useful metadata. More... | |
Protected Member Functions | |
emoji & | fill_from_json_impl (nlohmann::json *j) |
Read class values from json object. More... | |
json | to_json_impl (bool with_id=false) const |
Build the json for this object. More... | |
Friends | |
struct | json_interface< emoji > |
Represents an emoji for a dpp::guild.
|
default |
Construct a new emoji object.
Construct a new emoji object with name, ID and flags.
name | The emoji's name |
id | ID, if it has one (unicode does not) |
flags | Emoji flags (emoji_flags) |
|
default |
Copy constructor, copies another emoji's data.
rhs | Emoji to copy |
|
defaultnoexcept |
Move constructor, moves another emoji's data to this.
rhs | Emoji to move from |
|
overridedefault |
Destroy the emoji object.
|
inlineinherited |
Convert object to json string.
with_id | Whether to include the ID or not |
|
inlineinherited |
Convert object from nlohmann::json.
j | nlohmann::json object |
|
protected |
Read class values from json object.
j | A json object to read from |
std::string dpp::emoji::format | ( | ) | const |
Format to name if unicode, name:id if has id or a:name:id if animated.
|
inlineconstexprnoexceptinherited |
Get the creation time of this object according to Discord.
std::string dpp::emoji::get_mention | ( | ) | const |
Get the mention/ping for the emoji.
|
static |
Create a mentionable emoji.
name | The name of the emoji. |
id | The ID of the emoji. |
is_animated | is emoji animated. |
std::string dpp::emoji::get_url | ( | uint16_t | size = 0 , |
const image_type | format = i_png , |
||
bool | prefer_animated = true |
||
) | const |
Get the custom emoji url.
size | The size of the emoji in pixels. It can be any power of two between 16 and 4096, otherwise the default sized emoji is returned. |
format | The format to use for the emoji. It can be one of i_webp , i_jpg , i_png or i_gif . When passing i_gif , it returns an empty string for non-animated emojis. Consider using the prefer_animated parameter instead. |
prefer_animated | Whether you prefer gif format. If true, it'll return gif format whenever the emoji is available as animated. |
bool dpp::emoji::is_animated | ( | ) | const |
Emoji is animated.
bool dpp::emoji::is_available | ( | ) | const |
Is available.
bool dpp::emoji::is_managed | ( | ) | const |
Emoji is managed.
emoji& dpp::emoji::load_image | ( | const std::byte * | data, |
uint32_t | size, | ||
const image_type | type | ||
) |
Load an image into the object.
data | Image binary data |
size | Size of the image. |
type | Type of image. It can be one of i_gif , i_jpg or i_png . |
dpp::length_exception | Image content exceeds discord maximum of 256 kilobytes |
emoji& dpp::emoji::load_image | ( | std::string_view | image_blob, |
const image_type | type | ||
) |
Load an image into the object.
image_blob | Image binary data |
type | Type of image. It can be one of i_gif , i_jpg or i_png . |
dpp::length_exception | Image content exceeds discord maximum of 256 kilobytes |
|
inlineconstexprnoexceptinherited |
Comparison operator for comparing two managed objects by id.
other | Other object to compare against |
Copy assignment operator, copies another emoji's data.
rhs | Emoji to copy |
Move constructor, moves another emoji's data to this.
rhs | Emoji to move from |
|
inlineconstexprnoexceptinherited |
Comparison operator for comparing two managed objects by id.
other | Other object to compare against |
bool dpp::emoji::requires_colons | ( | ) | const |
Emoji requires colons.
|
inlineinherited |
Convert object to nlohmann::json.
with_id | Whether to include the ID or not |
Build the json for this object.
with_id | include the id in the JSON |
|
friend |
uint8_t dpp::emoji::flags {0} |
Flags for the emoji from dpp::emoji_flags.
|
inherited |
Unique ID of object set by Discord. This value contains a timestamp, worker ID, internal server ID, and an incrementing value. Only the timestamp is relevant to us as useful metadata.
utility::image_data dpp::emoji::image_data |
Image data for the emoji, if uploading.
std::string dpp::emoji::name {} |
Emoji name.
std::vector<snowflake> dpp::emoji::roles |
Roles allowed to use this emoji.
snowflake dpp::emoji::user_id |
The id of the user that created this emoji.