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

Represents a user on discord. May or may not be a member of a dpp::guild. More...

+ Inheritance diagram for dpp::user:
+ Collaboration diagram for dpp::user:

Public Member Functions

 user ()
 Construct a new user object. More...
 
virtual ~user ()=default
 Destroy the user object. More...
 
std::string get_avatar_url (uint16_t size=0, const image_type format=i_png, bool prefer_animated=true) const
 Get the avatar url of the user. More...
 
std::string get_default_avatar_url () const
 Get the default avatar url of the user. This is calculated by the discriminator. More...
 
std::string get_avatar_decoration_url (uint16_t size=0) const
 Get the avatar decoration url of the user if they have one, otherwise returns an empty string. More...
 
std::string get_mention () const
 Return a ping/mention for the user. More...
 
std::string get_url () const
 Returns URL to user. More...
 
bool is_active_developer () const
 Return true if user has the active Developer badge. More...
 
bool is_bot () const
 User is a bot. More...
 
bool is_system () const
 User is a system user (Clyde) More...
 
bool is_mfa_enabled () const
 User has multi-factor authentication enabled. More...
 
bool is_verified () const
 Return true if user has verified account. More...
 
bool has_nitro_full () const
 Return true if user has full nitro. This is mutually exclusive with full nitro. More...
 
bool has_nitro_classic () const
 Return true if user has nitro classic. This is mutually exclusive with nitro classic. More...
 
bool has_nitro_basic () const
 Return true if user has nitro basic. This is mutually exclusive with nitro basic. More...
 
bool is_discord_employee () const
 Return true if user is a discord employee. More...
 
bool is_partnered_owner () const
 Return true if user owns a partnered server. More...
 
bool has_hypesquad_events () const
 Return true if user has hypesquad events. More...
 
bool is_bughunter_1 () const
 Return true if user has the bughunter level 1 badge. More...
 
bool is_house_bravery () const
 Return true if user is in house bravery. More...
 
bool is_house_brilliance () const
 Return true if user is in house brilliance. More...
 
bool is_house_balance () const
 Return true if user is in house balance. More...
 
bool is_early_supporter () const
 Return true if user is an early supporter. More...
 
bool is_team_user () const
 Return true if user is a team user. More...
 
bool is_bughunter_2 () const
 Return true if user has the bughunter level 2 badge. More...
 
bool is_verified_bot () const
 Return true if user has the verified bot badge. More...
 
bool is_verified_bot_dev () const
 Return true if user is an early verified bot developer. More...
 
bool is_certified_moderator () const
 Return true if user is a certified moderator. More...
 
bool is_bot_http_interactions () const
 Return true if user is a bot which exclusively uses HTTP interactions. Bots using HTTP interactions are always considered online even when not connected to a websocket. More...
 
bool has_animated_icon () const
 Return true if user has an animated icon. More...
 
std::string format_username () const
 Format a username into user#discriminator. 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...
 
userfill_from_json (nlohmann::json *j)
 Convert object from nlohmann::json. More...
 
auto to_json (bool with_id=false) const
 Convert object to nlohmann::json. More...
 
std::string build_json (bool with_id=false) const
 Convert object to json string. More...
 

Static Public Member Functions

static std::string get_mention (const snowflake &id)
 Create a mentionable user. More...
 

Public Attributes

std::string username
 Discord username. More...
 
std::string global_name
 Global display name. More...
 
utility::iconhash avatar
 Avatar hash. More...
 
utility::iconhash avatar_decoration
 Avatar decoration hash. More...
 
uint32_t flags
 Flags built from a bitmask of values in dpp::user_flags. More...
 
uint16_t discriminator
 Discriminator (aka tag), 4 digits usually displayed with leading zeroes. More...
 
uint8_t refcount
 Reference count of how many guilds this user is in. 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

userfill_from_json_impl (nlohmann::json *j)
 
virtual json to_json_impl (bool with_id=true) const
 Convert to JSON. More...
 

Friends

struct json_interface< user >
 

Detailed Description

Represents a user on discord. May or may not be a member of a dpp::guild.

Constructor & Destructor Documentation

◆ user()

dpp::user::user ( )

Construct a new user object.

◆ ~user()

