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

Represents a guild on Discord (AKA a server) More...

#include <guild.h>

+ Inheritance diagram for dpp::guild:
+ Collaboration diagram for dpp::guild:

Public Member Functions

 guild ()
 
virtual ~guild ()=default
 Destroy the guild object. More...
 
guildfill_from_json (class discord_client *shard, nlohmann::json *j)
 
std::string build_json (bool with_id=false) const
 
uint64_t base_permissions (const class user *member) const
 Get the base permissions for a member on this guild, before permission overwrites are applied. More...
 
uint64_t permission_overwrites (const uint64_t base_permissions, const user *member, const channel *channel) const
 Get the permission overwrites for a member merged into a bitmask. More...
 
void rehash_members ()
 Rehash members map. More...
 
bool connect_member_voice (snowflake user_id, bool self_mute=false, bool self_deaf=false)
 Connect to a voice channel another guild member is in. 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 an invite splash. More...
 
bool has_vip_regions () const
 Guild has VIP voice regions. More...
 
bool has_vanity_url () const
 Guild can have 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_commerce () const
 Guild has commerce channels. More...
 
bool has_news () const
 Guild has news channels. More...
 
bool is_discoverable () const
 Guild is discoverable. More...
 
bool is_featureable () const
 Guild is featurable. More...
 
bool has_animated_icon () const
 Guild can have an animated icon. More...
 
bool has_banner () const
 Guild has a banner image. More...
 
bool is_welcome_screen_enabled () const
 Guild has enabled the welcome screen. More...
 
bool has_member_verification_gate () const
 Guild has 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_icon_hash () const
 Guild banner is 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_private_threads () const
 guild has access to create private threads 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...
 

Public Attributes

uint16_t shard_id
 
uint32_t flags
 
std::string name
 
std::string description
 
std::string vanity_url_code
 
utility::iconhash icon
 
utility::iconhash splash
 
utility::iconhash discovery_splash
 
snowflake owner_id
 
snowflake afk_channel_id
 
uint8_t afk_timeout
 
snowflake widget_channel_id
 
verification_level_t verification_level
 
uint8_t default_message_notifications
 
guild_explicit_content_t explicit_content_filter
 
mfa_level_t mfa_level
 
snowflake application_id
 
snowflake system_channel_id
 
snowflake rules_channel_id
 
uint32_t member_count
 
utility::iconhash banner
 
uint8_t premium_tier
 
uint16_t premium_subscription_count
 
snowflake public_updates_channel_id
 
uint16_t max_video_channel_users
 
std::vector< snowflakeroles
 
std::vector< snowflakechannels
 
std::vector< snowflakethreads
 
members_container members
 
std::map< snowflake, voicestatevoice_members
 
std::vector< snowflakeemojis
 
welcome_screen_t welcome_screen
 
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...
 
guild_nsfw_level_t nsfw_level
 Guild NSFW level. More...
 
snowflake id
 

Detailed Description

Represents a guild on Discord (AKA a server)

Constructor & Destructor Documentation

◆ guild()

dpp::guild::guild ( )

Default constructor, zeroes all values

◆ ~guild()

virtual dpp::guild::~guild ( )
virtualdefault

Destroy the guild object.

Member Function Documentation

◆ base_permissions()

uint64_t dpp::guild::base_permissions ( const class user member) const

Get the base permissions for a member on this guild, before permission overwrites are applied.

Parameters
membermember to get permissions for
Returns
uint64_t permissions bitmask

◆ build_json()

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

Build a JSON string from this object.

Parameters
with_idTrue if an ID is to be included in the JSON
Returns
JSON string

◆ connect_member_voice()

bool dpp::guild::connect_member_voice ( snowflake  user_id,
bool  self_mute = false,
bool  self_deaf = false 
)

Connect to a voice channel another guild member is in.

Parameters
user_idUser id to join
self_muteTrue if the bot should mute itself
self_deafTrue if the bot should deafen itself
Returns
True if the user specified is in a vc, false if they aren't

◆ fill_from_json()

guild & dpp::guild::fill_from_json ( class discord_client shard,
nlohmann::json j 
)

