Skip to content

Commit

Permalink
Add new use_soundboard and manage_guild_expressions permissions
Browse files Browse the repository at this point in the history
  • Loading branch information
Puncher1 committed Mar 29, 2023
1 parent ebc1bc3 commit e3e0d93
Showing 1 changed file with 29 additions and 8 deletions.
37 changes: 29 additions & 8 deletions discord/permissions.py
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ def all(cls) -> Self:
"""A factory method that creates a :class:`Permissions` with all
permissions set to ``True``.
"""
return cls(0b11111111111111111111111111111111111111111)
return cls(0b1111111111111111111111111111111111111111111)

@classmethod
def _timeout_mask(cls) -> int:
Expand All @@ -204,7 +204,7 @@ def all_channel(cls) -> Self:
``True`` and the guild-specific ones set to ``False``. The guild-specific
permissions are currently:
- :attr:`manage_emojis`
- :attr:`manage_guild_expressions`
- :attr:`view_audit_log`
- :attr:`view_guild_insights`
- :attr:`manage_guild`
Expand All @@ -221,8 +221,11 @@ def all_channel(cls) -> Self:
Added :attr:`create_public_threads`, :attr:`create_private_threads`, :attr:`manage_threads`,
:attr:`use_external_stickers`, :attr:`send_messages_in_threads` and
:attr:`request_to_speak` permissions.
.. versionchanged:: 2.3
Added :attr:`use_soundboard`
"""
return cls(0b111110110110011111101111111111101010001)
return cls(0b1000111110110110011111101111111111101010001)

@classmethod
def general(cls) -> Self:
Expand Down Expand Up @@ -265,7 +268,7 @@ def text(cls) -> Self:
def voice(cls) -> Self:
"""A factory method that creates a :class:`Permissions` with all
"Voice" permissions from the official Discord UI set to ``True``."""
return cls(0b1000000000000011111100000000001100000000)
return cls(0b1001000000000000011111100000000001100000000)

@classmethod
def stage(cls) -> Self:
Expand Down Expand Up @@ -305,7 +308,7 @@ def elevated(cls) -> Self:
- :attr:`manage_messages`
- :attr:`manage_roles`
- :attr:`manage_webhooks`
- :attr:`manage_emojis_and_stickers`
- :attr:`manage_guild_expressions`
- :attr:`manage_threads`
- :attr:`moderate_members`
Expand Down Expand Up @@ -544,13 +547,21 @@ def manage_webhooks(self) -> int:
return 1 << 29

@flag_value
def manage_guild_expressions(self) -> int:
""":class:`bool`: Returns ``True`` if a user can create, edit, or delete emojis, stickers, and soundboard sounds.
.. versionadded:: 2.3
"""
return 1 << 30

@make_permission_alias('manage_guild_expressions')
def manage_emojis(self) -> int:
""":class:`bool`: Returns ``True`` if a user can create, edit, or delete emojis."""
""":class:`bool`: An alias for :attr:`manage_guild_expressions`."""
return 1 << 30

@make_permission_alias('manage_emojis')
@make_permission_alias('manage_guild_expressions')
def manage_emojis_and_stickers(self) -> int:
""":class:`bool`: An alias for :attr:`manage_emojis`.
""":class:`bool`: An alias for :attr:`manage_guild_expressions`.
.. versionadded:: 2.0
"""
Expand Down Expand Up @@ -644,6 +655,14 @@ def moderate_members(self) -> int:
"""
return 1 << 40

@flag_value
def use_soundboard(self) -> int:
""":class:`bool`: Returns ``True`` if a user can use the soundboard.
.. versionadded:: 2.3
"""
return 1 << 42


def _augment_from_permissions(cls):
cls.VALID_NAMES = set(Permissions.VALID_FLAGS)
Expand Down Expand Up @@ -745,6 +764,7 @@ class PermissionOverwrite:
manage_roles: Optional[bool]
manage_permissions: Optional[bool]
manage_webhooks: Optional[bool]
manage_guild_expressions: Optional[bool]
manage_emojis: Optional[bool]
manage_emojis_and_stickers: Optional[bool]
use_application_commands: Optional[bool]
Expand All @@ -758,6 +778,7 @@ class PermissionOverwrite:
use_external_stickers: Optional[bool]
use_embedded_activities: Optional[bool]
moderate_members: Optional[bool]
use_soundboard: Optional[bool]

def __init__(self, **kwargs: Optional[bool]):
self._values: Dict[str, Optional[bool]] = {}
Expand Down

0 comments on commit e3e0d93

Please sign in to comment.