diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2021-09-13 01:44:43 -0400 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2021-09-13 01:44:43 -0400 |
commit | af85d5c89582176b75d43f3f92cce6aa55d19367 (patch) | |
tree | 44febc0f5dc026572fab9d7a9776bfc202c7b675 /discord/channel.cpp | |
parent | b01234083001e5b1f5383d6cd4e909e6ca7e58cf (diff) | |
parent | 002004cb5f01d22601047433cc868359cf022842 (diff) | |
download | abaddon-portaudio-af85d5c89582176b75d43f3f92cce6aa55d19367.tar.gz abaddon-portaudio-af85d5c89582176b75d43f3f92cce6aa55d19367.zip |
Merge branch 'threads'
Diffstat (limited to 'discord/channel.cpp')
-rw-r--r-- | discord/channel.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/discord/channel.cpp b/discord/channel.cpp index 9d90eb5..60f481b 100644 --- a/discord/channel.cpp +++ b/discord/channel.cpp @@ -1,6 +1,20 @@ #include "../abaddon.hpp" #include "channel.hpp" +void from_json(const nlohmann::json &j, ThreadMetadataData &m) { + JS_D("archived", m.IsArchived); + JS_D("auto_archive_duration", m.AutoArchiveDuration); + JS_D("archive_timestamp", m.ArchiveTimestamp); + JS_O("locked", m.IsLocked); +} + +void from_json(const nlohmann::json &j, ThreadMemberObject &m) { + JS_O("id", m.ThreadID); + JS_O("user_id", m.UserID); + JS_D("join_timestamp", m.JoinTimestamp); + JS_D("flags", m.Flags); +} + void from_json(const nlohmann::json &j, ChannelData &m) { JS_D("id", m.ID); JS_D("type", m.Type); @@ -21,6 +35,8 @@ void from_json(const nlohmann::json &j, ChannelData &m) { JS_O("application_id", m.ApplicationID); JS_ON("parent_id", m.ParentID); JS_ON("last_pin_timestamp", m.LastPinTimestamp); + JS_O("thread_metadata", m.ThreadMetadata); + JS_O("member", m.ThreadMember); } void ChannelData::update_from_json(const nlohmann::json &j) { @@ -47,6 +63,16 @@ bool ChannelData::NSFW() const { return IsNSFW.has_value() && *IsNSFW; } +bool ChannelData::IsThread() const noexcept { + return Type == ChannelType::GUILD_PUBLIC_THREAD || + Type == ChannelType::GUILD_PRIVATE_THREAD || + Type == ChannelType::GUILD_NEWS_THREAD; +} + +bool ChannelData::IsJoinedThread() const { + return Abaddon::Get().GetDiscordClient().IsThreadJoined(ID); +} + std::optional<PermissionOverwrite> ChannelData::GetOverwrite(Snowflake id) const { return Abaddon::Get().GetDiscordClient().GetPermissionOverwrite(ID, id); } |