virtual dpp::user::~user ( )
virtualdefault

Destroy the user object.

Member Function Documentation

◆ build_json()

std::string dpp::json_interface< user >::build_json ( bool  with_id = false) const
inlineinherited

Convert object to json string.

Parameters
with_idWhether to include the ID or not
Note
Some fields are conditionally filled, do not rely on all fields being present
Returns
std::string Json built from the structure

◆ fill_from_json()

user & dpp::json_interface< user >::fill_from_json ( nlohmann::json *  j)
inlineinherited

Convert object from nlohmann::json.

Parameters
jnlohmann::json object
Returns
T& Reference to self for fluent calling

◆ fill_from_json_impl()

user& dpp::user::fill_from_json_impl ( nlohmann::json *  j)
protected

Fill this record from json.

Parameters
jThe json to fill this record from
Returns
Reference to self

◆ format_username()

std::string dpp::user::format_username ( ) const

Format a username into user#discriminator.

For example Brain#0001

Note
This will, most often, return something like Brain#0000 due to discriminators slowly being removed. Some accounts, along with most bots, still have discriminators, so they will still show as Bot#1234.
Returns
Formatted username and discriminator

◆ get_avatar_decoration_url()

std::string dpp::user::get_avatar_decoration_url ( uint16_t  size = 0) const

Get the avatar decoration url of the user if they have one, otherwise returns an empty string.

Parameters
sizeThe size of the avatar decoration in pixels. It can be any power of two between 16 and 4096, otherwise the default sized avatar decoration is returned.
Returns
std::string avatar url or an empty string

◆ get_avatar_url()

std::string dpp::user::get_avatar_url ( uint16_t  size = 0,
const image_type  format = i_png,
bool  prefer_animated = true 
) const

Get the avatar url of the user.

Note
If the user doesn't have an avatar, the default user avatar url is returned which is always in png format!
Parameters
sizeThe size of the avatar in pixels. It can be any power of two between 16 and 4096, otherwise the default sized avatar is returned.
formatThe format to use for the avatar. 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 images. Consider using the prefer_animated parameter instead.
prefer_animatedWhether you prefer gif format. If true, it'll return gif format whenever the image is available as animated.
Returns
std::string avatar url or an empty string, if required attributes are missing or an invalid format was passed

◆ get_creation_time()

constexpr double dpp::managed::get_creation_time ( ) const
inlineconstexprnoexceptinherited

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_default_avatar_url()

std::string dpp::user::get_default_avatar_url ( ) const

Get the default avatar url of the user. This is calculated by the discriminator.

Returns
std::string avatar url or an empty string, if the discriminator is empty

◆ get_mention() [1/2]

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

Return a ping/mention for the user.

Returns
std::string mention

◆ get_mention() [2/2]

static std::string dpp::user::get_mention ( const snowflake id)
static

Create a mentionable user.

Parameters
idThe ID of the user.
Returns
std::string The formatted mention of the user.

◆ get_url()

std::string dpp::user::get_url ( ) const

Returns URL to user.

Returns
string of URL to user

◆ has_animated_icon()

bool dpp::user::has_animated_icon ( ) const

Return true if user has an animated icon.

Returns
true if icon is animated (gif)

◆ has_hypesquad_events()

bool dpp::user::has_hypesquad_events ( ) const

Return true if user has hypesquad events.

Returns
true if has hypesquad events

◆ has_nitro_basic()

bool dpp::user::has_nitro_basic ( ) const

Return true if user has nitro basic. This is mutually exclusive with nitro basic.

Returns
true if user has nitro basic

◆ has_nitro_classic()

bool dpp::user::has_nitro_classic ( ) const

Return true if user has nitro classic. This is mutually exclusive with nitro classic.

Returns
true if user has nitro classic

◆ has_nitro_full()

bool dpp::user::has_nitro_full ( ) const

Return true if user has full nitro. This is mutually exclusive with full nitro.

Returns
true if user has full nitro

◆ is_active_developer()

bool dpp::user::is_active_developer ( ) const

Return true if user has the active Developer badge.

Returns
true if has active developer

◆ is_bot()

bool dpp::user::is_bot ( ) const

User is a bot.

Returns
True if the user is a bot

