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

A definition of a discord thread. More...

#include "thread.h"

Inheritance diagram for dpp::thread:
Collaboration diagram for dpp::thread:

Public Member Functions

channeladd_flag (const channel_flags flag)
 Add (bitwise OR) a flag to this channel object. More...
 
channeladd_permission_overwrite (const snowflake target, const overwrite_type type, const uint64_t allowed_permissions, const uint64_t denied_permissions)
 Add permission overwrites for a user or role. 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...
 
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...
 
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&>().fill_from_json_impl(std::declval<nlohmann::json*>()))>
T & fill_from_json (nlohmann::json *j)
 Convert object from nlohmann::json. More...
 
constexpr double get_creation_time () const noexcept
 Get the creation time of this object according to Discord. More...
 
forum_layout_type get_default_forum_layout () const
 Get the default forum layout type used to display posts in forum channels. More...
 
std::string get_icon_url (uint16_t size=0, const image_type format=i_png) const
 Get the channel's icon url (if its a group DM), otherwise returns an empty string. 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. More...
 
std::string get_mention () const
 Get the mention ping for the channel. More...
 
channel_type get_type () const
 Get the channel type. More...
 
std::string get_url () const
 Returns string of URL to channel. More...
 
permission get_user_permissions (const class guild_member &member) const
 Get the overall permissions for a member in this channel, including channel overwrites, role permissions and admin privileges. More...
 
permission get_user_permissions (const class user *user) const
 Get the overall permissions for a member in this channel, including channel overwrites, role permissions and admin privileges. More...
 
std::map< snowflake, voicestateget_voice_members ()
 Get a map of members in this channel, if it is a voice channel. More...
 
bool is_category () const
 Returns true if the channel is a category. More...
 
bool is_dm () const
 Returns true if the channel is a DM. More...
 
bool is_download_options_hidden () const
 Returns true if embedded media download options are hidden in a media channel. More...
 
bool is_forum () const
 Returns true if the channel is a forum. More...
 
bool is_group_dm () const
 Returns true if the channel is a group DM channel. More...
 
bool is_locked_permissions () const
 Returns true if the permissions are to be synced with the category it is in. More...
 
bool is_media_channel () const
 Returns true if the channel is a media channel. More...
 
bool is_news_channel () const
 Returns true if the channel is an announcement channel. More...
 
constexpr bool is_news_thread () const noexcept
 Returns true if the thread is within an announcement channel. More...
 
bool is_nsfw () const
 Returns true if the channel is NSFW gated. More...
 
bool is_pinned_thread () const
 Returns true if channel is a pinned thread in forum. More...
 
constexpr bool is_private_thread () const noexcept
 Returns true if the channel is a private thread. More...
 
constexpr bool is_public_thread () const noexcept
 Returns true if the channel is a public thread. More...
 
bool is_stage_channel () const
 Returns true if the channel is a stage channel. More...
 
bool is_store_channel () const
 Returns true if the channel is a store channel. More...
 
bool is_tag_required () const
 Returns true if a tag is required to be specified when creating a thread in a forum channel. More...
 
bool is_text_channel () const
 Returns true if the channel is a text channel. More...
 
bool is_video_720p () const
 Returns true if video quality is 720p. More...
 
bool is_video_auto () const
 Returns true if video quality is auto. More...
 
bool is_voice_channel () const
 Returns true if the channel is a voice channel. 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...
 
channelremove_flag (const channel_flags flag)
 Remove (bitwise NOT AND) a flag from this channel object. More...
 
channelremove_permission_overwrite (const snowflake target, const overwrite_type type)
 Remove channel specific permission overwrites of a user or role. More...
 
channelset_bitrate (const uint16_t bitrate)
 Set bitrate of this channel object. More...
 
channelset_default_forum_layout (forum_layout_type layout_type)
 Set the default forum layout type for the forum channel. More...
 
channelset_default_sort_order (default_forum_sort_order_t sort_order)
 Set the default forum sort order for the forum channel. More...
 
