summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/discord/discord.cpp27
1 files changed, 18 insertions, 9 deletions
diff --git a/src/discord/discord.cpp b/src/discord/discord.cpp
index 607fce3..b69daea 100644
--- a/src/discord/discord.cpp
+++ b/src/discord/discord.cpp
@@ -2802,17 +2802,26 @@ void DiscordClient::StoreMessageData(Message &msg) {
// no entry.id cannot be a guild even though sometimes it looks like it
void DiscordClient::HandleReadyReadState(const ReadyEventData &data) {
for (const auto &guild : data.Guilds) {
- for (const auto &channel : *guild.Channels)
- if (channel.LastMessageID.has_value())
- m_last_message_id[channel.ID] = *channel.LastMessageID;
- for (const auto &thread : *guild.Threads)
- if (thread.LastMessageID.has_value())
- m_last_message_id[thread.ID] = *thread.LastMessageID;
+ if (guild.Channels.has_value()) {
+ for (const auto &channel : *guild.Channels) {
+ if (channel.LastMessageID.has_value()) {
+ m_last_message_id[channel.ID] = *channel.LastMessageID;
+ }
+ }
+ }
+ if (guild.Threads.has_value()) {
+ for (const auto &thread : *guild.Threads) {
+ if (thread.LastMessageID.has_value()) {
+ m_last_message_id[thread.ID] = *thread.LastMessageID;
+ }
+ }
+ }
}
- for (const auto &channel : data.PrivateChannels)
- if (channel.LastMessageID.has_value())
+ for (const auto &channel : data.PrivateChannels) {
+ if (channel.LastMessageID.has_value()) {
m_last_message_id[channel.ID] = *channel.LastMessageID;
-
+ }
+ }
for (const auto &entry : data.ReadState.Entries) {
const auto it = m_last_message_id.find(entry.ID);
if (it == m_last_message_id.end()) continue;