◆ is_bot_http_interactions()

bool dpp::user::is_bot_http_interactions ( ) const

Return true if user is a bot which exclusively uses HTTP interactions. Bots using HTTP interactions are always considered online even when not connected to a websocket.

Returns
true if is a http interactions only bot

◆ is_bughunter_1()

bool dpp::user::is_bughunter_1 ( ) const

Return true if user has the bughunter level 1 badge.

Returns
true if has bughunter level 1

◆ is_bughunter_2()

bool dpp::user::is_bughunter_2 ( ) const

Return true if user has the bughunter level 2 badge.

Returns
true if has bughunter level 2

◆ is_certified_moderator()

bool dpp::user::is_certified_moderator ( ) const

Return true if user is a certified moderator.

Returns
true if certified moderator

◆ is_discord_employee()

bool dpp::user::is_discord_employee ( ) const

Return true if user is a discord employee.

Returns
true if user is discord staff

◆ is_early_supporter()

bool dpp::user::is_early_supporter ( ) const

Return true if user is an early supporter.

Returns
true if early supporter

◆ is_house_balance()

bool dpp::user::is_house_balance ( ) const

Return true if user is in house balance.

Returns
true if in house brilliance

◆ is_house_bravery()

bool dpp::user::is_house_bravery ( ) const

Return true if user is in house bravery.

Returns
true if in house bravery

◆ is_house_brilliance()

bool dpp::user::is_house_brilliance ( ) const

Return true if user is in house brilliance.

Returns
true if in house brilliance

◆ is_mfa_enabled()

bool dpp::user::is_mfa_enabled ( ) const

User has multi-factor authentication enabled.

Returns
true if multi-factor is enabled

◆ is_partnered_owner()

bool dpp::user::is_partnered_owner ( ) const

Return true if user owns a partnered server.

Returns
true if user has partnered server

◆ is_system()

bool dpp::user::is_system ( ) const

User is a system user (Clyde)

Returns
true if user is a system user

◆ is_team_user()

bool dpp::user::is_team_user ( ) const

Return true if user is a team user.

Returns
true if a team user

◆ is_verified()

bool dpp::user::is_verified ( ) const

Return true if user has verified account.

Returns
true if verified

◆ is_verified_bot()

bool dpp::user::is_verified_bot ( ) const

Return true if user has the verified bot badge.

Returns
true if verified bot

◆ is_verified_bot_dev()

bool dpp::user::is_verified_bot_dev ( ) const

Return true if user is an early verified bot developer.

Returns
true if verified bot developer

◆ operator!=()

constexpr bool dpp::managed::operator!= ( const managed other) const
inlineconstexprnoexceptinherited

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==()

constexpr bool dpp::managed::operator== ( const managed other) const
inlineconstexprnoexceptinherited

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

◆ to_json()

auto dpp::json_interface< user >::to_json ( bool  with_id = false) const
inlineinherited

Convert object to nlohmann::json.

Parameters
with_idWhether to include the ID or not
Note
Some fields are conditionally filled, do not rely on all fields being present
Returns
json Json built from the structure

◆ to_json_impl()

virtual json dpp::user::to_json_impl ( bool  with_id = true) const
protectedvirtual

Convert to JSON.

Parameters
with_idinclude ID in output
Returns
json JSON output

Reimplemented in dpp::user_identified.

Friends And Related Function Documentation

◆ json_interface< user >

friend struct json_interface< user >
friend

Member Data Documentation

◆ avatar

utility::iconhash dpp::user::avatar

Avatar hash.

◆ avatar_decoration

utility::iconhash dpp::user::avatar_decoration

Avatar decoration hash.

◆ discriminator

uint16_t dpp::user::discriminator

Discriminator (aka tag), 4 digits usually displayed with leading zeroes.

Note
To print the discriminator with leading zeroes, use format_username(). 0 for users that have migrated to the new username format.

◆ flags

uint32_t dpp::user::flags

Flags built from a bitmask of values in dpp::user_flags.

◆ global_name

std::string dpp::user::global_name

Global display name.

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

◆ refcount

uint8_t dpp::user::refcount

Reference count of how many guilds this user is in.

◆ username

std::string dpp::user::username

Discord username.

D++ 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