|
|
|
@ -95,6 +95,7 @@ if TYPE_CHECKING: |
|
|
|
create_polls: BoolOrNoneT |
|
|
|
use_external_apps: BoolOrNoneT |
|
|
|
pin_messages: BoolOrNoneT |
|
|
|
bypass_slowmode: BoolOrNoneT |
|
|
|
|
|
|
|
class _PermissionsKwargs(_BasePermissionsKwargs[bool]): ... |
|
|
|
|
|
|
|
@ -253,7 +254,7 @@ class Permissions(BaseFlags): |
|
|
|
permissions set to ``True``. |
|
|
|
""" |
|
|
|
# Some of these are 0 because we don't want to set unnecessary bits |
|
|
|
return cls(0b0000_0000_0000_1111_0111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111) |
|
|
|
return cls(0b0000_0000_0001_1111_0111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111) |
|
|
|
|
|
|
|
@classmethod |
|
|
|
def _timeout_mask(cls) -> int: |
|
|
|
@ -273,6 +274,7 @@ class Permissions(BaseFlags): |
|
|
|
base.create_public_threads = False |
|
|
|
base.manage_threads = False |
|
|
|
base.send_messages_in_threads = False |
|
|
|
base.bypass_slowmode = False |
|
|
|
return base |
|
|
|
|
|
|
|
@classmethod |
|
|
|
@ -326,8 +328,11 @@ class Permissions(BaseFlags): |
|
|
|
.. versionchanged:: 2.4 |
|
|
|
Added :attr:`send_polls`, :attr:`send_voice_messages`, attr:`use_external_sounds`, |
|
|
|
:attr:`use_embedded_activities`, and :attr:`use_external_apps` permissions. |
|
|
|
|
|
|
|
.. versionchanged:: 2.7 |
|
|
|
Added :attr:`pin_messages` and :attr:`bypass_slowmode` permissions. |
|
|
|
""" |
|
|
|
return cls(0b0000_0000_0000_1110_0110_0100_1111_1101_1011_0011_1111_0111_1111_1111_0101_0001) |
|
|
|
return cls(0b0000_0000_0001_1110_0110_0100_1111_1101_1011_0011_1111_0111_1111_1111_0101_0001) |
|
|
|
|
|
|
|
@classmethod |
|
|
|
def general(cls) -> Self: |
|
|
|
@ -377,9 +382,9 @@ class Permissions(BaseFlags): |
|
|
|
Added :attr:`send_polls` and :attr:`use_external_apps` permissions. |
|
|
|
|
|
|
|
.. versionchanged:: 2.7 |
|
|
|
Added :attr:`pin_messages` permission. |
|
|
|
Added :attr:`pin_messages` and :attr:`bypass_slowmode` permissions. |
|
|
|
""" |
|
|
|
return cls(0b0000_0000_0000_1110_0100_0000_0111_1100_1000_0000_0000_0111_1111_1000_0100_0000) |
|
|
|
return cls(0b0000_0000_0001_1110_0100_0000_0111_1100_1000_0000_0000_0111_1111_1000_0100_0000) |
|
|
|
|
|
|
|
@classmethod |
|
|
|
def voice(cls) -> Self: |
|
|
|
@ -577,7 +582,7 @@ class Permissions(BaseFlags): |
|
|
|
|
|
|
|
@flag_value |
|
|
|
def manage_messages(self) -> int: |
|
|
|
""":class:`bool`: Returns ``True`` if a user can delete messages or bypass slowmode in a text channel. |
|
|
|
""":class:`bool`: Returns ``True`` if a user can delete messages in a text channel. |
|
|
|
|
|
|
|
.. note:: |
|
|
|
|
|
|
|
@ -884,6 +889,14 @@ class Permissions(BaseFlags): |
|
|
|
""" |
|
|
|
return 1 << 51 |
|
|
|
|
|
|
|
@flag_value |
|
|
|
def bypass_slowmode(self) -> int: |
|
|
|
""":class:`bool`: Returns ``True`` if a user can bypass slowmode. |
|
|
|
|
|
|
|
.. versionadded:: 2.7 |
|
|
|
""" |
|
|
|
return 1 << 52 |
|
|
|
|
|
|
|
|
|
|
|
def _augment_from_permissions(cls): |
|
|
|
cls.VALID_NAMES = set(Permissions.VALID_FLAGS) |
|
|
|
@ -1009,6 +1022,7 @@ class PermissionOverwrite: |
|
|
|
create_polls: Optional[bool] |
|
|
|
use_external_apps: Optional[bool] |
|
|
|
pin_messages: Optional[bool] |
|
|
|
bypass_slowmode: Optional[bool] |
|
|
|
|
|
|
|
def __init__(self, **kwargs: Unpack[_PermissionOverwriteKwargs]) -> None: |
|
|
|
self._values: Dict[str, Optional[bool]] = {} |
|
|
|
|