D++ (DPP)
C++ Discord API Bot Library
|
Represents a guild on Discord (AKA a server) More...
#include <guild.h>
Public Member Functions | |
guild () | |
virtual | ~guild ()=default |
Destroy the guild object. More... | |
guild & | fill_from_json (class discord_client *shard, nlohmann::json *j) |
permission | base_permissions (const class user *user) const |
Compute the base permissions for a member on this guild, before channel overwrites are applied. This method takes into consideration the following cases: More... | |
permission | base_permissions (const guild_member &member) const |
Compute the base permissions for a member on this guild, before channel overwrites are applied. This method takes into consideration the following cases: More... | |
permission | permission_overwrites (const uint64_t base_permissions, const user *user, const channel *channel) const |
Get the overall permissions for a member in this channel, including channel overwrites, role permissions and admin privileges. More... | |
permission | permission_overwrites (const guild_member &member, const channel &channel) const |
Get the overall permissions for a member in this channel, including channel overwrites, role permissions and admin privileges. More... | |
void | rehash_members () |
Rehash members map. More... | |
bool | connect_member_voice (snowflake user_id, bool self_mute=false, bool self_deaf=false, bool dave=false) |
Connect to a voice channel another guild member is in. More... | |
std::string | get_banner_url (uint16_t size=0, const image_type format=i_png, bool prefer_animated=true) const |
Get the banner url of the guild if it have one, otherwise returns an empty string. More... | |
std::string | get_discovery_splash_url (uint16_t size=0, const image_type format=i_png) const |
Get the discovery splash url of the guild if it have one, otherwise returns an empty string. More... | |
std::string | get_icon_url (uint16_t size=0, const image_type format=i_png, bool prefer_animated=true) const |
Get the icon url of the guild if it have one, otherwise returns an empty string. More... | |
std::string | get_splash_url (uint16_t size=0, const image_type format=i_png) const |
Get the splash url of the guild if it have one, otherwise returns an empty string. More... | |
guild & | set_name (const std::string &n) |
Set the name of the guild in the object Min length: 2, Max length: 100 (not including leading/trailing spaces) More... | |
guild & | remove_banner () |
Remove the guild banner. More... | |
guild & | set_banner (image_type format, std::string_view data) |
Set the guild banner image. Server needs banner feature. Must be 16:9, and depending on nitro level, must be png or jpeg. Animated gif needs the animated banner server feature. More... | |
guild & | set_banner (image_type format, const std::byte *data, uint32_t size) |
Set the guild banner image. Server needs banner feature. Must be 16:9, and depending on nitro level, must be png or jpeg. Animated gif needs the animated banner server feature. More... | |
guild & | remove_discovery_splash () |
Remove the guild discovery splash. More... | |
guild & | set_discovery_splash (image_type format, std::string_view data) |
Set the guild discovery splash image. Server needs discoverable feature. Must be 16:9 and png or jpeg. More... | |
guild & | set_discovery_splash (image_type format, const std::byte *data, uint32_t size) |
Set the guild discovery splash image. Server needs discoverable feature. Must be 16:9 and png or jpeg. More... | |
guild & | remove_splash () |
Remove the guild invite splash. More... | |
guild & | set_splash (image_type format, std::string_view data) |
Set the guild invite splash image. Server needs invite splash feature. Must be 16:9 and png or jpeg. More... | |
guild & | set_splash (image_type format, const std::byte *data, uint32_t size) |
Set the guild invite splash image. Server needs invite splash feature. Must be 16:9 and png or jpeg. More... | |
guild & | remove_icon () |
Remove the guild icon. More... | |
guild & | set_icon (image_type format, std::string_view data) |
Set the guild icon image. Must be 1024x1024 and png or jpeg. Gif allowed only if the server has animated icon. More... | |
guild & | set_icon (image_type format, const std::byte *data, uint32_t size) |
Set the 1024x1024 guild icon image. Must be png or jpeg. Gif allowed only if the server has animated icon. More... | |
bool | is_large () const |
Is a large server (>250 users) More... | |
bool | is_unavailable () const |
Is unavailable due to outage (most other fields will be blank or outdated. More... | |
bool | widget_enabled () const |
Widget is enabled for this server. More... | |
bool | has_invite_splash () const |
Guild has access to set an invite splash background. More... | |
bool | has_vip_regions () const |
Guild has access to set 384kbps bitrate in voice. More... | |
bool | has_vanity_url () const |
Guild has access to set a vanity URL. More... | |
bool | is_verified () const |
Guild is a verified server. More... | |
bool | is_partnered () const |
Guild is a discord partnered server. More... | |
bool | is_community () const |
Has enabled community. More... | |
bool | has_role_subscriptions () const |
Has enabled role subscriptions. More... | |
bool | has_news () const |
Guild has access to create announcement channels. More... | |
bool | is_discoverable () const |
Guild is discoverable. More... | |
bool | is_featureable () const |
Guild is featurable. More... | |
bool | has_animated_banner () const |
Guild has access to set an animated guild banner image. More... | |
bool | has_auto_moderation () const |
Guild has auto moderation features. More... | |
bool | has_support_server () const |
Guild has been set as a support server on the App Directory. More... | |
bool | has_role_subscriptions_available_for_purchase () const |
Guild has role subscriptions that can be purchased. More... | |
bool | has_raid_alerts_disabled () const |
Guild has disabled alerts for join raids in the configured safety alerts channel. More... | |
bool | has_animated_icon () const |
Guild has access to set an animated guild icon. More... | |
bool | has_banner () const |
Guild has access to set a guild banner image. More... | |
bool | is_welcome_screen_enabled () const |
Guild has enabled the welcome screen. More... | |
bool | has_member_verification_gate () const |
Guild has enabled membership screening. More... | |
bool | is_preview_enabled () const |
Guild has preview enabled. More... | |
bool | has_animated_icon_hash () const |
Guild icon is actually an animated gif. More... | |
bool | has_animated_banner_hash () const |
Guild banner is actually an animated gif. More... | |
bool | has_monetization_enabled () const |
guild has access to monetization features More... | |
bool | has_more_stickers () const |
guild has increased custom sticker slots More... | |
bool | has_creator_store_page () const |
guild has enabled the role subscription promo page More... | |
bool | has_role_icons () const |
guild is able to set role icons More... | |
bool | has_seven_day_thread_archive () const |
guild has access to the seven day archive time for threads More... | |
bool | has_three_day_thread_archive () const |
guild has access to the three day archive time for threads More... | |
bool | has_ticketed_events () const |
guild has enabled ticketed events More... | |
bool | has_channel_banners () const |
guild has access to channel banners feature More... | |
bool | has_premium_progress_bar_enabled () const |
True if the premium progress bar is enabled. More... | |
bool | has_invites_disabled () const |
True if has paused invites, preventing new users from joining. 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... | |
guild & | fill_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... | |
Public Attributes | |
std::string | name |
Guild name. More... | |
std::string | description |
Server description. More... | |
std::string | vanity_url_code |
Vanity url code for verified or partnered servers and boost level 3. More... | |
std::vector< snowflake > | roles |
Roles defined on this server. More... | |
std::vector< snowflake > | channels |
List of channels on this server. More... | |
std::vector< snowflake > | threads |
List of threads on this server. More... | |
std::vector< snowflake > | emojis |
List of emojis. More... | |
std::map< snowflake, voicestate > | voice_members |
List of members in voice channels in the guild. More... | |
members_container | members |
List of guild members. More... | |
dpp::welcome_screen | welcome_screen |
Welcome screen. More... | |
utility::icon | icon |
Guild icon. More... | |
utility::icon | splash |
Guild splash. More... | |
utility::icon | discovery_splash |
Guild discovery splash. More... | |
utility::icon | banner |
Server banner. More... | |
snowflake | owner_id |
Snowflake id of guild owner. More... | |
snowflake | afk_channel_id |
Snowflake ID of AFK voice channel or 0. More... | |
snowflake | application_id |
ID of creating application, if any, or 0. More... | |
snowflake | system_channel_id |
ID of system channel where discord update messages are sent. More... | |
snowflake | rules_channel_id |
ID of rules channel for communities. More... | |
snowflake | public_updates_channel_id |
Public updates channel id or 0. More... | |
snowflake | widget_channel_id |
Snowflake ID of widget channel, or 0. More... | |
snowflake | safety_alerts_channel_id |
The id of the channel where admins and moderators of Community guilds receive safety alerts from Discord. More... | |
uint32_t | member_count |
Approximate member count. May be sent as zero. More... | |
uint32_t | flags |
Flags bitmask as defined by values within dpp::guild_flags. More... | |
uint32_t | max_presences |
the maximum number of presences for the guild. More... | |
uint32_t | max_members |
the maximum number of members for the guild More... | |
uint16_t | flags_extra |
Additional flags (values from dpp::guild_flags_extra) More... | |
uint16_t | shard_id |
Shard ID of the guild. More... | |
uint16_t | premium_subscription_count |
Number of boosters. More... | |
guild_afk_timeout_t | afk_timeout |
Voice AFK timeout before moving users to AFK channel. More... | |
uint8_t | max_video_channel_users |
Maximum users in a video channel, or 0. More... | |
default_message_notification_t | default_message_notifications |
Setting for how notifications are to be delivered to users. More... | |
guild_premium_tier_t | premium_tier |
Boost level. More... | |
verification_level_t | verification_level |
Verification level of server. More... | |
guild_explicit_content_t | explicit_content_filter |
Whether or not explicit content filtering is enable and what setting it is. More... | |
mfa_level_t | mfa_level |
If multi factor authentication is required for moderators or not. More... | |
guild_nsfw_level_t | nsfw_level |
Guild NSFW level. 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 | |
guild & | fill_from_json_impl (nlohmann::json *j) |
json | to_json_impl (bool with_id=false) const |
Friends | |
struct | json_interface< guild > |
Represents a guild on Discord (AKA a server)
dpp::guild::guild | ( | ) |
Default constructor, zeroes all values
|
virtualdefault |
Destroy the guild object.
permission dpp::guild::base_permissions | ( | const class user * | user | ) | const |
Compute the base permissions for a member on this guild, before channel overwrites are applied. This method takes into consideration the following cases:
user | User to get permissions for |
permission dpp::guild::base_permissions | ( | const guild_member & | member | ) | const |
Compute the base permissions for a member on this guild, before channel overwrites are applied. This method takes into consideration the following cases:
member | member to get permissions for |
|
inlineinherited |
Convert object to json string.
with_id | Whether to include the ID or not |
bool dpp::guild::connect_member_voice | ( | snowflake | user_id, |
bool | self_mute = false , |
||
bool | self_deaf = false , |
||
bool | dave = false |
||
) |
Connect to a voice channel another guild member is in.
user_id | User id to join |
self_mute | True if the bot should mute itself |
self_deaf | True if the bot should deafen itself |
dave | True to enable DAVE E2EE |
guild & dpp::guild::fill_from_json | ( | class discord_client * | shard, |
nlohmann::json * | j | ||
) |
Read class values from json object
shard | originating shard |
j | A json object to read from |
|
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::guild::get_banner_url | ( | uint16_t | size = 0 , |
const image_type | format = i_png , |
||
bool | prefer_animated = true |
||
) | const |
Get the banner url of the guild if it have one, otherwise returns an empty string.
size | The size of the banner in pixels. It can be any power of two between 16 and 4096, otherwise the default sized banner is returned. |
format | The format to use for the avatar. It can be one of i_webp , i_jpg , i_png or i_gif . Passing i_gif might result in an invalid url for non-animated images. Consider using the prefer_animated parameter instead. |
prefer_animated | Whether you prefer gif format. If true, it'll return gif format whenever the image is available as animated. |
|
inlineconstexprnoexceptinherited |
Get the creation time of this object according to Discord.
std::string dpp::guild::get_discovery_splash_url | ( | uint16_t | size = 0 , |
const image_type | format = i_png |
||
) | const |
Get the discovery splash url of the guild if it have one, otherwise returns an empty string.
size | The size of the discovery splash in pixels. It can be any power of two between 16 and 4096, otherwise the default sized discovery splash is returned. |
format | The format to use for the avatar. It can be one of i_webp , i_jpg or i_png . |
std::string dpp::guild::get_icon_url | ( | uint16_t | size = 0 , |
const image_type | format = i_png , |
||
bool | prefer_animated = true |
||
) | const |
Get the icon url of the guild if it have one, otherwise returns an empty string.
size | The size of the icon in pixels. It can be any power of two between 16 and 4096, otherwise the default sized icon is returned. |
format | The 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_animated | Whether you prefer gif format. If true, it'll return gif format whenever the image is available as animated. |
std::string dpp::guild::get_splash_url | ( | uint16_t | size = 0 , |
const image_type | format = i_png |
||
) | const |
Get the splash url of the guild if it have one, otherwise returns an empty string.
size | The size of the splash in pixels. It can be any power of two between 16 and 4096, otherwise the default sized splash is returned. |
format | The format to use for the avatar. It can be one of i_webp , i_jpg or i_png . |
bool dpp::guild::has_animated_banner | ( | ) | const |
Guild has access to set an animated guild banner image.
bool dpp::guild::has_animated_banner_hash | ( | ) | const |
Guild banner is actually an animated gif.
bool dpp::guild::has_animated_icon | ( | ) | const |
Guild has access to set an animated guild icon.
bool dpp::guild::has_animated_icon_hash | ( | ) | const |
Guild icon is actually an animated gif.
bool dpp::guild::has_auto_moderation | ( | ) | const |
Guild has auto moderation features.
bool dpp::guild::has_banner | ( | ) | const |
Guild has access to set a guild banner image.
bool dpp::guild::has_channel_banners | ( | ) | const |
guild has access to channel banners feature
bool dpp::guild::has_creator_store_page | ( | ) | const |
guild has enabled the role subscription promo page
bool dpp::guild::has_invite_splash | ( | ) | const |
Guild has access to set an invite splash background.
bool dpp::guild::has_invites_disabled | ( | ) | const |
True if has paused invites, preventing new users from joining.
bool dpp::guild::has_member_verification_gate | ( | ) | const |
Guild has enabled membership screening.
bool dpp::guild::has_monetization_enabled | ( | ) | const |
guild has access to monetization features
bool dpp::guild::has_more_stickers | ( | ) | const |
guild has increased custom sticker slots
bool dpp::guild::has_news | ( | ) | const |
Guild has access to create announcement channels.
bool dpp::guild::has_premium_progress_bar_enabled | ( | ) | const |
True if the premium progress bar is enabled.
bool dpp::guild::has_raid_alerts_disabled | ( | ) | const |
Guild has disabled alerts for join raids in the configured safety alerts channel.
bool dpp::guild::has_role_icons | ( | ) | const |
guild is able to set role icons
bool dpp::guild::has_role_subscriptions | ( | ) | const |
Has enabled role subscriptions.
bool dpp::guild::has_role_subscriptions_available_for_purchase | ( | ) | const |
Guild has role subscriptions that can be purchased.
bool dpp::guild::has_seven_day_thread_archive | ( | ) | const |
guild has access to the seven day archive time for threads
bool dpp::guild::has_support_server | ( | ) | const |
Guild has been set as a support server on the App Directory.
bool dpp::guild::has_three_day_thread_archive | ( | ) | const |
guild has access to the three day archive time for threads
bool dpp::guild::has_ticketed_events | ( | ) | const |
guild has enabled ticketed events
bool dpp::guild::has_vanity_url | ( | ) | const |
Guild has access to set a vanity URL.
bool dpp::guild::has_vip_regions | ( | ) | const |
Guild has access to set 384kbps bitrate in voice.
bool dpp::guild::is_community | ( | ) | const |
Has enabled community.
bool dpp::guild::is_discoverable | ( | ) | const |
Guild is discoverable.
bool dpp::guild::is_featureable | ( | ) | const |
Guild is featurable.
bool dpp::guild::is_large | ( | ) | const |
Is a large server (>250 users)
bool dpp::guild::is_partnered | ( | ) | const |
Guild is a discord partnered server.
bool dpp::guild::is_preview_enabled | ( | ) | const |
Guild has preview enabled.
bool dpp::guild::is_unavailable | ( | ) | const |
Is unavailable due to outage (most other fields will be blank or outdated.
bool dpp::guild::is_verified | ( | ) | const |
Guild is a verified server.
bool dpp::guild::is_welcome_screen_enabled | ( | ) | const |
Guild has enabled the welcome screen.
|
inlineconstexprnoexceptinherited |
Comparison operator for comparing two managed objects by id.
other | Other object to compare against |
|
inlineconstexprnoexceptinherited |
Comparison operator for comparing two managed objects by id.
other | Other object to compare against |
permission dpp::guild::permission_overwrites | ( | const guild_member & | member, |
const channel & | channel | ||
) | const |
Get the overall permissions for a member in this channel, including channel overwrites, role permissions and admin privileges.
member | The member to resolve the permissions for |
channel | Channel to compute permission overwrites for |
permission dpp::guild::permission_overwrites | ( | const uint64_t | base_permissions, |
const user * | user, | ||
const channel * | channel | ||
) | const |
Get the overall permissions for a member in this channel, including channel overwrites, role permissions and admin privileges.
base_permissions | base permissions before overwrites, from guild::base_permissions |
user | The user to resolve the permissions for |
channel | Channel to compute permission overwrites for |
void dpp::guild::rehash_members | ( | ) |
Rehash members map.
guild & dpp::guild::remove_banner | ( | ) |
Remove the guild banner.
guild & dpp::guild::remove_discovery_splash | ( | ) |
Remove the guild discovery splash.
guild & dpp::guild::remove_icon | ( | ) |
Remove the guild icon.
guild & dpp::guild::remove_splash | ( | ) |
Remove the guild invite splash.
guild & dpp::guild::set_banner | ( | image_type | format, |
const std::byte * | data, | ||
uint32_t | size | ||
) |
Set the guild banner image. Server needs banner feature. Must be 16:9, and depending on nitro level, must be png or jpeg. Animated gif needs the animated banner server feature.
format | Image format. |
data | Image data in bytes |
size | Size of the data in bytes |
guild & dpp::guild::set_banner | ( | image_type | format, |
std::string_view | data | ||
) |
Set the guild banner image. Server needs banner feature. Must be 16:9, and depending on nitro level, must be png or jpeg. Animated gif needs the animated banner server feature.
format | Image format. |
data | Image data in bytes |
guild & dpp::guild::set_discovery_splash | ( | image_type | format, |
const std::byte * | data, | ||
uint32_t | size | ||
) |
Set the guild discovery splash image. Server needs discoverable feature. Must be 16:9 and png or jpeg.
format | Image format. |
data | Image data in bytes |
size | Size of the data in bytes |
guild & dpp::guild::set_discovery_splash | ( | image_type | format, |
std::string_view | data | ||
) |
Set the guild discovery splash image. Server needs discoverable feature. Must be 16:9 and png or jpeg.
format | Image format. |
data | Image data in bytes |
guild & dpp::guild::set_icon | ( | image_type | format, |
const std::byte * | data, | ||
uint32_t | size | ||
) |
Set the 1024x1024 guild icon image. Must be png or jpeg. Gif allowed only if the server has animated icon.
format | Image format. |
data | Image data in bytes |
size | Size of the data in bytes |
guild & dpp::guild::set_icon | ( | image_type | format, |
std::string_view | data | ||
) |
Set the guild icon image. Must be 1024x1024 and png or jpeg. Gif allowed only if the server has animated icon.
format | Image format. |
data | Image data in bytes |
guild & dpp::guild::set_name | ( | const std::string & | n | ) |
Set the name of the guild in the object Min length: 2, Max length: 100 (not including leading/trailing spaces)
n | Guild name |
dpp::length_exception | if guild name is too short |
guild & dpp::guild::set_splash | ( | image_type | format, |
const std::byte * | data, | ||
uint32_t | size | ||
) |
Set the guild invite splash image. Server needs invite splash feature. Must be 16:9 and png or jpeg.
format | Image format. |
data | Image data in bytes |
size | Size of the data in bytes |
guild & dpp::guild::set_splash | ( | image_type | format, |
std::string_view | data | ||
) |
Set the guild invite splash image. Server needs invite splash feature. Must be 16:9 and png or jpeg.
format | Image format. |
data | Image data in bytes |
|
inlineinherited |
Convert object to nlohmann::json.
with_id | Whether to include the ID or not |
|
protected |
Build a JSON from this object.
with_id | True if an ID is to be included in the JSON |
bool dpp::guild::widget_enabled | ( | ) | const |
Widget is enabled for this server.
|
friend |
snowflake dpp::guild::afk_channel_id |
Snowflake ID of AFK voice channel or 0.
guild_afk_timeout_t dpp::guild::afk_timeout |
Voice AFK timeout before moving users to AFK channel.
snowflake dpp::guild::application_id |
ID of creating application, if any, or 0.
utility::icon dpp::guild::banner |
Server banner.
std::vector<snowflake> dpp::guild::channels |
List of channels on this server.
default_message_notification_t dpp::guild::default_message_notifications |
Setting for how notifications are to be delivered to users.
std::string dpp::guild::description |
Server description.
utility::icon dpp::guild::discovery_splash |
Guild discovery splash.
std::vector<snowflake> dpp::guild::emojis |
List of emojis.
guild_explicit_content_t dpp::guild::explicit_content_filter |
Whether or not explicit content filtering is enable and what setting it is.
uint32_t dpp::guild::flags |
Flags bitmask as defined by values within dpp::guild_flags.
uint16_t dpp::guild::flags_extra |
Additional flags (values from dpp::guild_flags_extra)
utility::icon dpp::guild::icon |
Guild icon.
|
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.
uint32_t dpp::guild::max_members |
the maximum number of members for the guild
uint32_t dpp::guild::max_presences |
the maximum number of presences for the guild.
uint8_t dpp::guild::max_video_channel_users |
Maximum users in a video channel, or 0.
uint32_t dpp::guild::member_count |
Approximate member count. May be sent as zero.
members_container dpp::guild::members |
List of guild members.
mfa_level_t dpp::guild::mfa_level |
If multi factor authentication is required for moderators or not.
std::string dpp::guild::name |
Guild name.
guild_nsfw_level_t dpp::guild::nsfw_level |
Guild NSFW level.
snowflake dpp::guild::owner_id |
Snowflake id of guild owner.
uint16_t dpp::guild::premium_subscription_count |
Number of boosters.
guild_premium_tier_t dpp::guild::premium_tier |
Boost level.
snowflake dpp::guild::public_updates_channel_id |
Public updates channel id or 0.
std::vector<snowflake> dpp::guild::roles |
Roles defined on this server.
snowflake dpp::guild::rules_channel_id |
ID of rules channel for communities.
snowflake dpp::guild::safety_alerts_channel_id |
The id of the channel where admins and moderators of Community guilds receive safety alerts from Discord.
uint16_t dpp::guild::shard_id |
Shard ID of the guild.
utility::icon dpp::guild::splash |
Guild splash.
snowflake dpp::guild::system_channel_id |
ID of system channel where discord update messages are sent.
std::vector<snowflake> dpp::guild::threads |
List of threads on this server.
std::string dpp::guild::vanity_url_code |
Vanity url code for verified or partnered servers and boost level 3.
verification_level_t dpp::guild::verification_level |
Verification level of server.
std::map<snowflake, voicestate> dpp::guild::voice_members |
List of members in voice channels in the guild.
dpp::welcome_screen dpp::guild::welcome_screen |
Welcome screen.
snowflake dpp::guild::widget_channel_id |
Snowflake ID of widget channel, or 0.