channelset_flags (const uint16_t flags)
 Set flags for this channel object. More...
 
channelset_guild_id (const snowflake guild_id)
 Set guild_id of this channel object. More...
 
channelset_lock_permissions (const bool is_lock_permissions)
 Set lock permissions property of this channel object Used only with the reorder channels method. More...
 
channelset_name (const std::string &name)
 Set name of this channel object. More...
 
channelset_nsfw (const bool is_nsfw)
 Set nsfw property of this channel object. More...
 
channelset_parent_id (const snowflake parent_id)
 Set parent_id of this channel object. More...
 
channelset_permission_overwrite (const snowflake target, const overwrite_type type, const uint64_t allowed_permissions, const uint64_t denied_permissions)
 Set permission overwrites for a user or role on this channel object. More...
 
channelset_position (const uint16_t position)
 Set position of this channel object. More...
 
channelset_rate_limit_per_user (const uint16_t rate_limit_per_user)
 Set rate_limit_per_user of this channel object. More...
 
channelset_topic (const std::string &topic)
 Set topic of this channel object. More...
 
channelset_type (channel_type type)
 Set type of this channel object. More...
 
channelset_user_limit (const uint8_t user_limit)
 Set user_limit of this channel object. 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{}))>
auto to_json (bool with_id=false) const
 Convert object to nlohmann::json. More...
 

Static Public Member Functions

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

Public Attributes

std::vector< snowflakeapplied_tags = {}
 A list of dpp::forum_tag IDs that have been applied to a thread in a forum or media channel. More...
 
std::vector< forum_tagavailable_tags
 A set of tags that can be used in a forum or media channel. More...
 
uint16_t bitrate
 The bitrate (in kilobits) of the voice channel. More...
 
auto_archive_duration_t default_auto_archive_duration
 Default duration, copied onto newly created threads. More...
 
std::variant< std::monostate, snowflake, std::string > default_reaction
 The emoji to show as the default reaction button on a thread in a forum or media channel. More...
 
default_forum_sort_order_t default_sort_order
 The default sort order type used to order posts in forum and media channels. More...
 
uint16_t default_thread_rate_limit_per_user
 The initial rate_limit_per_user to set on newly created threads in a channel. More...
 
uint16_t flags
 Flags bitmap (dpp::channel_flags) More...
 
snowflake guild_id
 Guild id of the guild that owns the channel. More...
 
utility::iconhash icon
 Channel icon (for group DMs). More...
 
snowflake id = {}
 Unique ID of object set by Discord. More...
 
snowflake last_message_id
 ID of last message to be sent to the channel. More...
 
time_t last_pin_timestamp
 Timestamp of last pinned message. More...
 
thread_member member = {}
 Thread member of current user if joined to the thread. More...
 
uint8_t member_count = 0
 Approximate count of members in a thread (stops counting at 50) More...
 
uint8_t message_count = 0
 Number of messages (not including the initial message or deleted messages) of the thread. More...
 
thread_metadata metadata = {}
 Thread metadata (threads) More...
 
message msg = {}
 Created message. More...
 
std::string name
 Channel name (1-100 characters). More...
 
bool newly_created {false}
 Was this thread newly created? More...
 
snowflake owner_id
 User ID of the creator for group DMs or threads. More...
 
snowflake parent_id
 Parent ID (for guild channels: id of the parent category, for threads: id of the text channel this thread was created). More...
 
std::vector< permission_overwritepermission_overwrites
 Permission overwrites to apply to base permissions. More...
 
permission permissions
 This is only filled when the channel is part of the resolved set sent within an interaction. More...
 
uint16_t position
 Sorting position, lower number means higher up the list. More...
 
uint16_t rate_limit_per_user
 Amount of seconds a user has to wait before sending another message (0-21600). More...
 
std::vector< snowflakerecipients
 DM recipients. More...
 
std::string rtc_region
 Voice region if set for voice channel, otherwise empty string. More...
 
