#ifndef UTILS_EVENTS_HPP_ #define UTILS_EVENTS_HPP_ struct GatewayEvents { static constexpr const char* APPLICATION_COMMAND_PERMISSIONS_UPDATE = "APPLICATION_COMMAND_PERMISSIONS_UPDATE"; static constexpr const char* AUTO_MODERATION_ACTION_EXECUTION = "AUTO_MODERATION_ACTION_EXECUTION"; static constexpr const char* AUTO_MODERATION_RULE_CREATE = "AUTO_MODERATION_RULE_CREATE"; static constexpr const char* AUTO_MODERATION_RULE_DELETE = "AUTO_MODERATION_RULE_DELETE"; static constexpr const char* AUTO_MODERATION_RULE_UPDATE = "AUTO_MODERATION_RULE_UPDATE"; static constexpr const char* CHANNEL_CREATE = "CHANNEL_CREATE"; static constexpr const char* CHANNEL_DELETE = "CHANNEL_DELETE"; static constexpr const char* CHANNEL_PINS_UPDATE = "CHANNEL_PINS_UPDATE"; static constexpr const char* CHANNEL_UPDATE = "CHANNEL_UPDATE"; static constexpr const char* ENTITLEMENT_CREATE = "ENTITLEMENT_CREATE"; static constexpr const char* ENTITLEMENT_DELETE = "ENTITLEMENT_DELETE"; static constexpr const char* ENTITLEMENT_UPDATE = "ENTITLEMENT_UPDATE"; static constexpr const char* GUILD_AUDIT_LOG_ENTRY_CREATE = "GUILD_AUDIT_LOG_ENTRY_CREATE"; static constexpr const char* GUILD_BAN_ADD = "GUILD_BAN_ADD"; static constexpr const char* GUILD_BAN_REMOVE = "GUILD_BAN_REMOVE"; static constexpr const char* GUILD_CREATE = "GUILD_CREATE"; static constexpr const char* GUILD_DELETE = "GUILD_DELETE"; static constexpr const char* GUILD_EMOJIS_UPDATE = "GUILD_EMOJIS_UPDATE"; static constexpr const char* GUILD_INTEGRATIONS_UPDATE = "GUILD_INTEGRATIONS_UPDATE"; static constexpr const char* GUILD_MEMBER_ADD = "GUILD_MEMBER_ADD"; static constexpr const char* GUILD_MEMBER_REMOVE = "GUILD_MEMBER_REMOVE"; static constexpr const char* GUILD_MEMBERS_CHUNK = "GUILD_MEMBERS_CHUNK"; static constexpr const char* GUILD_MEMBER_UPDATE = "GUILD_MEMBER_UPDATE"; static constexpr const char* GUILD_ROLE_CREATE = "GUILD_ROLE_CREATE"; static constexpr const char* GUILD_ROLE_DELETE = "GUILD_ROLE_DELETE"; static constexpr const char* GUILD_ROLE_UPDATE = "GUILD_ROLE_UPDATE"; static constexpr const char* GUILD_SCHEDULED_EVENT_CREATE = "GUILD_SCHEDULED_EVENT_CREATE"; static constexpr const char* GUILD_SCHEDULED_EVENT_DELETE = "GUILD_SCHEDULED_EVENT_DELETE"; static constexpr const char* GUILD_SCHEDULED_EVENT_UPDATE = "GUILD_SCHEDULED_EVENT_UPDATE"; static constexpr const char* GUILD_SCHEDULED_EVENT_USER_REMOVE = "GUILD_SCHEDULED_EVENT_USER_REMOVE"; static constexpr const char* GUILD_SOUNDBOARD_SOUND_CREATE = "GUILD_SOUNDBOARD_SOUND_CREATE"; static constexpr const char* GUILD_SOUNDBOARD_SOUND_DELETE = "GUILD_SOUNDBOARD_SOUND_DELETE"; static constexpr const char* GUILD_SOUNDBOARD_SOUNDS_UPDATE = "GUILD_SOUNDBOARD_SOUNDS_UPDATE"; static constexpr const char* GUILD_SOUNDBOARD_SOUND_UPDATE = "GUILD_SOUNDBOARD_SOUND_UPDATE"; static constexpr const char* SOUNDBOARD_SOUNDS = "SOUNDBOARD_SOUNDS"; static constexpr const char* GUILD_STICKERS_UPDATE = "GUILD_STICKERS_UPDATE"; static constexpr const char* GUILD_UPDATE = "GUILD_UPDATE"; static constexpr const char* INTEGRATION_CREATE = "INTEGRATION_CREATE"; static constexpr const char* INTEGRATION_DELETE = "INTEGRATION_DELETE"; static constexpr const char* INTEGRATION_UPDATE = "INTEGRATION_UPDATE"; static constexpr const char* INVITE_CREATE = "INVITE_CREATE"; static constexpr const char* INVITE_DELETE = "INVITE_DELETE"; static constexpr const char* MESSAGE_CREATE = "MESSAGE_CREATE"; static constexpr const char* MESSAGE_DELETE = "MESSAGE_DELETE"; static constexpr const char* MESSAGE_DELETE_BULK = "MESSAGE_DELETE_BULK"; static constexpr const char* MESSAGE_POLL_VOTE_ADD = "MESSAGE_POLL_VOTE_ADD"; static constexpr const char* MESSAGE_POLL_VOTE_REMOVE = "MESSAGE_POLL_VOTE_REMOVE"; static constexpr const char* MESSAGE_REACTION_ADD = "MESSAGE_REACTION_ADD"; static constexpr const char* MESSAGE_REACTION_REMOVE = "MESSAGE_REACTION_REMOVE"; static constexpr const char* MESSAGE_REACTION_REMOVE_ALL = "MESSAGE_REACTION_REMOVE_ALL"; static constexpr const char* MESSAGE_REACTION_REMOVE_EMOJI = "MESSAGE_REACTION_REMOVE_EMOJI"; static constexpr const char* MESSAGE_UPDATE = "MESSAGE_UPDATE"; static constexpr const char* PRESENCE_UPDATE = "PRESENCE_UPDATE"; static constexpr const char* READY = "READY"; static constexpr const char* RESUMED = "RESUMED"; static constexpr const char* STAGE_INSTANCE_CREATE = "STAGE_INSTANCE_CREATE"; static constexpr const char* STAGE_INSTANCE_DELETE = "STAGE_INSTANCE_DELETE"; static constexpr const char* STAGE_INSTANCE_UPDATE = "STAGE_INSTANCE_UPDATE"; static constexpr const char* SUBSCRIPTION_CREATE = "SUBSCRIPTION_CREATE"; static constexpr const char* SUBSCRIPTION_DELETE = "SUBSCRIPTION_DELETE"; static constexpr const char* SUBSCRIPTION_UPDATE = "SUBSCRIPTION_UPDATE"; static constexpr const char* THREAD_CREATE = "THREAD_CREATE"; static constexpr const char* THREAD_DELETE = "THREAD_DELETE"; static constexpr const char* THREAD_LIST_SYNC = "THREAD_LIST_SYNC"; static constexpr const char* THREAD_MEMBERS_UPDATE = "THREAD_MEMBERS_UPDATE"; static constexpr const char* THREAD_MEMBER_UPDATE = "THREAD_MEMBER_UPDATE"; static constexpr const char* THREAD_UPDATE = "THREAD_UPDATE"; static constexpr const char* TYPING_START = "TYPING_START"; static constexpr const char* USER_UPDATE = "USER_UPDATE"; static constexpr const char* VOICE_CHANNEL_EFFECT_SEND = "VOICE_CHANNEL_EFFECT_SEND"; static constexpr const char* VOICE_SERVER_UPDATE = "VOICE_SERVER_UPDATE"; static constexpr const char* VOICE_STATE_UPDATE = "VOICE_STATE_UPDATE"; static constexpr const char* WEBHOOKS_UPDATE = "WEBHOOKS_UPDATE"; }; struct HttpMethods { static constexpr const char* POST = "POST"; static constexpr const char* GET = "GET"; static constexpr const char* PATCH = "PATCH"; static constexpr const char* DELETE = "DELETE"; static constexpr const char* PUT = "PUT"; static constexpr const char* OPTIONS = "OPTIONS"; }; struct ApiVersion { static const inline std::string api = "/api/"; static const inline std::string v10 = "v10"; static const inline std::string v9 = "v9"; static const inline std::string v8 = "v8"; static const inline std::string v7 = "v7"; static const inline std::string v6 = "v6"; static const inline std::string current = api + v6; static const inline std::string latest = api + v10; }; struct DiscordEndpoints { static const inline std::string main_scheme = "https://"; static const inline std::string discord = main_scheme + "discord.com"; static const inline std::string images = main_scheme + "cdn.discord.com"; static const inline std::string media = main_scheme + "media.discord.com"; struct details { static const inline std::string current = DiscordEndpoints::discord + ApiVersion::current; static const inline std::string latest = DiscordEndpoints::discord + ApiVersion::latest; }; }; enum GatewayIntents { AutoModerationConfiguration = 1048576, AutoModerationExecution = 2097152, DirectMessagePolls = 33554432, DirectMessageReactions = 8192, DirectMessages = 4096, DirectMessageTyping = 16384, GuildBans = 4, GuildEmojisAndStickers = 8, GuildExpressions = 8, GuildIntegrations = 16, GuildInvites = 64, GuildMembers = 2, GuildMessagePolls = 16777216, GuildMessageReactions = 1024, GuildMessages = 512, GuildMessageTyping = 2048, GuildModeration = 4, GuildPresences = 256, Guilds = 1, GuildScheduledEvents = 65536, GuildVoiceStates = 128, GuildWebhooks = 32, MessageContent = 32768, AllIntents = 131071 }; enum UserStatus { Offline, Online, Idle, AFK, DoNotDisturb, Invisible }; enum DiscordTime { Epoch = 1420070400000, }; enum GatewayOpcodes { Dispatch, Heartbeat, Identify, PresenceUpdate, VoiceStateUpdate, Resume = 6, Reconnect, RequestGuildMembers, InvalidSession, Hello, HeartbeatACK, RequestSoundboardSounds = 31, }; #endif