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

A definition of a discord channel. More...

#include <channel.h>

+ Inheritance diagram for dpp::channel:
+ Collaboration diagram for dpp::channel:

Public Member Functions

 channel ()
 
virtual ~channel ()
 
channelfill_from_json (nlohmann::json *j)
 
std::string build_json (bool with_id=false) const
 Build json for this channel object. More...
 
uint64_t get_user_permissions (const class user *member) const
 Get the user permissions for a user on this channel. More...
 
std::map< snowflake, class guild_member * > get_members ()
 Return a map of members on the channel, built from the guild's member list based on which members have the VIEW_CHANNEL permission. Does not return reliable information for voice channels, use dpp::channel::get_voice_members() instead for this. More...
 
std::map< snowflake, voicestateget_voice_members ()
 Get a map of members in this channel, if it is a voice channel. The map is keyed by snowflake id of the user. More...
 
bool is_nsfw () const
 Returns true if the channel is NSFW gated. More...
 
bool is_text_channel () const
 Returns true if the channel is a text channel. More...
 
bool is_dm () const
 Returns true if the channel is a DM. More...
 
bool is_voice_channel () const
 Returns true if the channel is a voice channel. More...
 
bool is_group_dm () const
 Returns true if the channel is a group DM channel. More...
 
bool is_category () const
 Returns true if the channel is a category. More...
 
bool is_news_channel () const
 Returns true if the channel is a news channel. More...
 
bool is_store_channel () const
 Returns true if the channel is a store channel. More...
 
bool is_news_thread () const
 
bool is_public_thread () const
 
bool is_private_thread () const
 
bool is_stage_channel () const
 Returns true if the channel is a stage channel. More...
 

Public Attributes

uint8_t flags
 
snowflake guild_id
 
uint16_t position
 
std::string name
 
std::string topic
 
snowflake last_message_id
 
uint8_t user_limit
 
uint16_t bitrate
 
uint16_t rate_limit_per_user
 
snowflake owner_id
 
snowflake parent_id
 
time_t last_pin_timestamp
 
std::vector< snowflakerecipients
 
std::vector< permission_overwritepermission_overwrites
 
uint8_t message_count
 
uint8_t member_count
 
thread_metadata metadata
 
snowflake id
 

Detailed Description

A definition of a discord channel.

Constructor & Destructor Documentation

◆ channel()

dpp::channel::channel ( )

Constructor

◆ ~channel()

virtual dpp::channel::~channel ( )
virtual

Destructor

Member Function Documentation

◆ build_json()

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

Build json for this channel object.

Parameters
with_idinclude the ID in the json
Returns
std::string JSON string

◆ fill_from_json()

channel & dpp::channel::fill_from_json ( nlohmann::json j)

Read class values from json object

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

◆ get_members()

std::map< snowflake, class guild_member * > dpp::channel::get_members ( )

Return a map of members on the channel, built from the guild's member list based on which members have the VIEW_CHANNEL permission. Does not return reliable information for voice channels, use dpp::channel::get_voice_members() instead for this.

Returns
A map of guild members keyed by user id.

◆ get_user_permissions()

uint64_t dpp::channel::get_user_permissions ( const class user member) const

Get the user permissions for a user on this channel.

Parameters
memberThe user to return permissions for
Returns
uint64_t Permissions bitmask made of bits in role_permissions. Note that if the user is not on the channel or the guild is not in the cache, the function will always return 0.

◆ get_voice_members()

std::map< snowflake, voicestate > dpp::channel::get_voice_members ( )

Get a map of members in this channel, if it is a voice channel. The map is keyed by snowflake id of the user.

Returns
std::map<snowflake, voicestate> The voice members of the channel

◆ is_category()

bool dpp::channel::is_category ( ) const

Returns true if the channel is a category.

Returns
true if a category

◆ is_dm()

bool dpp::channel::is_dm ( ) const

Returns true if the channel is a DM.

Returns
true if is a DM

◆ is_group_dm()

bool dpp::channel::is_group_dm ( ) const

Returns true if the channel is a group DM channel.

Returns
true if group DM

◆ is_news_channel()

bool dpp::channel::is_news_channel ( ) const

Returns true if the channel is a news channel.

Returns
true if news channel

◆ is_news_thread()

bool dpp::channel::is_news_thread ( ) const

◆ is_nsfw()

bool dpp::channel::is_nsfw ( ) const

Returns true if the channel is NSFW gated.

Returns
true if NSFW

◆ is_private_thread()

bool dpp::channel::is_private_thread ( ) const

◆ is_public_thread()

bool dpp::channel::is_public_thread ( ) const

◆ is_stage_channel()

bool dpp::channel::is_stage_channel ( ) const

Returns true if the channel is a stage channel.

Returns
true if stage channel

◆ is_store_channel()

bool dpp::channel::is_store_channel ( ) const

Returns true if the channel is a store channel.

Returns
true if store channel

◆ is_text_channel()

bool dpp::channel::is_text_channel ( ) const

Returns true if the channel is a text channel.

Returns
true if text channel

◆ is_voice_channel()

bool dpp::channel::is_voice_channel ( ) const

Returns true if the channel is a voice channel.

Returns
true if voice channel

Member Data Documentation

◆ bitrate

uint16_t dpp::channel::bitrate

the bitrate (in bits) of the voice channel

◆ flags

uint8_t dpp::channel::flags

Flags bitmap

◆ guild_id

snowflake dpp::channel::guild_id

Guild id of the guild that owns the channel

◆ id

snowflake dpp::managed::id
inherited

Unique ID of object

◆ last_message_id

snowflake dpp::channel::last_message_id

ID of last message to be sent to the channel

◆ last_pin_timestamp

time_t dpp::channel::last_pin_timestamp

Timestamp of last pinned message

◆ member_count

uint8_t dpp::channel::member_count

Approximate count of members in a thread (threads)

◆ message_count

uint8_t dpp::channel::message_count

Approximate count of messages in a thread (threads)

◆ metadata

thread_metadata dpp::channel::metadata

Thread metadata (threads)

◆ name

std::string dpp::channel::name

Channel name

◆ owner_id

snowflake dpp::channel::owner_id

User ID of owner for group DMs

◆ parent_id

snowflake dpp::channel::parent_id

Parent ID (category)

◆ permission_overwrites

std::vector<permission_overwrite> dpp::channel::permission_overwrites

Permission overwrites to apply to base permissions

◆ position

uint16_t dpp::channel::position

Sorting position, lower number means higher up the list

◆ rate_limit_per_user

uint16_t dpp::channel::rate_limit_per_user

amount of seconds a user has to wait before sending another message (0-21600); bots, as well as users with the permission manage_messages or manage_channel, are unaffected

◆ recipients

std::vector<snowflake> dpp::channel::recipients

DM recipients

◆ topic

std::string dpp::channel::topic

Channel topic

◆ user_limit

uint8_t dpp::channel::user_limit

Maximum user limit for voice channels (0-99)

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