std::string topic
 Channel topic (0-4096 characters for forum and media channels, 0-1024 characters for all others). More...
 
uint32_t total_messages_sent = 0
 Number of messages ever sent in the thread. More...
 
uint8_t user_limit
 Maximum user limit for voice channels (0-99) More...
 

Protected Member Functions

threadfill_from_json_impl (nlohmann::json *j)
 Read class values from json object. More...
 
json to_json_impl (bool with_id=false) const override
 Build json for this thread object. More...
 

Static Protected Attributes

static constexpr uint16_t CHANNEL_TYPE_MASK = 0b0000000000001111
 

Friends

struct json_interface< thread >
 

Detailed Description

A definition of a discord thread.

A thread is a superset of a channel. Not to be confused with std::thread!

Member Function Documentation

◆ add_flag()

channel & dpp::channel::add_flag ( const channel_flags  flag)
inherited

Add (bitwise OR) a flag to this channel object.

Parameters
flagFlag bit to add from dpp::channel_flags
Returns
Reference to self, so these method calls may be chained

References dpp::channel::user_limit.

◆ add_permission_overwrite()

channel & dpp::channel::add_permission_overwrite ( const snowflake  target,
const overwrite_type  type,
const uint64_t  allowed_permissions,
const uint64_t  denied_permissions 
)
inherited

Add permission overwrites for a user or role.

If the channel already has permission overwrites for the passed target, the existing ones will be adjusted by the passed permissions

Parameters
targetID of the role or the member you want to adjust overwrites for
typetype of overwrite
allowed_permissionsbitmask of dpp::permissions you want to allow for this user/role in this channel. Note: You can use the dpp::permission class
denied_permissionsbitmask of dpp::permissions you want to deny for this user/role in this channel. Note: You can use the dpp::permission class
Returns
Reference to self, so these method calls may be chained

◆ build_json() [1/2]

template<typename T >
template<typename U = T, typename = decltype(std::declval<U&>().to_json_impl(bool{}))>
std::string dpp::json_interface< T >::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

Referenced by dpp::cluster::create_webhook(), dpp::cluster::guild_ban_add(), dpp::cluster::guild_ban_delete(), dpp::cluster::guild_command_edit_permissions(), dpp::cluster::guild_create(), dpp::cluster::guild_get_integrations(), dpp::cluster::guild_get_preview(), dpp::cluster::guild_get_vanity(), and dpp::cluster::roles_get().

Here is the caller graph for this function:

◆ build_json() [2/2]

template<typename T >
template<typename U = T, typename = decltype(std::declval<U&>().to_json_impl(bool{}))>
std::string dpp::json_interface< T >::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

Referenced by dpp::cluster::create_webhook(), dpp::cluster::guild_ban_add(), dpp::cluster::guild_ban_delete(), dpp::cluster::guild_command_edit_permissions(), dpp::cluster::guild_create(), dpp::cluster::guild_get_integrations(), dpp::cluster::guild_get_preview(), dpp::cluster::guild_get_vanity(), and dpp::cluster::roles_get().

Here is the caller graph for this function:

◆ fill_from_json() [1/2]

template<typename T >
template<typename U = T, typename = decltype(std::declval<U&>().fill_from_json_impl(std::declval<nlohmann::json*>()))>
T& dpp::json_interface< T >::fill_from_json ( nlohmann::json j)
inlineinherited

Convert object from nlohmann::json.

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

Referenced by dpp::invite::fill_from_json_impl(), fill_from_json_impl(), dpp::scheduled_event::fill_from_json_impl(), dpp::from_json(), dpp::message::get_url(), and dpp::interaction_response::interaction_response().

Here is the caller graph for this function:

◆ fill_from_json() [2/2]

template<typename T >
template<typename U = T, typename = decltype(std::declval<U&>().fill_from_json_impl(std::declval<nlohmann::json*>()))>
T& dpp::json_interface< T >::fill_from_json ( nlohmann::json j)
inlineinherited