Read class values from json object

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

◆ has_animated_banner_icon_hash()

bool dpp::guild::has_animated_banner_icon_hash ( ) const

Guild banner is animated gif.

Returns
bool is animated gif

◆ has_animated_icon()

bool dpp::guild::has_animated_icon ( ) const

Guild can have an animated icon.

Returns
bool can have animated icon

◆ has_animated_icon_hash()

bool dpp::guild::has_animated_icon_hash ( ) const

Guild icon is actually an animated gif.

Returns
bool is animated gif

◆ has_banner()

bool dpp::guild::has_banner ( ) const

Guild has a banner image.

Returns
bool has banner image

◆ has_commerce()

bool dpp::guild::has_commerce ( ) const

Guild has commerce channels.

Returns
bool has commerce guilds

◆ has_invite_splash()

bool dpp::guild::has_invite_splash ( ) const

Guild has an invite splash.

Returns
bool has an invite splash

◆ has_member_verification_gate()

bool dpp::guild::has_member_verification_gate ( ) const

Guild has membership screening.

Returns
bool has membership screening

◆ has_monetization_enabled()

bool dpp::guild::has_monetization_enabled ( ) const

guild has access to monetization features

Returns
bool

◆ has_more_stickers()

bool dpp::guild::has_more_stickers ( ) const

guild has increased custom sticker slots

Returns
bool has more stickers

◆ has_news()

bool dpp::guild::has_news ( ) const

Guild has news channels.

Returns
bool has news channels

◆ has_private_threads()

bool dpp::guild::has_private_threads ( ) const

guild has access to create private threads

Returns
bool has private threads

◆ has_role_icons()

bool dpp::guild::has_role_icons ( ) const

guild is able to set role icons

Returns
bool has role icons

◆ has_seven_day_thread_archive()

bool dpp::guild::has_seven_day_thread_archive ( ) const

guild has access to the seven day archive time for threads

Returns
bool has seven day thread archive

◆ has_three_day_thread_archive()

bool dpp::guild::has_three_day_thread_archive ( ) const

guild has access to the three day archive time for threads

Returns
bool has three day thread archive

◆ has_ticketed_events()

bool dpp::guild::has_ticketed_events ( ) const

guild has enabled ticketed events

Returns
bool has ticketed events

◆ has_vanity_url()

bool dpp::guild::has_vanity_url ( ) const

Guild can have a vanity url.

Returns
bool can have vanity url

◆ has_vip_regions()

bool dpp::guild::has_vip_regions ( ) const

Guild has VIP voice regions.

Returns
bool has vip regions

◆ is_community()

bool dpp::guild::is_community ( ) const

Has enabled community.

Returns
bool has enabled community

◆ is_discoverable()

bool dpp::guild::is_discoverable ( ) const

Guild is discoverable.

Returns
bool is discoverable

◆ is_featureable()

bool dpp::guild::is_featureable ( ) const

Guild is featurable.

Returns
bool is featurable

◆ is_large()

bool dpp::guild::is_large ( ) const

Is a large server (>250 users)

Returns
bool is a large guild

◆ is_partnered()

bool dpp::guild::is_partnered ( ) const

Guild is a discord partnered server.

Returns
bool is discord partnered

◆ is_preview_enabled()

bool dpp::guild::is_preview_enabled ( ) const

Guild has preview enabled.

Returns
bool has preview

◆ is_unavailable()

bool dpp::guild::is_unavailable ( ) const

