Take into consideration member timeouts in permission calculations

This commit is contained in:
Rapptz
2022-04-01 09:32:54 -04:00
parent 25ad5b675c
commit a5f1c2f592
3 changed files with 22 additions and 2 deletions

View File

@ -649,8 +649,11 @@ class Member(discord.abc.Messageable, _UserTag):
channel permission overwrites. For 100% accurate permission
calculation, please use :meth:`abc.GuildChannel.permissions_for`.
This does take into consideration guild ownership and the
administrator implication.
This does take into consideration guild ownership, the
administrator implication, and whether the member is timed out.
.. versionchanged:: 2.0
Member timeouts are taken into consideration.
"""
if self.guild.owner_id == self.id:
@ -663,6 +666,9 @@ class Member(discord.abc.Messageable, _UserTag):
if base.administrator:
return Permissions.all()
if self.is_timed_out():
base.value &= Permissions._timeout_mask()
return base
@property