mirror of
https://github.com/celisej567/abaddon.git
synced 2026-09-19 20:11:59 +03:00
Restructure source and resource files (#46)
importantly, res is now res/res and css is now res/css
This commit is contained in:
committed by
GitHub
parent
d88079000a
commit
a51a54bc59
747
src/discord/objects.hpp
Normal file
747
src/discord/objects.hpp
Normal file
@@ -0,0 +1,747 @@
|
||||
#pragma once
|
||||
#include <algorithm>
|
||||
#include <nlohmann/json.hpp>
|
||||
#include <vector>
|
||||
#include <string>
|
||||
#include "snowflake.hpp"
|
||||
#include "user.hpp"
|
||||
#include "role.hpp"
|
||||
#include "member.hpp"
|
||||
#include "channel.hpp"
|
||||
#include "guild.hpp"
|
||||
#include "usersettings.hpp"
|
||||
#include "message.hpp"
|
||||
#include "invite.hpp"
|
||||
#include "permissions.hpp"
|
||||
#include "emoji.hpp"
|
||||
#include "activity.hpp"
|
||||
#include "sticker.hpp"
|
||||
#include "ban.hpp"
|
||||
#include "auditlog.hpp"
|
||||
#include "relationship.hpp"
|
||||
#include "errors.hpp"
|
||||
|
||||
// most stuff below should just be objects that get processed and thrown away immediately
|
||||
|
||||
enum class GatewayOp : int {
|
||||
Event = 0,
|
||||
Heartbeat = 1,
|
||||
Identify = 2,
|
||||
UpdateStatus = 3,
|
||||
Resume = 6,
|
||||
Reconnect = 7,
|
||||
InvalidSession = 9,
|
||||
Hello = 10,
|
||||
HeartbeatAck = 11,
|
||||
LazyLoadRequest = 14,
|
||||
};
|
||||
|
||||
enum class GatewayEvent : int {
|
||||
READY,
|
||||
MESSAGE_CREATE,
|
||||
MESSAGE_DELETE,
|
||||
MESSAGE_UPDATE,
|
||||
GUILD_MEMBER_LIST_UPDATE,
|
||||
GUILD_CREATE,
|
||||
GUILD_DELETE,
|
||||
MESSAGE_DELETE_BULK,
|
||||
GUILD_MEMBER_UPDATE,
|
||||
PRESENCE_UPDATE,
|
||||
CHANNEL_DELETE,
|
||||
CHANNEL_UPDATE,
|
||||
CHANNEL_CREATE,
|
||||
GUILD_UPDATE,
|
||||
GUILD_ROLE_UPDATE,
|
||||
GUILD_ROLE_CREATE,
|
||||
GUILD_ROLE_DELETE,
|
||||
MESSAGE_REACTION_ADD,
|
||||
MESSAGE_REACTION_REMOVE,
|
||||
CHANNEL_RECIPIENT_ADD,
|
||||
CHANNEL_RECIPIENT_REMOVE,
|
||||
TYPING_START,
|
||||
GUILD_BAN_REMOVE,
|
||||
GUILD_BAN_ADD,
|
||||
INVITE_CREATE,
|
||||
INVITE_DELETE,
|
||||
USER_NOTE_UPDATE,
|
||||
READY_SUPPLEMENTAL,
|
||||
GUILD_EMOJIS_UPDATE,
|
||||
GUILD_JOIN_REQUEST_CREATE,
|
||||
GUILD_JOIN_REQUEST_UPDATE,
|
||||
GUILD_JOIN_REQUEST_DELETE,
|
||||
RELATIONSHIP_REMOVE,
|
||||
RELATIONSHIP_ADD,
|
||||
THREAD_CREATE,
|
||||
THREAD_UPDATE,
|
||||
THREAD_DELETE,
|
||||
THREAD_LIST_SYNC,
|
||||
THREAD_MEMBER_UPDATE,
|
||||
THREAD_MEMBERS_UPDATE,
|
||||
THREAD_MEMBER_LIST_UPDATE,
|
||||
};
|
||||
|
||||
enum class GatewayCloseCode : uint16_t {
|
||||
// standard
|
||||
Normal = 1000,
|
||||
GoingAway = 1001,
|
||||
ProtocolError = 1002,
|
||||
Unsupported = 1003,
|
||||
NoStatus = 1005,
|
||||
Abnormal = 1006,
|
||||
UnsupportedPayload = 1007,
|
||||
PolicyViolation = 1008,
|
||||
TooLarge = 1009,
|
||||
MandatoryExtension = 1010,
|
||||
ServerError = 1011,
|
||||
ServiceRestart = 1012,
|
||||
TryAgainLater = 1013,
|
||||
BadGateway = 1014,
|
||||
TLSHandshakeFailed = 1015,
|
||||
|
||||
// discord
|
||||
UnknownError = 4000,
|
||||
UnknownOpcode = 4001,
|
||||
DecodeError = 4002,
|
||||
NotAuthenticated = 4003,
|
||||
AuthenticationFailed = 4004,
|
||||
AlreadyAuthenticated = 4005,
|
||||
InvalidSequence = 4007,
|
||||
RateLimited = 4008,
|
||||
SessionTimedOut = 4009,
|
||||
InvalidShard = 4010,
|
||||
ShardingRequired = 4011,
|
||||
InvalidAPIVersion = 4012,
|
||||
InvalidIntents = 4013,
|
||||
DisallowedIntents = 4014,
|
||||
|
||||
// internal
|
||||
UserDisconnect = 4091,
|
||||
Reconnecting = 4092,
|
||||
};
|
||||
|
||||
struct GatewayMessage {
|
||||
GatewayOp Opcode;
|
||||
nlohmann::json Data;
|
||||
std::string Type;
|
||||
int Sequence = -1;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, GatewayMessage &m);
|
||||
};
|
||||
|
||||
struct HelloMessageData {
|
||||
int HeartbeatInterval;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, HelloMessageData &m);
|
||||
};
|
||||
|
||||
struct MessageDeleteData {
|
||||
Snowflake ID; //
|
||||
Snowflake ChannelID; //
|
||||
Snowflake GuildID; // opt
|
||||
|
||||
friend void from_json(const nlohmann::json &j, MessageDeleteData &m);
|
||||
};
|
||||
|
||||
struct MessageDeleteBulkData {
|
||||
std::vector<Snowflake> IDs; //
|
||||
Snowflake ChannelID; //
|
||||
Snowflake GuildID; // opt
|
||||
|
||||
friend void from_json(const nlohmann::json &j, MessageDeleteBulkData &m);
|
||||
};
|
||||
|
||||
struct GuildMemberListUpdateMessage {
|
||||
struct Item {
|
||||
virtual ~Item() = default;
|
||||
|
||||
std::string Type;
|
||||
};
|
||||
|
||||
struct GroupItem : Item {
|
||||
std::string ID;
|
||||
int Count;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, GroupItem &m);
|
||||
};
|
||||
|
||||
struct MemberItem : Item {
|
||||
UserData User;
|
||||
std::vector<Snowflake> Roles;
|
||||
std::optional<PresenceData> Presence;
|
||||
std::string PremiumSince; // opt
|
||||
std::string Nickname; // opt
|
||||
bool IsMuted;
|
||||
std::string JoinedAt;
|
||||
std::string HoistedRole; // null
|
||||
bool IsDefeaned;
|
||||
|
||||
GuildMember GetAsMemberData() const;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, MemberItem &m);
|
||||
|
||||
private:
|
||||
GuildMember m_member_data;
|
||||
};
|
||||
|
||||
struct OpObject {
|
||||
std::string Op;
|
||||
std::optional<int> Index;
|
||||
std::optional<std::vector<std::unique_ptr<Item>>> Items; // SYNC
|
||||
std::optional<std::pair<int, int>> Range; // SYNC
|
||||
std::optional<std::unique_ptr<Item>> OpItem; // UPDATE
|
||||
|
||||
friend void from_json(const nlohmann::json &j, OpObject &m);
|
||||
};
|
||||
|
||||
int OnlineCount;
|
||||
int MemberCount;
|
||||
std::string ListIDHash;
|
||||
std::string GuildID;
|
||||
std::vector<GroupItem> Groups;
|
||||
std::vector<OpObject> Ops;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, GuildMemberListUpdateMessage &m);
|
||||
};
|
||||
|
||||
struct LazyLoadRequestMessage {
|
||||
Snowflake GuildID;
|
||||
std::optional<bool> ShouldGetTyping;
|
||||
std::optional<bool> ShouldGetActivities;
|
||||
std::optional<bool> ShouldGetThreads;
|
||||
std::optional<std::vector<std::string>> Members; // snowflake?
|
||||
std::optional<std::map<Snowflake, std::vector<std::pair<int, int>>>> Channels; // channel ID -> range of sidebar
|
||||
std::optional<std::vector<Snowflake>> ThreadIDs;
|
||||
|
||||
friend void to_json(nlohmann::json &j, const LazyLoadRequestMessage &m);
|
||||
};
|
||||
|
||||
struct UpdateStatusMessage {
|
||||
int Since = 0;
|
||||
std::vector<ActivityData> Activities;
|
||||
PresenceStatus Status;
|
||||
bool IsAFK = false;
|
||||
|
||||
friend void to_json(nlohmann::json &j, const UpdateStatusMessage &m);
|
||||
};
|
||||
|
||||
struct ReadyEventData {
|
||||
int GatewayVersion;
|
||||
UserData SelfUser;
|
||||
std::vector<GuildData> Guilds;
|
||||
std::string SessionID;
|
||||
std::vector<ChannelData> PrivateChannels;
|
||||
|
||||
// undocumented
|
||||
std::optional<std::vector<UserData>> Users;
|
||||
std::optional<std::string> AnalyticsToken;
|
||||
std::optional<int> FriendSuggestionCount;
|
||||
UserSettings Settings;
|
||||
std::optional<std::vector<std::vector<GuildMember>>> MergedMembers;
|
||||
std::optional<std::vector<RelationshipData>> Relationships;
|
||||
std::optional<std::vector<GuildApplicationData>> GuildJoinRequests;
|
||||
// std::vector<Unknown> ConnectedAccounts; // opt
|
||||
// std::map<std::string, Unknown> Consents; // opt
|
||||
// std::vector<Unknown> Experiments; // opt
|
||||
// std::vector<Unknown> GuildExperiments; // opt
|
||||
// std::map<Unknown, Unknown> Notes; // opt
|
||||
// std::vector<PresenceData> Presences; // opt
|
||||
// std::vector<ReadStateData> ReadStates; // opt
|
||||
// Unknown Tutorial; // opt, null
|
||||
// std::vector<GuildSettingData> UserGuildSettings; // opt
|
||||
|
||||
friend void from_json(const nlohmann::json &j, ReadyEventData &m);
|
||||
};
|
||||
|
||||
struct MergedPresence {
|
||||
Snowflake UserID;
|
||||
std::optional<uint64_t> LastModified;
|
||||
PresenceData Presence;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, MergedPresence &m);
|
||||
};
|
||||
|
||||
struct SupplementalMergedPresencesData {
|
||||
std::vector<std::vector<MergedPresence>> Guilds;
|
||||
std::vector<MergedPresence> Friends;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, SupplementalMergedPresencesData &m);
|
||||
};
|
||||
|
||||
struct ReadySupplementalData {
|
||||
SupplementalMergedPresencesData MergedPresences;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, ReadySupplementalData &m);
|
||||
};
|
||||
|
||||
struct IdentifyProperties {
|
||||
std::string OS;
|
||||
std::string Browser;
|
||||
std::string Device;
|
||||
std::string SystemLocale;
|
||||
std::string BrowserUserAgent;
|
||||
std::string BrowserVersion;
|
||||
std::string OSVersion;
|
||||
std::string Referrer;
|
||||
std::string ReferringDomain;
|
||||
std::string ReferrerCurrent;
|
||||
std::string ReferringDomainCurrent;
|
||||
std::string ReleaseChannel;
|
||||
int ClientBuildNumber;
|
||||
std::string ClientEventSource; // empty -> null
|
||||
|
||||
friend void to_json(nlohmann::json &j, const IdentifyProperties &m);
|
||||
};
|
||||
|
||||
struct ClientStateProperties {
|
||||
std::map<std::string, std::string> GuildHashes;
|
||||
std::string HighestLastMessageID = "0";
|
||||
int ReadStateVersion = 0;
|
||||
int UserGuildSettingsVersion = -1;
|
||||
|
||||
friend void to_json(nlohmann::json &j, const ClientStateProperties &m);
|
||||
};
|
||||
|
||||
struct IdentifyMessage : GatewayMessage {
|
||||
std::string Token;
|
||||
IdentifyProperties Properties;
|
||||
PresenceData Presence;
|
||||
ClientStateProperties ClientState;
|
||||
bool DoesSupportCompression = false;
|
||||
int Capabilities;
|
||||
|
||||
friend void to_json(nlohmann::json &j, const IdentifyMessage &m);
|
||||
};
|
||||
|
||||
struct HeartbeatMessage : GatewayMessage {
|
||||
int Sequence;
|
||||
|
||||
friend void to_json(nlohmann::json &j, const HeartbeatMessage &m);
|
||||
};
|
||||
|
||||
struct CreateMessageObject {
|
||||
std::string Content;
|
||||
std::optional<MessageReferenceData> MessageReference;
|
||||
std::optional<std::string> Nonce;
|
||||
|
||||
friend void to_json(nlohmann::json &j, const CreateMessageObject &m);
|
||||
};
|
||||
|
||||
struct MessageEditObject {
|
||||
std::string Content; // opt, null
|
||||
std::vector<EmbedData> Embeds; // opt, null
|
||||
int Flags = -1; // opt, null
|
||||
|
||||
friend void to_json(nlohmann::json &j, const MessageEditObject &m);
|
||||
};
|
||||
|
||||
struct GuildMemberUpdateMessage {
|
||||
Snowflake GuildID; //
|
||||
std::vector<Snowflake> Roles; //
|
||||
UserData User; //
|
||||
std::string Nick; // opt, null
|
||||
std::string JoinedAt;
|
||||
std::string PremiumSince; // opt, null
|
||||
|
||||
friend void from_json(const nlohmann::json &j, GuildMemberUpdateMessage &m);
|
||||
};
|
||||
|
||||
struct ClientStatusData {
|
||||
std::optional<std::string> Desktop;
|
||||
std::optional<std::string> Mobile;
|
||||
std::optional<std::string> Web;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, ClientStatusData &m);
|
||||
};
|
||||
|
||||
struct PresenceUpdateMessage {
|
||||
nlohmann::json User; // the client updates an existing object from this data
|
||||
std::optional<Snowflake> GuildID;
|
||||
std::string StatusMessage;
|
||||
std::vector<ActivityData> Activities;
|
||||
ClientStatusData ClientStatus;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, PresenceUpdateMessage &m);
|
||||
};
|
||||
|
||||
struct CreateDMObject {
|
||||
std::vector<Snowflake> Recipients;
|
||||
|
||||
friend void to_json(nlohmann::json &j, const CreateDMObject &m);
|
||||
};
|
||||
|
||||
struct ResumeMessage : GatewayMessage {
|
||||
std::string Token;
|
||||
std::string SessionID;
|
||||
int Sequence;
|
||||
|
||||
friend void to_json(nlohmann::json &j, const ResumeMessage &m);
|
||||
};
|
||||
|
||||
struct GuildRoleUpdateObject {
|
||||
Snowflake GuildID;
|
||||
RoleData Role;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, GuildRoleUpdateObject &m);
|
||||
};
|
||||
|
||||
struct GuildRoleCreateObject {
|
||||
Snowflake GuildID;
|
||||
RoleData Role;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, GuildRoleCreateObject &m);
|
||||
};
|
||||
|
||||
struct GuildRoleDeleteObject {
|
||||
Snowflake GuildID;
|
||||
Snowflake RoleID;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, GuildRoleDeleteObject &m);
|
||||
};
|
||||
|
||||
struct MessageReactionAddObject {
|
||||
Snowflake UserID;
|
||||
Snowflake ChannelID;
|
||||
Snowflake MessageID;
|
||||
std::optional<Snowflake> GuildID;
|
||||
std::optional<GuildMember> Member;
|
||||
EmojiData Emoji;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, MessageReactionAddObject &m);
|
||||
};
|
||||
|
||||
struct MessageReactionRemoveObject {
|
||||
Snowflake UserID;
|
||||
Snowflake ChannelID;
|
||||
Snowflake MessageID;
|
||||
std::optional<Snowflake> GuildID;
|
||||
EmojiData Emoji;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, MessageReactionRemoveObject &m);
|
||||
};
|
||||
|
||||
struct ChannelRecipientAdd {
|
||||
UserData User;
|
||||
Snowflake ChannelID;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, ChannelRecipientAdd &m);
|
||||
};
|
||||
|
||||
struct ChannelRecipientRemove {
|
||||
UserData User;
|
||||
Snowflake ChannelID;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, ChannelRecipientRemove &m);
|
||||
};
|
||||
|
||||
struct TypingStartObject {
|
||||
Snowflake ChannelID;
|
||||
std::optional<Snowflake> GuildID;
|
||||
Snowflake UserID;
|
||||
uint64_t Timestamp;
|
||||
std::optional<GuildMember> Member;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, TypingStartObject &m);
|
||||
};
|
||||
|
||||
// implement rest as needed
|
||||
struct ModifyGuildObject {
|
||||
std::optional<std::string> Name;
|
||||
std::optional<std::string> IconData;
|
||||
|
||||
friend void to_json(nlohmann::json &j, const ModifyGuildObject &m);
|
||||
};
|
||||
|
||||
struct GuildBanRemoveObject {
|
||||
Snowflake GuildID;
|
||||
UserData User;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, GuildBanRemoveObject &m);
|
||||
};
|
||||
|
||||
struct GuildBanAddObject {
|
||||
Snowflake GuildID;
|
||||
UserData User;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, GuildBanAddObject &m);
|
||||
};
|
||||
|
||||
struct InviteCreateObject {
|
||||
Snowflake ChannelID;
|
||||
std::string Code;
|
||||
std::string CreatedAt;
|
||||
std::optional<Snowflake> GuildID;
|
||||
std::optional<UserData> Inviter;
|
||||
int MaxAge;
|
||||
int MaxUses;
|
||||
UserData TargetUser;
|
||||
std::optional<ETargetUserType> TargetUserType;
|
||||
bool IsTemporary;
|
||||
int Uses;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, InviteCreateObject &m);
|
||||
};
|
||||
|
||||
struct InviteDeleteObject {
|
||||
Snowflake ChannelID;
|
||||
std::optional<Snowflake> GuildID;
|
||||
std::string Code;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, InviteDeleteObject &m);
|
||||
};
|
||||
|
||||
struct ConnectionData {
|
||||
std::string ID;
|
||||
std::string Type;
|
||||
std::string Name;
|
||||
bool IsVerified;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, ConnectionData &m);
|
||||
};
|
||||
|
||||
struct MutualGuildData {
|
||||
Snowflake ID;
|
||||
std::optional<std::string> Nick; // null
|
||||
|
||||
friend void from_json(const nlohmann::json &j, MutualGuildData &m);
|
||||
};
|
||||
|
||||
struct UserProfileData {
|
||||
std::vector<ConnectionData> ConnectedAccounts;
|
||||
std::vector<MutualGuildData> MutualGuilds;
|
||||
std::optional<std::string> PremiumGuildSince; // null
|
||||
std::optional<std::string> PremiumSince; // null
|
||||
UserData User;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, UserProfileData &m);
|
||||
};
|
||||
|
||||
struct UserNoteObject {
|
||||
// idk if these can be null or missing but i play it safe
|
||||
std::optional<std::string> Note;
|
||||
std::optional<Snowflake> NoteUserID;
|
||||
std::optional<Snowflake> UserID;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, UserNoteObject &m);
|
||||
};
|
||||
|
||||
struct UserSetNoteObject {
|
||||
std::string Note;
|
||||
|
||||
friend void to_json(nlohmann::json &j, const UserSetNoteObject &m);
|
||||
};
|
||||
|
||||
struct UserNoteUpdateMessage {
|
||||
std::string Note;
|
||||
Snowflake ID;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, UserNoteUpdateMessage &m);
|
||||
};
|
||||
|
||||
struct RelationshipsData {
|
||||
std::vector<UserData> Users;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, RelationshipsData &m);
|
||||
};
|
||||
|
||||
struct ModifyGuildMemberObject {
|
||||
// std::optional<std::string> Nick;
|
||||
// std::optional<bool> IsMuted;
|
||||
// std::optional<bool> IsDeaf;
|
||||
// std::optional<Snowflake> ChannelID;
|
||||
|
||||
std::optional<std::vector<Snowflake>> Roles;
|
||||
|
||||
friend void to_json(nlohmann::json &j, const ModifyGuildMemberObject &m);
|
||||
};
|
||||
|
||||
struct ModifyGuildRoleObject {
|
||||
std::optional<std::string> Name;
|
||||
std::optional<Permission> Permissions;
|
||||
std::optional<uint32_t> Color;
|
||||
std::optional<bool> IsHoisted;
|
||||
std::optional<bool> Mentionable;
|
||||
|
||||
friend void to_json(nlohmann::json &j, const ModifyGuildRoleObject &m);
|
||||
};
|
||||
|
||||
struct ModifyGuildRolePositionsObject {
|
||||
struct PositionParam {
|
||||
Snowflake ID;
|
||||
std::optional<int> Position; // no idea why this can be optional
|
||||
|
||||
friend void to_json(nlohmann::json &j, const PositionParam &m);
|
||||
};
|
||||
std::vector<PositionParam> Positions;
|
||||
|
||||
friend void to_json(nlohmann::json &j, const ModifyGuildRolePositionsObject &m);
|
||||
};
|
||||
|
||||
struct GuildEmojisUpdateObject {
|
||||
Snowflake GuildID;
|
||||
// std::vector<EmojiData> Emojis;
|
||||
// GuildHashes, undocumented
|
||||
|
||||
friend void from_json(const nlohmann::json &j, GuildEmojisUpdateObject &m);
|
||||
};
|
||||
|
||||
struct ModifyGuildEmojiObject {
|
||||
std::optional<std::string> Name;
|
||||
// std::optional<std::vector<Snowflake>> Roles;
|
||||
|
||||
friend void to_json(nlohmann::json &j, const ModifyGuildEmojiObject &m);
|
||||
};
|
||||
|
||||
struct GuildJoinRequestCreateData {
|
||||
GuildApplicationStatus Status;
|
||||
GuildApplicationData Request;
|
||||
Snowflake GuildID;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, GuildJoinRequestCreateData &m);
|
||||
};
|
||||
|
||||
using GuildJoinRequestUpdateData = GuildJoinRequestCreateData;
|
||||
|
||||
struct GuildJoinRequestDeleteData {
|
||||
Snowflake UserID;
|
||||
Snowflake GuildID;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, GuildJoinRequestDeleteData &m);
|
||||
};
|
||||
|
||||
struct VerificationFieldObject {
|
||||
std::string Type;
|
||||
std::string Label;
|
||||
bool Required;
|
||||
std::vector<std::string> Values;
|
||||
std::optional<bool> Response; // present in client to server
|
||||
|
||||
friend void from_json(const nlohmann::json &j, VerificationFieldObject &m);
|
||||
friend void to_json(nlohmann::json &j, const VerificationFieldObject &m);
|
||||
};
|
||||
|
||||
struct VerificationGateInfoObject {
|
||||
std::optional<std::string> Description;
|
||||
std::optional<std::vector<VerificationFieldObject>> VerificationFields;
|
||||
std::optional<std::string> Version;
|
||||
std::optional<bool> Enabled; // present only in client to server in modify gate
|
||||
|
||||
friend void from_json(const nlohmann::json &j, VerificationGateInfoObject &m);
|
||||
friend void to_json(nlohmann::json &j, const VerificationGateInfoObject &m);
|
||||
};
|
||||
|
||||
// not sure what the structure for this really is
|
||||
struct RateLimitedResponse {
|
||||
int Code;
|
||||
bool Global;
|
||||
std::optional<std::string> Message;
|
||||
float RetryAfter;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, RateLimitedResponse &m);
|
||||
};
|
||||
|
||||
struct RelationshipRemoveData {
|
||||
Snowflake ID;
|
||||
RelationshipType Type;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, RelationshipRemoveData &m);
|
||||
};
|
||||
|
||||
struct RelationshipAddData {
|
||||
Snowflake ID;
|
||||
// Nickname; same deal as the other comment somewhere else
|
||||
RelationshipType Type;
|
||||
UserData User;
|
||||
// std::optional<bool> ShouldNotify; // i guess if the client should send a notification. not worth caring about
|
||||
|
||||
friend void from_json(const nlohmann::json &j, RelationshipAddData &m);
|
||||
};
|
||||
|
||||
struct FriendRequestObject {
|
||||
std::string Username;
|
||||
int Discriminator;
|
||||
|
||||
friend void to_json(nlohmann::json &j, const FriendRequestObject &m);
|
||||
};
|
||||
|
||||
struct PutRelationshipObject {
|
||||
std::optional<RelationshipType> Type;
|
||||
|
||||
friend void to_json(nlohmann::json &j, const PutRelationshipObject &m);
|
||||
};
|
||||
|
||||
struct ThreadCreateData {
|
||||
ChannelData Channel;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, ThreadCreateData &m);
|
||||
};
|
||||
|
||||
struct ThreadDeleteData {
|
||||
Snowflake ID;
|
||||
Snowflake GuildID;
|
||||
Snowflake ParentID;
|
||||
ChannelType Type;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, ThreadDeleteData &m);
|
||||
};
|
||||
|
||||
// pretty different from docs
|
||||
struct ThreadListSyncData {
|
||||
std::vector<ChannelData> Threads;
|
||||
Snowflake GuildID;
|
||||
// std::optional<std::vector<???>> MostRecentMessages;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, ThreadListSyncData &m);
|
||||
};
|
||||
|
||||
struct ThreadMembersUpdateData {
|
||||
Snowflake ID;
|
||||
Snowflake GuildID;
|
||||
int MemberCount;
|
||||
std::optional<std::vector<ThreadMemberObject>> AddedMembers;
|
||||
std::optional<std::vector<Snowflake>> RemovedMemberIDs;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, ThreadMembersUpdateData &m);
|
||||
};
|
||||
|
||||
struct ArchivedThreadsResponseData {
|
||||
std::vector<ChannelData> Threads;
|
||||
std::vector<ThreadMemberObject> Members;
|
||||
bool HasMore;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, ArchivedThreadsResponseData &m);
|
||||
};
|
||||
|
||||
struct ThreadMemberUpdateData {
|
||||
ThreadMemberObject Member;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, ThreadMemberUpdateData &m);
|
||||
};
|
||||
|
||||
struct ThreadUpdateData {
|
||||
ChannelData Thread;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, ThreadUpdateData &m);
|
||||
};
|
||||
|
||||
struct ThreadMemberListUpdateData {
|
||||
struct UserEntry {
|
||||
Snowflake UserID;
|
||||
// PresenceData Presence;
|
||||
GuildMember Member;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, UserEntry &m);
|
||||
};
|
||||
|
||||
Snowflake ThreadID;
|
||||
Snowflake GuildID;
|
||||
std::vector<UserEntry> Members;
|
||||
|
||||
friend void from_json(const nlohmann::json &j, ThreadMemberListUpdateData &m);
|
||||
};
|
||||
|
||||
struct ModifyChannelObject {
|
||||
std::optional<bool> Archived;
|
||||
std::optional<bool> Locked;
|
||||
|
||||
friend void to_json(nlohmann::json &j, const ModifyChannelObject &m);
|
||||
};
|
||||
Reference in New Issue
Block a user