Convert object from nlohmann::json.

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

Referenced by dpp::invite::fill_from_json_impl(), fill_from_json_impl(), dpp::scheduled_event::fill_from_json_impl(), dpp::from_json(), dpp::message::get_url(), and dpp::interaction_response::interaction_response().

Here is the caller graph for this function:

◆ fill_from_json_impl()

thread & dpp::thread::fill_from_json_impl ( nlohmann::json j)
protected

Read class values from json object.

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

References dpp::json_interface< T >::fill_from_json(), and member.

Here is the call graph for this function:

◆ 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_forum_layout()

forum_layout_type dpp::channel::get_default_forum_layout ( ) const
inherited

Get the default forum layout type used to display posts in forum channels.

Returns
forum_layout_types Forum layout type

◆ get_icon_url()

std::string dpp::channel::get_icon_url ( uint16_t  size = 0,
const image_type  format = i_png 
) const
inherited

Get the channel's icon url (if its a group DM), otherwise returns an empty string.

Parameters
sizeThe size of the icon in pixels. It can be any power of two between 16 and 4096, otherwise the default sized icon is returned.
formatThe format to use for the avatar. It can be one of i_webp, i_jpg or i_png.
Returns
std::string icon url or an empty string, if required attributes are missing or an invalid format was passed

◆ get_members()

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

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.
Note
If the guild this channel belongs to is not in the cache, the function will always return 0.

◆ get_mention() [1/2]

std::string dpp::channel::get_mention ( ) const
inherited

Get the mention ping for the channel.

Returns
std::string mention

References dpp::DEFAULT_FORUM_LAYOUT_MASK, and dpp::channel::flags.

◆ get_mention() [2/2]

std::string dpp::channel::get_mention ( const snowflake id)
staticinherited

Create a mentionable channel.

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

◆ get_type()

channel_type dpp::channel::get_type ( ) const
inherited

Get the channel type.

Returns
channel_type Channel type

◆ get_url()

std::string dpp::channel::get_url ( ) const
inherited

Returns string of URL to channel.

Returns
string of URL to channel

◆ get_user_permissions() [1/2]

permission dpp::channel::get_user_permissions ( const class guild_member member) const
inherited

Get the overall permissions for a member in this channel, including channel overwrites, role permissions and admin privileges.

