mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-06-06 03:47:29 +00:00
Add Thread.permissions_for helper function
This commit is contained in:
parent
1152f67efc
commit
746da7d54c
@ -23,14 +23,14 @@ DEALINGS IN THE SOFTWARE.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
from typing import Callable, Dict, Iterable, List, Optional, Sequence, TYPE_CHECKING
|
||||
from typing import Callable, Dict, Iterable, List, Optional, Union, TYPE_CHECKING
|
||||
import time
|
||||
import asyncio
|
||||
|
||||
from .mixins import Hashable
|
||||
from .abc import Messageable
|
||||
from .enums import ChannelType, try_enum
|
||||
from .errors import ClientException, NoMoreItems
|
||||
from .errors import ClientException
|
||||
from .utils import MISSING, parse_time, _get_as_snowflake
|
||||
|
||||
__all__ = (
|
||||
@ -50,6 +50,8 @@ if TYPE_CHECKING:
|
||||
from .member import Member
|
||||
from .message import Message
|
||||
from .abc import Snowflake, SnowflakeTime
|
||||
from .role import Role
|
||||
from .permissions import Permissions
|
||||
from .state import ConnectionState
|
||||
|
||||
|
||||
@ -234,6 +236,38 @@ class Thread(Messageable, Hashable):
|
||||
"""
|
||||
return self._type is ChannelType.news_thread
|
||||
|
||||
def permissions_for(self, obj: Union[Member, Role], /) -> Permissions:
|
||||
"""Handles permission resolution for the :class:`~discord.Member`
|
||||
or :class:`~discord.Role`.
|
||||
|
||||
Since threads do not have their own permissions, they inherit them
|
||||
from the parent channel. This is a convenience method for
|
||||
calling :meth:`~discord.TextChannel.permissions_for` on the
|
||||
parent channel.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
obj: Union[:class:`~discord.Member`, :class:`~discord.Role`]
|
||||
The object to resolve permissions for. This could be either
|
||||
a member or a role. If it's a role then member overwrites
|
||||
are not computed.
|
||||
|
||||
Raises
|
||||
-------
|
||||
ClientException
|
||||
The parent channel was not cached and returned ``None``
|
||||
|
||||
Returns
|
||||
-------
|
||||
:class:`~discord.Permissions`
|
||||
The resolved permissions for the member or role.
|
||||
"""
|
||||
|
||||
parent = self.parent
|
||||
if parent is None:
|
||||
raise ClientException('Parent channel not found')
|
||||
return parent.permissions_for(obj)
|
||||
|
||||
async def delete_messages(self, messages: Iterable[Snowflake]) -> None:
|
||||
"""|coro|
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user