Add try_member to guild.
This also fix an omission in the fetch_member docs. fetch_member raises NotFound if the given user isn't in the guild.
This commit is contained in:
parent
6bcc717e63
commit
dad5926720
@ -42,6 +42,7 @@ from typing import (
|
|||||||
overload,
|
overload,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
import discord
|
||||||
from . import utils, abc
|
from . import utils, abc
|
||||||
from .role import Role
|
from .role import Role
|
||||||
from .member import Member, VoiceState
|
from .member import Member, VoiceState
|
||||||
@ -1715,6 +1716,8 @@ class Guild(Hashable):
|
|||||||
You do not have access to the guild.
|
You do not have access to the guild.
|
||||||
HTTPException
|
HTTPException
|
||||||
Fetching the member failed.
|
Fetching the member failed.
|
||||||
|
NotFound
|
||||||
|
A member with that ID does not exist.
|
||||||
|
|
||||||
Returns
|
Returns
|
||||||
--------
|
--------
|
||||||
@ -1724,6 +1727,34 @@ class Guild(Hashable):
|
|||||||
data = await self._state.http.get_member(self.id, member_id)
|
data = await self._state.http.get_member(self.id, member_id)
|
||||||
return Member(data=data, state=self._state, guild=self)
|
return Member(data=data, state=self._state, guild=self)
|
||||||
|
|
||||||
|
async def try_member(self, member_id: int, /) -> Optional[Member]:
|
||||||
|
"""|coro|
|
||||||
|
|
||||||
|
Returns a member with the given ID. This uses the cache first, and if not found, it'll request using :meth:`fetch_member`.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
This method might result in an API call.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
-----------
|
||||||
|
member_id: :class:`int`
|
||||||
|
The ID to search for.
|
||||||
|
|
||||||
|
Returns
|
||||||
|
--------
|
||||||
|
Optional[:class:`Member`]
|
||||||
|
The member or ``None`` if not found.
|
||||||
|
"""
|
||||||
|
member = self.get_member(member_id)
|
||||||
|
|
||||||
|
if member:
|
||||||
|
return member
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
return await self.fetch_member(member_id)
|
||||||
|
except discord.NotFound:
|
||||||
|
return None
|
||||||
|
|
||||||
async def fetch_ban(self, user: Snowflake) -> BanEntry:
|
async def fetch_ban(self, user: Snowflake) -> BanEntry:
|
||||||
"""|coro|
|
"""|coro|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user