Repository: Rapptz/discord.py
File: discord/permissions.py (Python)

Code before:

    @classmethod
    def _timeout_mask(cls) -> int:
        p = cls.all()
        p.view_channel = False
        p.read_message_history = False
        return ~p.value

    @classmethod
    def _dm_permissions(cls) -> Self:
        base = cls.text()
        base.read_messages = True
        base.send_tts_messages = False
        base.manage_messages = False
        base.create_private_threads = False
        base.create_public_threads = False
        base.manage_threads = False
        base.send_messages_in_threads = False
        return base

    @classmethod
    def _user_installed_permissions(cls, *, in_guild: bool) -> Self:
        base = cls.none()
        base.send_messages = True
        base.attach_files = True
        base.embed_links = True
        base.send_voice_messages = True
        if in_guild:
            # Logically this is False but if not set to True,
            # permissions just become 0.
            base.read_messages = True
            base.send_tts_messages = True
            base.send_messages_in_threads = True
        return base

    @classmethod
    def all_channel(cls) -> Self:
        """A :class:`Permissions` with all channel-specific permissions set to
        ``True`` and the guild-specific ones set to ``False``. The guild-specific
        permissions are currently:

        - :attr:`manage_expressions`
        - :attr:`view_audit_log`
        - :attr:`view_guild_insights`
        - :attr:`manage_guild`
        - :attr:`change_nickname`
        - :attr:`manage_nicknames`
        - :attr:`kick_members`
        - :attr:`ban_members`
        - :attr:`administrator`
        - :attr:`create_expressions`

Review comment (suggestion):
```suggestion
        base.embed_links = True
        base.external_emojis = True
```

Code after:

    @classmethod
    def _timeout_mask(cls) -> int:
        p = cls.all()
        p.view_channel = False
        p.read_message_history = False
        return ~p.value

    @classmethod
    def _dm_permissions(cls) -> Self:
        base = cls.text()
        base.read_messages = True
        base.send_tts_messages = False
        base.manage_messages = False
        base.create_private_threads = False
        base.create_public_threads = False
        base.manage_threads = False
        base.send_messages_in_threads = False
        return base

    @classmethod
    def _user_installed_permissions(cls, *, in_guild: bool) -> Self:
        base = cls.none()
        base.send_messages = True
        base.attach_files = True
        base.embed_links = True
        base.external_emojis = True
        base.send_voice_messages = True
        if in_guild:
            # Logically this is False but if not set to True,
            # permissions just become 0.
            base.read_messages = True
            base.send_tts_messages = True
            base.send_messages_in_threads = True
        return base

    @classmethod
    def all_channel(cls) -> Self:
        """A :class:`Permissions` with all channel-specific permissions set to
        ``True`` and the guild-specific ones set to ``False``. The guild-specific
        permissions are currently:

        - :attr:`manage_expressions`
        - :attr:`view_audit_log`
        - :attr:`view_guild_insights`
        - :attr:`manage_guild`
        - :attr:`change_nickname`
        - :attr:`manage_nicknames`
        - :attr:`kick_members`
        - :attr:`ban_members`
        - :attr:`administrator`