mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-11-06 11:18:54 -05:00
Add bot.get_or_fetch_user/member methods (#4403)
* add 2 get_or_fetch methods * style * local tox didnt scream and blow up * ewh extra space is ugly * Jack meant this * I think jack wanted this. * Nope Jack desired this * aaaaaaaaaaaaa Jack just say you are reviewing it come on * add get_or_fetch_member * Update redbot/core/bot.py Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com> * Wubba Lubba Dub Dub * woa!! this one was really HARD! (sweats) * fiiiiire Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
This commit is contained in:
parent
d421c1c240
commit
a4a344d8eb
@ -667,6 +667,67 @@ class RedBase(
|
||||
|
||||
return self._color
|
||||
|
||||
async def get_or_fetch_user(self, user_id: int) -> discord.User:
|
||||
"""
|
||||
Retrieves a `discord.User` based on their ID.
|
||||
You do not have to share any guilds
|
||||
with the user to get this information, however many operations
|
||||
do require that you do.
|
||||
|
||||
.. warning::
|
||||
|
||||
This method may make an API call if the user is not found in the bot cache. For general usage, consider ``bot.get_user`` instead.
|
||||
|
||||
Parameters
|
||||
-----------
|
||||
user_id: int
|
||||
The ID of the user that should be retrieved.
|
||||
|
||||
Raises
|
||||
-------
|
||||
Errors
|
||||
Please refer to `discord.Client.fetch_user`.
|
||||
|
||||
Returns
|
||||
--------
|
||||
discord.User
|
||||
The user you requested.
|
||||
"""
|
||||
|
||||
if (user := self.get_user(user_id)) is not None:
|
||||
return user
|
||||
return await self.fetch_user(user_id)
|
||||
|
||||
async def get_or_fetch_member(self, guild: discord.Guild, member_id: int) -> discord.Member:
|
||||
"""
|
||||
Retrieves a `discord.Member` from a guild and a member ID.
|
||||
|
||||
.. warning::
|
||||
|
||||
This method may make an API call if the user is not found in the bot cache. For general usage, consider ``discord.Guild.get_member`` instead.
|
||||
|
||||
Parameters
|
||||
-----------
|
||||
guild: discord.Guild
|
||||
The guild which the member should be retrieved from.
|
||||
member_id: int
|
||||
The ID of the member that should be retrieved.
|
||||
|
||||
Raises
|
||||
-------
|
||||
Errors
|
||||
Please refer to `discord.Guild.fetch_member`.
|
||||
|
||||
Returns
|
||||
--------
|
||||
discord.Member
|
||||
The user you requested.
|
||||
"""
|
||||
|
||||
if (member := guild.get_member(member_id)) is not None:
|
||||
return member
|
||||
return await guild.fetch_member(member_id)
|
||||
|
||||
get_embed_colour = get_embed_color
|
||||
|
||||
# start config migrations
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user