D++ (DPP)
C++ Discord API Bot Library
dpp::emoji Class Reference

Represents an emoji for a dpp::guild. More...

#include <emoji.h>

+ Inheritance diagram for dpp::emoji:
+ Collaboration diagram for dpp::emoji:

Public Member Functions

 emoji ()
 Construct a new emoji object. More...
 
 emoji (const std::string n, const snowflake i=0, const uint8_t f=0)
 Construct a new emoji object with name, ID and flags. More...
 
virtual ~emoji ()
 Destroy the emoji object. More...
 
emojifill_from_json (nlohmann::json *j)
 Read class values from json object. More...
 
std::string build_json (bool with_id=false) const
 Build the json for this object. 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...
 
emojiload_image (const std::string &image_blob, const image_type type)
 Load an image into the object as base64. 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...
 
double get_creation_time () const
 Get the creation time of this object according to Discord. More...
 
bool operator== (const managed &other) const noexcept
 Comparison operator for comparing two managed objects by id. More...
 
bool operator!= (const managed &other) const noexcept
 Comparison operator for comparing two managed objects by id. More...
 

Static Public Member Functions

static std::string get_mention (const std::string &name, const snowflake &id, bool is_animated=false)
 Create a mentionable emoji. More...
 

Public Attributes

std::string name
 Emoji name. More...
 
snowflake user_id
 User id who uploaded the emoji. More...
 
uint8_t flags
 Flags for the emoji from dpp::emoji_flags. More...
 
std::string * image_data
 Image data for the emoji if uploading. 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...
 

Detailed Description

Represents an emoji for a dpp::guild.

Constructor & Destructor Documentation

◆ emoji() [1/2]

dpp::emoji::emoji ( )

Construct a new emoji object.

◆ emoji() [2/2]

dpp::emoji::emoji ( const std::string  n,
const snowflake  i = 0,
const uint8_t  f = 0 
)

Construct a new emoji object with name, ID and flags.

Parameters
nThe emoji's name
iID, if it has one (unicode does not)
fEmoji flags (emoji_flags)

◆ ~emoji()

virtual dpp::emoji::~emoji ( )
virtual

Destroy the emoji object.

Member Function Documentation

◆ build_json()

std::string dpp::emoji::build_json ( bool  with_id = false) const
virtual

Build the json for this object.

Parameters
with_idinclude the id in the JSON
Returns
std::string json data

Reimplemented from dpp::json_interface< emoji >.

◆ fill_from_json()

emoji & dpp::emoji::fill_from_json ( nlohmann::json *  j)

Read class values from json object.

Parameters
jA json object to read from
Returns
A reference to self

◆ format()

std::string dpp::emoji::format ( ) const

Format to name if unicode, name:id if has id or a:name:id if animated.

Returns
Formatted name for reactions

◆ get_creation_time()

double dpp::managed::get_creation_time ( ) const
inherited

Get the creation time of this object according to Discord.

Returns
double creation time inferred from the snowflake ID. The minimum possible value is the first second of 2015.

◆ get_mention() [1/2]

std::string dpp::emoji::get_mention ( ) const

Get the mention/ping for the emoji.

Returns
std::string mention

◆ get_mention() [2/2]

static std::string dpp::emoji::get_mention ( const std::string &  name,
const snowflake id,
bool  is_animated = false 
)
static

Create a mentionable emoji.

Parameters
nameThe name of the emoji.
idThe ID of the emoji.
is_animatedis emoji animated.
Returns
std::string The formatted mention of the emoji.

◆ is_animated()

bool dpp::emoji::is_animated ( ) const

Emoji is animated.

Returns
true Is animated
false Is noy animated

◆ is_available()

bool dpp::emoji::is_available ( ) const

Is available.

Returns
true Is available
false Is unavailable

◆ is_managed()

bool dpp::emoji::is_managed ( ) const

Emoji is managed.

Returns
true Is managed
false Is not managed

◆ load_image()

emoji & dpp::emoji::load_image ( const std::string &  image_blob,
const image_type  type 
)

Load an image into the object as base64.

Parameters
image_blobImage binary data
typeType of image. It can be one of i_gif, i_jpg or i_png.
Returns
emoji& Reference to self
Exceptions
dpp::length_exceptionImage content exceeds discord maximum of 256 kilobytes

◆ operator!=()

bool dpp::managed::operator!= ( const managed other) const
noexceptinherited

Comparison operator for comparing two managed objects by id.

Parameters
otherOther object to compare against
Returns
true objects are not the same id
false objects are the same id

◆ operator==()

bool dpp::managed::operator== ( const managed other) const
noexceptinherited

Comparison operator for comparing two managed objects by id.

Parameters
otherOther object to compare against
Returns
true objects are the same id
false objects are not the same id

◆ requires_colons()

bool dpp::emoji::requires_colons ( ) const

Emoji requires colons.

Returns
true Requires colons
false Does not require colons

Member Data Documentation

◆ flags

uint8_t dpp::emoji::flags

Flags for the emoji from dpp::emoji_flags.

◆ id

snowflake dpp::managed::id
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.

◆ image_data

std::string* dpp::emoji::image_data

Image data for the emoji if uploading.

◆ name

std::string dpp::emoji::name

Emoji name.

◆ user_id

snowflake dpp::emoji::user_id

User id who uploaded the emoji.

D++ Library version 10.0.35D++ Library version 10.0.34D++ Library version 10.0.33D++ Library version 10.0.32D++ Library version 10.0.31D++ Library version 10.0.30D++ Library version 10.0.29D++ Library version 10.0.28D++ Library version 10.0.27D++ Library version 10.0.26D++ Library version 10.0.25D++ Library version 10.0.24D++ Library version 10.0.23D++ Library version 10.0.22D++ Library version 10.0.21D++ Library version 10.0.20D++ Library version 10.0.19D++ Library version 10.0.18D++ Library version 10.0.17D++ Library version 10.0.16D++ Library version 10.0.15D++ Library version 10.0.14D++ Library version 10.0.13D++ Library version 10.0.12D++ Library version 10.0.11D++ Library version 10.0.10D++ Library version 10.0.9D++ Library version 10.0.8D++ Library version 10.0.7D++ Library version 10.0.6D++ Library version 10.0.5D++ Library version 10.0.4D++ Library version 10.0.3D++ Library version 10.0.2D++ Library version 10.0.1D++ Library version 10.0.0D++ Library version 9.0.19D++ Library version 9.0.18D++ Library version 9.0.17D++ Library version 9.0.16D++ Library version 9.0.15D++ Library version 9.0.14D++ Library version 9.0.13D++ Library version 9.0.12D++ Library version 9.0.11D++ Library version 9.0.10D++ Library version 9.0.9D++ Library version 9.0.8D++ Library version 9.0.7D++ Library version 9.0.6D++ Library version 9.0.5D++ Library version 9.0.4D++ Library version 9.0.3D++ Library version 9.0.2D++ Library version 9.0.1D++ Library version 9.0.0D++ Library version 1.0.2D++ Library version 1.0.1D++ Library version 1.0.0