Type up **kwargs of various methods
This commit is contained in:
@ -27,11 +27,11 @@ import inspect
|
||||
import itertools
|
||||
import sys
|
||||
from operator import attrgetter
|
||||
from typing import List, Literal, Optional, TYPE_CHECKING, Union, overload
|
||||
|
||||
import discord.abc
|
||||
|
||||
from . import utils
|
||||
from .errors import ClientException
|
||||
from .user import BaseUser, User
|
||||
from .activity import create_activity
|
||||
from .permissions import Permissions
|
||||
@ -44,6 +44,12 @@ __all__ = (
|
||||
'Member',
|
||||
)
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from .channel import VoiceChannel, StageChannel
|
||||
from .abc import Snowflake
|
||||
|
||||
VocalGuildChannel = Union[VoiceChannel, StageChannel]
|
||||
|
||||
class VoiceState:
|
||||
"""Represents a Discord user's voice state.
|
||||
|
||||
@ -517,6 +523,19 @@ class Member(discord.abc.Messageable, _BaseUser):
|
||||
"""Optional[:class:`VoiceState`]: Returns the member's current voice state."""
|
||||
return self.guild._voice_state_for(self._user.id)
|
||||
|
||||
@overload
|
||||
async def ban(
|
||||
self,
|
||||
*,
|
||||
reason: Optional[str] = ...,
|
||||
delete_message_days: Literal[1, 2, 3, 4, 5, 6, 7] = ...,
|
||||
) -> None:
|
||||
...
|
||||
|
||||
@overload
|
||||
async def ban(self) -> None:
|
||||
...
|
||||
|
||||
async def ban(self, **kwargs):
|
||||
"""|coro|
|
||||
|
||||
@ -524,20 +543,38 @@ class Member(discord.abc.Messageable, _BaseUser):
|
||||
"""
|
||||
await self.guild.ban(self, **kwargs)
|
||||
|
||||
async def unban(self, *, reason=None):
|
||||
async def unban(self, *, reason: Optional[str] = None) -> None:
|
||||
"""|coro|
|
||||
|
||||
Unbans this member. Equivalent to :meth:`Guild.unban`.
|
||||
"""
|
||||
await self.guild.unban(self, reason=reason)
|
||||
|
||||
async def kick(self, *, reason=None):
|
||||
async def kick(self, *, reason: Optional[str] = None) -> None:
|
||||
"""|coro|
|
||||
|
||||
Kicks this member. Equivalent to :meth:`Guild.kick`.
|
||||
"""
|
||||
await self.guild.kick(self, reason=reason)
|
||||
|
||||
@overload
|
||||
async def edit(
|
||||
self,
|
||||
*,
|
||||
reason: Optional[str] = ...,
|
||||
nick: Optional[str] = None,
|
||||
mute: bool = ...,
|
||||
deafen: bool = ...,
|
||||
suppress: bool = ...,
|
||||
roles: Optional[List[discord.abc.Snowflake]] = ...,
|
||||
voice_channel: Optional[VocalGuildChannel] = ...,
|
||||
) -> None:
|
||||
...
|
||||
|
||||
@overload
|
||||
async def edit(self) -> None:
|
||||
...
|
||||
|
||||
async def edit(self, *, reason=None, **fields):
|
||||
"""|coro|
|
||||
|
||||
@ -685,7 +722,7 @@ class Member(discord.abc.Messageable, _BaseUser):
|
||||
else:
|
||||
await self._state.http.edit_my_voice_state(self.guild.id, payload)
|
||||
|
||||
async def move_to(self, channel, *, reason=None):
|
||||
async def move_to(self, channel: VocalGuildChannel, *, reason: Optional[str] = None) -> None:
|
||||
"""|coro|
|
||||
|
||||
Moves a member to a new voice channel (they must be connected first).
|
||||
@ -708,7 +745,7 @@ class Member(discord.abc.Messageable, _BaseUser):
|
||||
"""
|
||||
await self.edit(voice_channel=channel, reason=reason)
|
||||
|
||||
async def add_roles(self, *roles, reason=None, atomic=True):
|
||||
async def add_roles(self, *roles: Snowflake, reason: Optional[str] = None, atomic: bool = True):
|
||||
r"""|coro|
|
||||
|
||||
Gives the member a number of :class:`Role`\s.
|
||||
@ -747,7 +784,7 @@ class Member(discord.abc.Messageable, _BaseUser):
|
||||
for role in roles:
|
||||
await req(guild_id, user_id, role.id, reason=reason)
|
||||
|
||||
async def remove_roles(self, *roles, reason=None, atomic=True):
|
||||
async def remove_roles(self, *roles: Snowflake, reason: Optional[str] = None, atomic: bool = True) -> None:
|
||||
r"""|coro|
|
||||
|
||||
Removes :class:`Role`\s from this member.
|
||||
|
Reference in New Issue
Block a user