Parameters
memberThe member to resolve the permissions for
Returns
permission Permission overwrites for the member. Made of bits in dpp::permissions.
Note
Requires role cache to be enabled (it's enabled by default).
This is an alias for guild::permission_overwrites and searches for the guild in the cache, so consider using guild::permission_overwrites if you already have the guild object.

◆ get_user_permissions() [2/2]

permission dpp::channel::get_user_permissions ( const class user user) const
inherited

Get the overall permissions for a member in this channel, including channel overwrites, role permissions and admin privileges.

Parameters
userThe user to resolve the permissions for
Returns
permission Permission overwrites for the member. Made of bits in dpp::permissions.
Note
Requires role cache to be enabled (it's enabled by default).
This is an alias for guild::permission_overwrites and searches for the guild in the cache, so consider using guild::permission_overwrites if you already have the guild object.
Warning
The method will search for the guild member in the cache by the users id. If the guild member is not in cache, the method will always return 0.

◆ get_voice_members()

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

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
inherited

Returns true if the channel is a category.

Returns
true if a category

References dpp::CHANNEL_STORE, dpp::channel::CHANNEL_TYPE_MASK, and dpp::channel::flags.

◆ is_dm()

bool dpp::channel::is_dm ( ) const
inherited

Returns true if the channel is a DM.

Returns
true if is a DM

References dpp::CHANNEL_MEDIA, dpp::channel::CHANNEL_TYPE_MASK, and dpp::channel::flags.

◆ is_download_options_hidden()

bool dpp::channel::is_download_options_hidden ( ) const
inherited

Returns true if embedded media download options are hidden in a media channel.

Returns
true, if embedded media download options are hidden in a media channel

References dpp::arc_1_hour, and dpp::channel::default_auto_archive_duration.

◆ is_forum()

bool dpp::channel::is_forum ( ) const
inherited

Returns true if the channel is a forum.

Returns
true if a forum

◆ is_group_dm()

bool dpp::channel::is_group_dm ( ) const
inherited

Returns true if the channel is a group DM channel.

Returns
true if group DM

References dpp::CHANNEL_ANNOUNCEMENT, dpp::channel::CHANNEL_TYPE_MASK, and dpp::channel::flags.

◆ is_locked_permissions()

bool dpp::channel::is_locked_permissions ( ) const
inherited

Returns true if the permissions are to be synced with the category it is in.

Used only and set manually when using the reorder channels method.

Returns
true if keeping permissions

References dpp::CHANNEL_CATEGORY, dpp::channel::CHANNEL_TYPE_MASK, and dpp::channel::flags.

◆ is_media_channel()

bool dpp::channel::is_media_channel ( ) const
inherited

Returns true if the channel is a media channel.

Returns
true if media channel

◆ is_news_channel()

bool dpp::channel::is_news_channel ( ) const
inherited

Returns true if the channel is an announcement channel.

Returns
true if announcement channel

References dpp::c_pinned_thread, and dpp::channel::flags.

◆ is_news_thread()

constexpr bool dpp::thread::is_news_thread ( ) const
inlineconstexprnoexcept

Returns true if the thread is within an announcement channel.

Returns
true if announcement thread

◆ is_nsfw()

bool dpp::channel::is_nsfw ( ) const
inherited

Returns true if the channel is NSFW gated.

Returns
true if NSFW

References dpp::channel::CHANNEL_TYPE_MASK, dpp::channel::flags, and dpp::GROUP_DM.

Referenced by dpp::channel::set_bitrate().

Here is the caller graph for this function:

◆ is_pinned_thread()

bool dpp::channel::is_pinned_thread ( ) const
inherited

Returns true if channel is a pinned thread in forum.

Returns
true, if channel is a pinned thread in forum

◆ is_private_thread()

constexpr bool dpp::thread::is_private_thread ( ) const
inlineconstexprnoexcept

Returns true if the channel is a private thread.

Returns
true if private thread

◆ is_public_thread()

constexpr bool dpp::thread::is_public_thread ( ) const
inlineconstexprnoexcept

Returns true if the channel is a public thread.

Returns
true if public thread

◆ is_stage_channel()

bool dpp::channel::is_stage_channel ( ) const
inherited

Returns true if the channel is a stage channel.

Returns
true if stage channel

References dpp::c_video_quality_720p, and dpp::channel::flags.

◆ is_store_channel()

bool dpp::channel::is_store_channel ( ) const
inherited

Returns true if the channel is a store channel.

Deprecated:
store channels are deprecated by Discord
Returns
true if store channel

References dpp::c_require_tag, and dpp::channel::flags.

◆ is_tag_required()

bool dpp::channel::is_tag_required ( ) const
inherited

Returns true if a tag is required to be specified when creating a thread in a forum channel.

Returns
true, if a tag is required to be specified when creating a thread in a forum channel

◆ is_text_channel()

bool dpp::channel::is_text_channel ( ) const
inherited

Returns true if the channel is a text channel.

Returns
true if text channel

References dpp::CHANNEL_FORUM, dpp::channel::CHANNEL_TYPE_MASK, and dpp::channel::flags.

◆ is_video_720p()

bool dpp::channel::is_video_720p ( ) const
inherited

Returns true if video quality is 720p.

Returns
true if video quality is 720p

◆ is_video_auto()

bool dpp::channel::is_video_auto ( ) const
inherited

Returns true if video quality is auto.

Returns
true if video quality is auto

References dpp::c_hide_media_download_options, and dpp::channel::flags.

◆ is_voice_channel()

bool dpp::channel::is_voice_channel ( ) const
inherited

Returns true if the channel is a voice channel.

Returns
true if voice channel

References dpp::CHANNEL_STAGE, dpp::channel::CHANNEL_TYPE_MASK, and dpp::channel::flags.

◆ 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

◆ remove_flag()

channel & dpp::channel::remove_flag ( const channel_flags  flag)
inherited

Remove (bitwise NOT AND) a flag from this channel object.

Parameters
flagFlag bit to remove from dpp::channel_flags
Returns
Reference to self, so these method calls may be chained

References dpp::unicode_emoji::o, and dpp::channel::permission_overwrites.

◆ remove_permission_overwrite()

channel & dpp::channel::remove_permission_overwrite ( const snowflake  target,
const overwrite_type  type 
)
inherited

Remove channel specific permission overwrites of a user or role.

Parameters
targetID of the role or the member you want to remove permission overwrites of
typetype of overwrite
Returns
Reference to self, so these method calls may be chained

References dpp::CHANNEL_TEXT, dpp::channel::CHANNEL_TYPE_MASK, and dpp::channel::flags.

Referenced by dpp::channel::set_user_limit().

Here is the caller graph for this function:

◆ set_bitrate()

channel & dpp::channel::set_bitrate ( const uint16_t  bitrate)
inherited

Set bitrate of this channel object.

Parameters
bitrateBitrate to set (in kilobits)
Returns
Reference to self, so these method calls may be chained

References dpp::c_nsfw, dpp::channel::flags, and dpp::channel::is_nsfw().

Here is the call graph for this function:

◆ set_default_forum_layout()

channel & dpp::channel::set_default_forum_layout ( forum_layout_type  layout_type)
inherited

Set the default forum layout type for the forum channel.

Parameters
layout_typeThe layout type
Returns
Reference to self, so these method calls may be chained

◆ set_default_sort_order()

channel & dpp::channel::set_default_sort_order ( default_forum_sort_order_t  sort_order)
inherited

Set the default forum sort order for the forum channel.

Parameters
sort_orderThe sort order
Returns
Reference to self, so these method calls may be chained

References dpp::channel::position.

◆ set_flags()

channel & dpp::channel::set_flags ( const uint16_t  flags)
inherited

Set flags for this channel object.

Parameters
flagsFlag bitmask to set from dpp::channel_flags
Returns
Reference to self, so these method calls may be chained

References dpp::c_lock_permissions, and dpp::channel::flags.

◆ set_guild_id()

channel & dpp::channel::set_guild_id ( const snowflake  guild_id)
inherited

Set guild_id of this channel object.

Parameters
guild_idGuild ID to set
Returns
Reference to self, so these method calls may be chained

References dpp::channel::bitrate.

◆ set_lock_permissions()

channel & dpp::channel::set_lock_permissions ( const bool  is_lock_permissions)
inherited

Set lock permissions property of this channel object Used only with the reorder channels method.

Parameters
is_lock_permissionstrue, if we are to inherit permissions from the category
Returns
Reference to self, so these method calls may be chained

◆ set_name()

channel & dpp::channel::set_name ( const std::string &  name)
inherited

Set name of this channel object.

Parameters
nameName to set
Returns
Reference to self, so these method calls may be chained
Note
name will be truncated to 100 chars, if longer
Exceptions
dpp::length_exceptionif length < 1

◆ set_nsfw()

channel & dpp::channel::set_nsfw ( const bool  is_nsfw)
inherited

Set nsfw property of this channel object.

Parameters
is_nsfwtrue, if channel is nsfw
Returns
Reference to self, so these method calls may be chained

◆ set_parent_id()

channel & dpp::channel::set_parent_id ( const snowflake  parent_id)
inherited

Set parent_id of this channel object.

Parameters
parent_idParent ID to set
Returns
Reference to self, so these method calls may be chained

References dpp::channel::flags.

◆ set_permission_overwrite()

channel & dpp::channel::set_permission_overwrite ( const snowflake  target,
const overwrite_type  type,
const uint64_t  allowed_permissions,
const uint64_t  denied_permissions 
)
inherited

Set permission overwrites for a user or role on this channel object.

Old permission overwrites for the target will be overwritten

Parameters
targetID of the role or the member you want to set overwrites for
typetype of overwrite
allowed_permissionsbitmask of allowed dpp::permissions for this user/role in this channel. Note: You can use the dpp::permission class
denied_permissionsbitmask of denied dpp::permissions for this user/role in this channel. Note: You can use the dpp::permission class
Returns
Reference to self, so these method calls may be chained
Note
If both allowed_permissions and denied_permissions parameters are 0, the permission overwrite for the target will be removed

References dpp::c_nsfw, and dpp::channel::flags.

◆ set_position()

channel & dpp::channel::set_position ( const uint16_t  position)
inherited

Set position of this channel object.

Parameters
positionPosition to set
Returns
Reference to self, so these method calls may be chained

References dpp::channel::flags.

◆ set_rate_limit_per_user()

channel & dpp::channel::set_rate_limit_per_user ( const uint16_t  rate_limit_per_user)
inherited

Set rate_limit_per_user of this channel object.

Parameters
rate_limit_per_userrate_limit_per_user (slowmode in sec) to set
Returns
Reference to self, so these method calls may be chained

References dpp::channel::flags.

◆ set_topic()

channel & dpp::channel::set_topic ( const std::string &  topic)
inherited

Set topic of this channel object.

Parameters
topicTopic to set
Returns
Reference to self, so these method calls may be chained
Note
topic will be truncated to 1024 chars, if longer

◆ set_type()

channel & dpp::channel::set_type ( channel_type  type)
inherited

Set type of this channel object.

Parameters
typeChannel type to set
Returns
Reference to self, so these method calls may be chained

◆ set_user_limit()

channel & dpp::channel::set_user_limit ( const uint8_t  user_limit)
inherited

Set user_limit of this channel object.

Parameters
user_limitLimit to set
Returns
Reference to self, so these method calls may be chained

References dpp::channel::remove_permission_overwrite().

Here is the call graph for this function:

◆ to_json() [1/2]

template<typename T >
template<typename U = T, typename = decltype(std::declval<U&>().to_json_impl(bool{}))>
auto dpp::json_interface< T >::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

Referenced by dpp::cluster::delete_webhook_with_token(), and dpp::onboarding_prompt::onboarding_prompt().

Here is the caller graph for this function:

◆ to_json() [2/2]

template<typename T >
template<typename U = T, typename = decltype(std::declval<U&>().to_json_impl(bool{}))>
auto dpp::json_interface< T >::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

Referenced by dpp::cluster::delete_webhook_with_token(), and dpp::onboarding_prompt::onboarding_prompt().

Here is the caller graph for this function:

◆ to_json_impl()

json dpp::thread::to_json_impl ( bool  with_id = false) const
overrideprotectedvirtual

Build json for this thread object.

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

Reimplemented from dpp::channel.

Friends And Related Function Documentation

◆ json_interface< thread >

friend struct json_interface< thread >
friend

Member Data Documentation

◆ applied_tags

std::vector<snowflake> dpp::thread::applied_tags = {}

A list of dpp::forum_tag IDs that have been applied to a thread in a forum or media channel.

◆ available_tags

std::vector<forum_tag> dpp::channel::available_tags
inherited

A set of tags that can be used in a forum or media channel.

◆ bitrate

uint16_t dpp::channel::bitrate
inherited

The bitrate (in kilobits) of the voice channel.

Referenced by dpp::channel::set_guild_id().

◆ CHANNEL_TYPE_MASK

◆ default_auto_archive_duration

auto_archive_duration_t dpp::channel::default_auto_archive_duration
inherited

Default duration, copied onto newly created threads.

Used by the clients, not the API. Threads will stop showing in the channel list after the specified period of inactivity. Defaults to dpp::arc_1_day.

Referenced by dpp::channel::is_download_options_hidden().

◆ default_reaction

std::variant<std::monostate, snowflake, std::string> dpp::channel::default_reaction
inherited

The emoji to show as the default reaction button on a thread in a forum or media channel.

Contains either nothing, the id of a guild's custom emoji or the unicode character of the emoji.

◆ default_sort_order

default_forum_sort_order_t dpp::channel::default_sort_order
inherited

The default sort order type used to order posts in forum and media channels.

◆ default_thread_rate_limit_per_user

uint16_t dpp::channel::default_thread_rate_limit_per_user
inherited

The initial rate_limit_per_user to set on newly created threads in a channel.

This field is copied to the thread at creation time and does not live update.

◆ flags

◆ guild_id

snowflake dpp::channel::guild_id
inherited

Guild id of the guild that owns the channel.

◆ icon

utility::iconhash dpp::channel::icon
inherited

Channel icon (for group DMs).

◆ id

◆ last_message_id

snowflake dpp::channel::last_message_id
inherited

ID of last message to be sent to the channel.

Warning
may not point to an existing or valid message/thread.

◆ last_pin_timestamp

time_t dpp::channel::last_pin_timestamp
inherited

Timestamp of last pinned message.

◆ member

thread_member dpp::thread::member = {}

Thread member of current user if joined to the thread.

Note this is only set by certain api calls otherwise contains default data

Referenced by fill_from_json_impl().

◆ member_count

uint8_t dpp::thread::member_count = 0

Approximate count of members in a thread (stops counting at 50)

◆ message_count

uint8_t dpp::thread::message_count = 0

Number of messages (not including the initial message or deleted messages) of the thread.

For threads created before July 1, 2022, the message count is inaccurate when it's greater than 50.

◆ metadata

thread_metadata dpp::thread::metadata = {}

Thread metadata (threads)

◆ msg

message dpp::thread::msg = {}

Created message.

Only filled within the cluster::thread_create_in_forum() method

◆ name

std::string dpp::channel::name
inherited

Channel name (1-100 characters).

◆ newly_created

bool dpp::thread::newly_created {false}

Was this thread newly created?

Note
This will only show in dpp::cluster::on_thread_create if the thread was just made.

◆ owner_id

snowflake dpp::channel::owner_id
inherited

User ID of the creator for group DMs or threads.

◆ parent_id

snowflake dpp::channel::parent_id
inherited

Parent ID (for guild channels: id of the parent category, for threads: id of the text channel this thread was created).

◆ permission_overwrites

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

Permission overwrites to apply to base permissions.

Referenced by dpp::channel::remove_flag().

◆ permissions

permission dpp::channel::permissions
inherited

This is only filled when the channel is part of the resolved set sent within an interaction.

Any other time it contains zero. When filled, it contains the calculated permission bitmask of the user issuing the command within this channel.

◆ position

uint16_t dpp::channel::position
inherited

Sorting position, lower number means higher up the list.

Referenced by dpp::channel::set_default_sort_order().

◆ rate_limit_per_user

uint16_t dpp::channel::rate_limit_per_user
inherited

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

Referenced by dpp::channel::to_json_impl().

◆ recipients

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

DM recipients.

Referenced by dpp::events::channel_create::handle().

◆ rtc_region

std::string dpp::channel::rtc_region
inherited

Voice region if set for voice channel, otherwise empty string.

◆ topic

std::string dpp::channel::topic
inherited

Channel topic (0-4096 characters for forum and media channels, 0-1024 characters for all others).

◆ total_messages_sent

uint32_t dpp::thread::total_messages_sent = 0

Number of messages ever sent in the thread.

It's similar to thread::message_count on message creation, but will not decrement the number when a message is deleted

◆ user_limit

uint8_t dpp::channel::user_limit
inherited

Maximum user limit for voice channels (0-99)

Referenced by dpp::channel::add_flag().


The documentation for this class was generated from the following files: