summaryrefslogtreecommitdiff
path: root/discord/discord.cpp
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2021-04-13 04:36:27 -0400
committerouwou <26526779+ouwou@users.noreply.github.com>2021-04-13 04:36:27 -0400
commit422eed92fc87799e2b5fc0b4fdacf7f2733ff3b3 (patch)
tree81ca317d32661a592441c371b5525f690c47bde0 /discord/discord.cpp
parent140782c395175345363d6de9cbaf67a024ddf7d8 (diff)
downloadabaddon-portaudio-422eed92fc87799e2b5fc0b4fdacf7f2733ff3b3.tar.gz
abaddon-portaudio-422eed92fc87799e2b5fc0b4fdacf7f2733ff3b3.zip
handle rate limited channels
Diffstat (limited to 'discord/discord.cpp')
-rw-r--r--discord/discord.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/discord/discord.cpp b/discord/discord.cpp
index baa0b28..00597f9 100644
--- a/discord/discord.cpp
+++ b/discord/discord.cpp
@@ -261,6 +261,14 @@ bool DiscordClient::HasGuildPermission(Snowflake user_id, Snowflake guild_id, Pe
return (base & perm) == perm;
}
+bool DiscordClient::HasAnyChannelPermission(Snowflake user_id, Snowflake channel_id, Permission perm) const {
+ const auto channel = m_store.GetChannel(channel_id);
+ if (!channel.has_value()) return false;
+ const auto base = ComputePermissions(user_id, *channel->GuildID);
+ const auto overwrites = ComputeOverwrites(base, user_id, channel_id);
+ return (overwrites & perm) != Permission::NONE;
+}
+
bool DiscordClient::HasChannelPermission(Snowflake user_id, Snowflake channel_id, Permission perm) const {
const auto channel = m_store.GetChannel(channel_id);
if (!channel.has_value()) return false;