Is unavailable due to outage (most other fields will be blank or outdated.

Returns
bool is unavailable

◆ is_verified()

bool dpp::guild::is_verified ( ) const

Guild is a verified server.

Returns
bool is verified

◆ is_welcome_screen_enabled()

bool dpp::guild::is_welcome_screen_enabled ( ) const

Guild has enabled the welcome screen.

Returns
bool enabled welcome screen

◆ permission_overwrites()

uint64_t dpp::guild::permission_overwrites ( const uint64_t  base_permissions,
const user member,
const channel channel 
) const

Get the permission overwrites for a member merged into a bitmask.

Parameters
base_permissionsbase permissions before overwrites, from channel::base_permissions
memberMember to fetch permissions for
channelChannel to fetch permissions against
Returns
uint64_t Merged permissions bitmask of overwrites.

◆ rehash_members()

void dpp::guild::rehash_members ( )

Rehash members map.

◆ widget_enabled()

bool dpp::guild::widget_enabled ( ) const

Widget is enabled for this server.

Returns
bool widget enabled

Member Data Documentation

◆ afk_channel_id

snowflake dpp::guild::afk_channel_id

Snowflake ID of AFK voice channel or 0

◆ afk_timeout

uint8_t dpp::guild::afk_timeout

Voice AFK timeout before moving users to AFK channel

◆ application_id

snowflake dpp::guild::application_id

ID of creating application, if any, or 0

◆ banner

utility::iconhash dpp::guild::banner

Server banner hash

◆ channels

std::vector<snowflake> dpp::guild::channels

List of channels on this server

◆ default_message_notifications

uint8_t dpp::guild::default_message_notifications

Setting for how notifications are to be delivered to users

◆ description

std::string dpp::guild::description

Server description for communities

◆ discovery_splash

utility::iconhash dpp::guild::discovery_splash

Guild discovery splash hash

◆ emojis

std::vector<snowflake> dpp::guild::emojis

List of emojis

◆ explicit_content_filter

guild_explicit_content_t dpp::guild::explicit_content_filter

Whether or not explicit content filtering is enable and what setting it is

◆ flags

uint32_t dpp::guild::flags

Flags bitmask as defined by values within dpp::guild_flags

◆ icon

utility::iconhash dpp::guild::icon

Guild icon hash

◆ id

snowflake dpp::managed::id
inherited

Unique ID of object

◆ max_members

uint32_t dpp::guild::max_members

the maximum number of members for the guild

◆ max_presences

uint32_t dpp::guild::max_presences

the maximum number of presences for the guild.

Note
Generally Discord always fills this with 0, apart from for the largest of guilds

◆ max_video_channel_users

uint16_t dpp::guild::max_video_channel_users

Maximum users in a video channel, or 0

◆ member_count

uint32_t dpp::guild::member_count

Approximate member count. May be sent as zero

◆ members

members_container dpp::guild::members

List of guild members. Note that when you first receive the guild create event, this may be empty or near empty. This depends upon your dpp::intents and the size of your bot. It will be filled by guild member chunk requests.

◆ mfa_level

mfa_level_t dpp::guild::mfa_level

If multi factor authentication is required for moderators or not

◆ name

std::string dpp::guild::name

Guild name

◆ nsfw_level

guild_nsfw_level_t dpp::guild::nsfw_level

Guild NSFW level.

◆ owner_id

snowflake dpp::guild::owner_id

Snowflake id of guild owner

◆ premium_subscription_count

uint16_t dpp::guild::premium_subscription_count

Number of boosters

◆ premium_tier

uint8_t dpp::guild::premium_tier

Boost level

◆ public_updates_channel_id

snowflake dpp::guild::public_updates_channel_id

Public updates channel id or 0

◆ roles

std::vector<snowflake> dpp::guild::roles

Roles defined on this server

◆ rules_channel_id

snowflake dpp::guild::rules_channel_id

ID of rules channel for communities

◆ shard_id

uint16_t dpp::guild::shard_id

Shard ID of the guild

◆ splash

utility::iconhash dpp::guild::splash

Guild splash hash

◆ system_channel_id

snowflake dpp::guild::system_channel_id

ID of system channel where discord update messages are sent

◆ threads

std::vector<snowflake> dpp::guild::threads

List of threads on this server

◆ vanity_url_code

std::string dpp::guild::vanity_url_code

Vanity url code for verified or partnered servers and boost level 3

◆ verification_level

verification_level_t dpp::guild::verification_level

Verification level of server

◆ voice_members

std::map<snowflake, voicestate> dpp::guild::voice_members

List of members in voice channels in the guild.

◆ welcome_screen

welcome_screen_t dpp::guild::welcome_screen

Welcome screen

◆ widget_channel_id

snowflake dpp::guild::widget_channel_id

Snowflake ID of widget channel, or 0

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