aboutsummaryrefslogtreecommitdiff
path: root/discord/member.py
diff options
context:
space:
mode:
authorNadir Chowdhury <[email protected]>2021-05-11 01:24:48 +0100
committerGitHub <[email protected]>2021-05-10 20:24:48 -0400
commit757cfad38f340f31f1b18bc198b3aa83e9cbe6dc (patch)
tree9d8f4c643e21aa4310c75090d4a666863247014e /discord/member.py
parent [tasks] Add support for explicit time parameter (diff)
downloaddiscord.py-757cfad38f340f31f1b18bc198b3aa83e9cbe6dc.tar.xz
discord.py-757cfad38f340f31f1b18bc198b3aa83e9cbe6dc.zip
Type up **kwargs of various methods
Diffstat (limited to 'discord/member.py')
-rw-r--r--discord/member.py49
1 files changed, 43 insertions, 6 deletions
diff --git a/discord/member.py b/discord/member.py
index 4eeebcba..008de365 100644
--- a/discord/member.py
+++ b/discord/member.py
@@ -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.