Client Objects¶
Bots¶
- activity
- allowed_mentions
- app_emojis
- application_flags
- application_id
- auto_sync_commands
- cached_messages
- cogs
- debug_guilds
- default_command_contexts
- default_command_integration_types
- description
- emojis
- extensions
- get_command
- guild_emojis
- guilds
- intents
- latency
- owner_id
- owner_ids
- persistent_views
- polls
- private_channels
- sounds
- status
- stickers
- store_url
- user
- users
- voice_clients
- defadd_application_command
- defadd_check
- defadd_cog
- defadd_listener
- defadd_view
- @after_invoke
- @application_command
- asyncapplication_info
- asyncbefore_identify_hook
- @before_invoke
- asyncchange_presence
- @check
- @check_once
- defclear
- asyncclose
- defcommand
- asyncconnect
- asynccreate_dm
- asynccreate_emoji
- defcreate_group
- asyncdelete_emoji
- asyncdelete_invite
- defentitlements
- @event
- asyncfetch_application
- asyncfetch_channel
- asyncfetch_default_sounds
- asyncfetch_emoji
- asyncfetch_emojis
- asyncfetch_guild
- deffetch_guilds
- asyncfetch_invite
- asyncfetch_premium_sticker_packs
- asyncfetch_role_connection_metadata_records
- asyncfetch_skus
- asyncfetch_stage_instance
- asyncfetch_sticker
- asyncfetch_template
- asyncfetch_user
- asyncfetch_webhook
- asyncfetch_widget
- defget_all_channels
- defget_all_members
- defget_application_command
- asyncget_application_context
- asyncget_autocomplete_context
- defget_channel
- defget_cog
- asyncget_desynced_commands
- defget_emoji
- defget_guild
- defget_message
- asyncget_or_fetch
- asyncget_or_fetch_user
- defget_partial_messageable
- defget_poll
- defget_sound
- defget_stage_instance
- defget_sticker
- defget_user
- @group
- asyncinvoke_application_command
- defis_closed
- asyncis_owner
- defis_ready
- defis_ws_ratelimited
- @listen
- defload_extension
- defload_extensions
- asynclogin
- @message_command
- asyncon_application_command_error
- asyncon_error
- asyncon_modal_error
- asyncon_view_error
- asyncprocess_application_commands
- asyncregister_command
- asyncregister_commands
- defreload_extension
- defremove_application_command
- defremove_check
- defremove_cog
- defremove_listener
- defrun
- @slash_command
- @slash_group
- asyncstart
- asyncsync_commands
- defunload_extension
- asyncupdate_role_connection_metadata_records
- @user_command
- asyncwait_for
- asyncwait_until_ready
- defwalk_application_commands
- class discord.Bot(description=None, *args, **options)[исходный код]¶
Represents a discord bot.
This class is a subclass of
discord.Clientand as a result anything that you can do with adiscord.Clientyou can do with this bot.This class also subclasses
ApplicationCommandMixinto provide the functionality to manage commands.Добавлено в версии 2.0.
- owner_id¶
The user ID that owns the bot. If this is not set and is then queried via
is_owner()then it is fetched automatically usingapplication_info(), returning the application owner.- Type:
Optional[
int]
- owner_ids¶
The user IDs that owns the bot. This is similar to
owner_id. If this is not set and the application is team based, then it is fetched automatically usingapplication_info(), returning all non read-only team members. For performance reasons it is recommended to use asetfor the collection. You cannot set bothowner_idandowner_ids.Добавлено в версии 1.3.
- Type:
Optional[Collection[
int]]
- debug_guilds¶
Guild IDs of guilds to use for testing commands. The bot will not create any global commands if debug guild IDs are passed.
Добавлено в версии 2.0.
- Type:
Optional[List[
int]]
- auto_sync_commands¶
Whether to automatically sync slash commands. This will call
sync_commands()indiscord.on_connect(), and inprocess_application_commandsif the command is not found. Defaults toTrue.Добавлено в версии 2.0.
- Type:
- default_command_contexts¶
The default context types that the bot will use for commands. Defaults to a set containing
InteractionContextType.guild,InteractionContextType.bot_dm, andInteractionContextType.private_channel.Добавлено в версии 2.6.
- Type:
Collection[
InteractionContextType]
- default_command_integration_types¶
The default integration types that the bot will use for commands. Defaults to a set containing
IntegrationType.guild_install.Добавлено в версии 2.6.
- Type:
Collection[
IntegrationType]]
- @command(**kwargs)¶
An alias for
application_command().Примечание
This decorator is overridden by
discord.ext.commands.Bot.Добавлено в версии 2.0.
- Результат:
A decorator that converts the provided function into an
ApplicationCommand, adds it to the bot, and returns it.- Тип результата:
Callable[…,
ApplicationCommand]
- @event(coro)¶
A decorator that registers an event to listen to.
You can find more info about the events on the documentation below.
The events must be a coroutine, if not,
TypeErroris raised.Примечание
This replaces any default handlers. Developers are encouraged to use
listen()for adding additional handlers instead ofevent()unless default method replacement is intended.- Исключение:
TypeError – The coroutine passed is not actually a coroutine.
Пример
@client.event async def on_ready(): print('Ready!')
- @message_command(*, checks=..., cog=..., contexts=..., cooldown=..., default_member_permissions=..., guild_ids=..., guild_only=..., integration_types=..., name=..., name_localizations=..., nsfw=..., **kwargs)¶
A shortcut decorator for adding a message command to the bot. This is equivalent to using
application_command(), providing theMessageCommandclass.Добавлено в версии 2.0.
- Результат:
A decorator that converts the provided function into a
MessageCommand, adds it to the bot, and returns it.- Тип результата:
- Параметры:
checks (
list[Callable[[ApplicationContext],bool]] |None)default_member_permissions (
Permissions|None)kwargs (
Never)
- @slash_command(*, checks=..., cog=..., contexts=..., cooldown=..., default_member_permissions=..., description=..., description_localizations=..., guild_ids=..., guild_only=..., integration_types=..., name=..., name_localizations=..., nsfw=..., options=..., parent=..., **kwargs)¶
A shortcut decorator for adding a slash command to the bot. This is equivalent to using
application_command(), providing theSlashCommandclass.Добавлено в версии 2.0.
- Результат:
A decorator that converts the provided function into a
SlashCommand, adds it to the bot, and returns it.- Тип результата:
- Параметры:
checks (
list[Callable[[ApplicationContext],bool]] |None)default_member_permissions (
Permissions|None)parent (
SlashCommandGroup|None)kwargs (
Never)
- @user_command(*, checks=..., cog=..., contexts=..., cooldown=..., default_member_permissions=..., guild_ids=..., guild_only=..., integration_types=..., name=..., name_localizations=..., nsfw=..., **kwargs)¶
A shortcut decorator for adding a user command to the bot. This is equivalent to using
application_command(), providing theUserCommandclass.Добавлено в версии 2.0.
- Результат:
A decorator that converts the provided function into a
UserCommand, adds it to the bot, and returns it.- Тип результата:
- Параметры:
checks (
list[Callable[[ApplicationContext],bool]] |None)default_member_permissions (
Permissions|None)kwargs (
Never)
- @listen(name=..., once=False)¶
A decorator that registers another function as an external event listener. Basically this allows you to listen to multiple events from different places e.g. such as
on_ready()The functions being listened to must be a coroutine.
- Исключение:
TypeError – The function being listened to is not a coroutine.
ValueError – The
name(event name) does not start withon_.
Пример
@client.listen() async def on_message(message): print('one') # in some other file... @client.listen('on_message') async def my_message(message): print('two') # listen to the first event only @client.listen('on_ready', once=True) async def on_ready(): print('ready!')
Would print one and two in an unspecified order.
- property activity: Activity | Game | CustomActivity | Streaming | Spotify | None¶
The activity being used upon logging in.
- Тип результата:
Optional[
BaseActivity]
- add_application_command(command)¶
Adds an
ApplicationCommandinto the internal list of commands.This is usually not called, instead the
command()or other shortcut decorators are used instead.Добавлено в версии 2.0.
- Параметры:
command (
ApplicationCommand) – The command to add.- Тип результата:
- add_check(func, *, call_once=False)¶
Adds a global check to the bot. This is the non-decorator interface to
check()andcheck_once().- Параметры:
func – The function that was used as a global check.
call_once (
bool) – If the function should only be called once perBot.invoke()call.
- Тип результата:
- add_cog(cog, *, override=False)¶
Adds a «cog» to the bot.
A cog is a class that has its own event listeners and commands.
Изменено в версии 2.0:
ClientExceptionis raised when a cog with the same name is already loaded.- Параметры:
- Исключение:
ApplicationCommandError – An error happened during loading.
ClientException – A cog with the same name is already loaded.
- Тип результата:
- add_listener(func, name=...)¶
The non decorator alternative to
listen().- Параметры:
- Исключение:
TypeError – The
funcparameter is not a coroutine function.ValueError – The
name(event name) does not start withon_.
- Тип результата:
Пример
async def on_ready(): pass async def my_message(message): pass client.add_listener(on_ready) client.add_listener(my_message, 'on_message')
- add_view(view, *, message_id=None)¶
Registers a
BaseViewfor persistent listening.This method should be used for when a view is comprised of components that last longer than the lifecycle of the program.
Добавлено в версии 2.0.
- Параметры:
- Исключение:
TypeError – A view was not passed.
ValueError – The view is not persistent. A persistent view has no timeout and all their components have an explicitly provided
custom_id.
- Тип результата:
- after_invoke(coro)¶
A decorator that registers a coroutine as a post-invoke hook. A post-invoke hook is called directly after the command is called. This makes it a useful function to clean-up database connections or any type of clean up required. This post-invoke hook takes a sole parameter, a
Context.Примечание
Similar to
before_invoke(), this is not called unless checks and argument parsing procedures succeed. This hook is, however, always called regardless of the internal command callback raising an error (i.e.CommandInvokeError). This makes it ideal for clean-up scenarios.
- property allowed_mentions: AllowedMentions | None¶
The allowed mention configuration.
Добавлено в версии 1.4.
- property app_emojis: list[AppEmoji]¶
The
AppEmojithat the connected client has.Примечание
This is only available if cache_app_emojis is
True.
- application_command(*, cls=<class 'discord.commands.core.SlashCommand'>, checks=..., cog=..., contexts=..., cooldown=..., default_member_permissions=..., description=..., description_localizations=..., guild_ids=..., guild_only=..., integration_types=..., name=..., name_localizations=..., nsfw=..., options=..., parent=..., **kwargs)¶
A shortcut decorator that converts the provided function into an application command via
command()and adds it to the internal command list viaadd_application_command().Добавлено в версии 2.0.
- Параметры:
cls (
type[TypeVar(C, bound=MessageCommand|SlashCommand|UserCommand)]) – The factory class that will be used to create the command. By default, this isSlashCommand. Should a custom class be provided, it must be a subclass of eitherSlashCommand,MessageCommandorUserCommand.checks (
list[Callable[[ApplicationContext],bool]] |None)default_member_permissions (
Permissions|None)parent (
SlashCommandGroup|None)kwargs (
Any)
- Результат:
A decorator that converts the provided function into an
ApplicationCommand, adds it to the bot, and returns it.- Тип результата:
Callable[...,TypeVar(C, bound=MessageCommand|SlashCommand|UserCommand)]
- property application_flags: ApplicationFlags¶
The client’s application flags.
Добавлено в версии 2.0.
- property application_id: int | None¶
The client’s application ID.
If this is not passed via
__init__then this is retrieved through the gateway when an event contains the data. Usually afteron_connect()is called.Добавлено в версии 2.0.
- await application_info()¶
This function is a coroutine.
Retrieves the bot’s application information.
- Результат:
The bot’s application information.
- Тип результата:
- Исключение:
HTTPException – Retrieving the information failed somehow.
- await before_identify_hook(shard_id, *, initial=False)¶
This function is a coroutine.
A hook that is called before IDENTIFYing a session. This is useful if you wish to have more control over the synchronization of multiple IDENTIFYing clients.
The default implementation sleeps for 5 seconds.
Добавлено в версии 1.4.
- before_invoke(coro)¶
A decorator that registers a coroutine as a pre-invoke hook. A pre-invoke hook is called directly before the command is called. This makes it a useful function to set up database connections or any type of set up required. This pre-invoke hook takes a sole parameter, a
Context.Примечание
The
before_invoke()andafter_invoke()hooks are only called if all checks and argument parsing procedures pass without error. If any check or argument parsing procedures fail then the hooks are not called.
- property cached_messages: Sequence[Message]¶
Read-only list of messages the connected client has cached.
Добавлено в версии 1.1.
- await change_presence(*, activity=None, status=None)¶
This function is a coroutine.
Changes the client’s presence.
- Параметры:
activity (
BaseActivity|None) – The activity being done.Noneif no currently active activity is done.status (
Status|None) – Indicates what status to change to. IfNone, thenStatus.onlineis used.
- Исключение:
InvalidArgument – If the
activityparameter is not the proper type.
Пример
game = discord.Game("with the API") await client.change_presence(status=discord.Status.idle, activity=game)
Изменено в версии 2.0: Removed the
afkkeyword-only parameter.
- check(func)¶
A decorator that adds a global check to the bot. A global check is similar to a
check()that is applied on a per-command basis except it is run before any command checks have been verified and applies to every command the bot has.Примечание
This function can either be a regular function or a coroutine. Similar to a command
check(), this takes a single parameter of typeContextand can only raise exceptions inherited fromApplicationCommandError.Пример
@bot.check def check_commands(ctx): return ctx.command.qualified_name in allowed_commands
- check_once(func)¶
A decorator that adds a «call once» global check to the bot. Unlike regular global checks, this one is called only once per
Bot.invoke()call. Regular global checks are called whenever a command is called orCommand.can_run()is called. This type of check bypasses that and ensures that it’s called only once, even inside the default help command.Примечание
When using this function the
Contextsent to a group subcommand may only parse the parent command and not the subcommands due to it being invoked once perBot.invoke()call.Примечание
This function can either be a regular function or a coroutine. Similar to a command
check(), this takes a single parameter of typeContextand can only raise exceptions inherited fromApplicationCommandError.Пример
@bot.check_once def whitelist(ctx): return ctx.message.author.id in my_whitelist
- clear()¶
Clears the internal state of the bot.
After this, the bot can be considered «re-opened», i.e.
is_closed()andis_ready()both returnFalsealong with the bot’s internal cache cleared.- Тип результата:
- await connect(*, reconnect=True)¶
This function is a coroutine.
Creates a WebSocket connection and lets the WebSocket listen to messages from Discord. This is a loop that runs the entire event system and miscellaneous aspects of the library. Control is not resumed until the WebSocket connection is terminated.
- Параметры:
reconnect (
bool) – If we should attempt reconnecting, either due to internet failure or a specific failure on Discord’s part. Certain disconnects that lead to bad state will not be handled (such as invalid sharding payloads or bad tokens).- Исключение:
GatewayNotFound – The gateway to connect to Discord is not found. Usually if this is thrown then there is a Discord API outage.
ConnectionClosed – The WebSocket connection has been terminated.
- Тип результата:
- await create_dm(user)¶
This function is a coroutine.
Creates a
DMChannelwith this user.This should be rarely called, as this is done transparently for most people.
Добавлено в версии 2.0.
- await create_emoji(*, name, image)¶
This function is a coroutine.
Creates a custom
AppEmojifor the application.There is currently a limit of 2000 emojis per application.
- Параметры:
name (
str) – The emoji name. Must be at least 2 characters.image (
bytes) – The bytes-like object representing the image data to use. Only JPG, PNG and GIF images are supported.
- Исключение:
HTTPException – An error occurred creating an emoji.
- Результат:
The created emoji.
- Тип результата:
- create_group(name, description=None, guild_ids=None, **kwargs)¶
A shortcut method that creates a slash command group with no subcommands and adds it to the internal command list via
add_application_command().Добавлено в версии 2.0.
- Параметры:
name (
str) – The name of the group to create.description (
str|None) – The description of the group to create.guild_ids (
list[int] |None) – A list of the IDs of each guild this group should be added to, making it a guild command. This will be a global command ifNoneis passed.kwargs – Any additional keyword arguments to pass to
SlashCommandGroup.
- Результат:
The slash command group that was created.
- Тип результата:
- await delete_emoji(emoji)¶
This function is a coroutine.
Deletes the custom
AppEmojifrom the application.- Параметры:
emoji (
Snowflake) – The emoji you are deleting.- Исключение:
HTTPException – An error occurred deleting the emoji.
- Тип результата:
- await delete_invite(invite)¶
This function is a coroutine.
Revokes an
Invite, URL, or ID to an invite.You must have the
manage_channelspermission in the associated guild to do this.
- property emojis: list[GuildEmoji | AppEmoji]¶
The emojis that the connected client has.
Примечание
This only includes the application’s emojis if cache_app_emojis is
True.
- entitlements(user=None, skus=None, before=None, after=None, limit=100, guild=None, exclude_ended=False)¶
Returns an
AsyncIteratorthat enables fetching the application’s entitlements.Добавлено в версии 2.6.
- Параметры:
user (
Snowflake|None) – Limit the fetched entitlements to entitlements owned by this user.skus (
list[Snowflake] |None) – Limit the fetched entitlements to entitlements that are for these SKUs.before (
Snowflake|datetime|None) – Retrieves guilds before this date or object. If a datetime is provided, it is recommended to use a UTC-aware datetime. If the datetime is naive, it is assumed to be local time.after (
Snowflake|datetime|None) – Retrieve guilds after this date or object. If a datetime is provided, it is recommended to use a UTC-aware datetime. If the datetime is naive, it is assumed to be local time.limit (
int|None) – The number of entitlements to retrieve. IfNone, retrieves every entitlement, which may be slow. Defaults to100.guild (
Snowflake|None) – Limit the fetched entitlements to entitlements owned by this guild.exclude_ended (
bool) – Whether to limit the fetched entitlements to those that have not ended. Defaults toFalse.
- Yields:
Entitlement– The application’s entitlements.- Исключение:
HTTPException – Retrieving the entitlements failed.
- Тип результата:
EntitlementIterator
Примеры
Usage
async for entitlement in client.entitlements(): print(entitlement.user_id)
Flattening into a list
entitlements = await user.entitlements().flatten()
All parameters are optional.
- property extensions: Mapping[str, ModuleType]¶
A read-only mapping of extension name to extension.
- await fetch_application(application_id, /)¶
This function is a coroutine. Retrieves a
PartialAppInfofrom an application ID.- Параметры:
application_id (
int) – The application ID to retrieve information from.- Результат:
The application information.
- Тип результата:
- Исключение:
NotFound – An application with this ID does not exist.
HTTPException – Retrieving the application failed.
- await fetch_channel(channel_id, /)¶
This function is a coroutine.
Retrieves a
abc.GuildChannel,abc.PrivateChannel, orThreadwith the specified ID.Примечание
This method is an API call. For general usage, consider
get_channel()instead.Добавлено в версии 1.2.
- Результат:
The channel from the ID.
- Тип результата:
- Исключение:
InvalidData – An unknown channel type was received from Discord.
HTTPException – Retrieving the channel failed.
NotFound – Invalid Channel ID.
Forbidden – You do not have permission to fetch this channel.
- Параметры:
channel_id (
int)
- await fetch_default_sounds()¶
This function is a coroutine.
Fetches the bot’s default sounds.
Добавлено в версии 2.7.
- Результат:
The bot’s default sounds.
- Тип результата:
- await fetch_emoji(emoji_id, /)¶
This function is a coroutine.
Retrieves a custom
AppEmojifrom the application.- Параметры:
emoji_id (
int) – The emoji’s ID.- Результат:
The retrieved emoji.
- Тип результата:
- Исключение:
NotFound – The emoji requested could not be found.
HTTPException – An error occurred fetching the emoji.
- await fetch_emojis()¶
This function is a coroutine.
Retrieves all custom
AppEmojis from the application.- Исключение:
HTTPException – An error occurred fetching the emojis.
- Результат:
The retrieved emojis.
- Тип результата:
- await fetch_guild(guild_id, /, *, with_counts=True)¶
This function is a coroutine.
Retrieves a
Guildfrom an ID.Примечание
Using this, you will not receive
Guild.channels,Guild.members,Member.activityandMember.voiceperMember.Примечание
This method is an API call. For general usage, consider
get_guild()instead.- Параметры:
guild_id (
int) – The guild’s ID to fetch from.with_counts (
bool) –Whether to include count information in the guild. This fills the
Guild.approximate_member_countandGuild.approximate_presence_countfields.Добавлено в версии 2.0.
- Результат:
The guild from the ID.
- Тип результата:
- Исключение:
Forbidden – You do not have access to the guild.
HTTPException – Getting the guild failed.
- fetch_guilds(*, limit=100, before=None, after=None, with_counts=True)¶
Retrieves an
AsyncIteratorthat enables receiving your guilds.Примечание
Using this, you will only receive
Guild.owner,Guild.icon,Guild.id, andGuild.nameperGuild.Примечание
This method is an API call. For general usage, consider
guildsinstead.- Параметры:
limit (
int|None) – The number of guilds to retrieve. IfNone, it retrieves every guild you have access to. Note, however, that this would make it a slow operation. Defaults to100.before (
Snowflake|datetime) – Retrieves guilds before this date or object. If a datetime is provided, it is recommended to use a UTC aware datetime. If the datetime is naive, it is assumed to be local time.after (
Snowflake|datetime) – Retrieve guilds after this date or object. If a datetime is provided, it is recommended to use a UTC aware datetime. If the datetime is naive, it is assumed to be local time.with_counts (
bool) – Whether to include member count information in guilds. This fills theGuild.approximate_member_countandGuild.approximate_presence_countfields. Defaults toTrue.
- Yields:
Guild– The guild with the guild data parsed.- Исключение:
HTTPException – Getting the guilds failed.
- Тип результата:
GuildIterator
Примеры
Usage
async for guild in client.fetch_guilds(limit=150): print(guild.name)
Flattening into a list
guilds = await client.fetch_guilds(limit=150).flatten() # guilds is now a list of Guild...
All parameters are optional.
- await fetch_invite(url, *, with_counts=True, with_expiration=True, event_id=None)¶
This function is a coroutine.
Gets an
Invitefrom a discord.gg URL or ID.Примечание
If the invite is for a guild you have not joined, the guild and channel attributes of the returned
Invitewill bePartialInviteGuildandPartialInviteChannelrespectively.- Параметры:
url (
Invite|str) – The Discord invite ID or URL (must be a discord.gg URL).with_counts (
bool) – Whether to include count information in the invite. This fills theInvite.approximate_member_countandInvite.approximate_presence_countfields.with_expiration (
bool) –Whether to include the expiration date of the invite. This fills the
Invite.expires_atfield.Добавлено в версии 2.0.
The ID of the scheduled event to be associated with the event.
See
Invite.set_scheduled_event()for more info on event invite linking.Добавлено в версии 2.0.
- Результат:
The invite from the URL/ID.
- Тип результата:
- Исключение:
NotFound – The invite has expired or is invalid.
HTTPException – Getting the invite failed.
This function is a coroutine.
Retrieves all available premium sticker packs.
Добавлено в версии 2.0.
- Результат:
All available premium sticker packs.
- Тип результата:
- Исключение:
HTTPException – Retrieving the sticker packs failed.
- await fetch_role_connection_metadata_records()¶
This function is a coroutine.
Fetches the bot’s role connection metadata records.
Добавлено в версии 2.4.
- Результат:
The bot’s role connection metadata records.
- Тип результата:
- await fetch_stage_instance(channel_id, /)¶
This function is a coroutine.
Gets a
StageInstancefor a stage channel id.Добавлено в версии 2.0.
- Параметры:
channel_id (
int) – The stage channel ID.- Результат:
The stage instance from the stage channel ID.
- Тип результата:
- Исключение:
NotFound – The stage instance or channel could not be found.
HTTPException – Getting the stage instance failed.
- await fetch_sticker(sticker_id, /)¶
This function is a coroutine.
Retrieves a
Stickerwith the specified ID.Добавлено в версии 2.0.
- Результат:
The sticker you requested.
- Тип результата:
- Исключение:
HTTPException – Retrieving the sticker failed.
NotFound – Invalid sticker ID.
- Параметры:
sticker_id (
int)
- await fetch_template(code)¶
This function is a coroutine.
Gets a
Templatefrom a discord.new URL or code.- Параметры:
code (
Template|str) – The Discord Template Code or URL (must be a discord.new URL).- Результат:
The template from the URL/code.
- Тип результата:
- Исключение:
NotFound – The template is invalid.
HTTPException – Getting the template failed.
- await fetch_user(user_id, /)¶
This function is a coroutine.
Retrieves a
Userbased 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.Примечание
This method is an API call. If you have
discord.Intents.membersand member cache enabled, considerget_user()instead.- Параметры:
user_id (
int) – The user’s ID to fetch from.- Результат:
The user you requested.
- Тип результата:
- Исключение:
NotFound – A user with this ID does not exist.
HTTPException – Fetching the user failed.
- await fetch_webhook(webhook_id, /)¶
This function is a coroutine.
Retrieves a
Webhookwith the specified ID.- Результат:
The webhook you requested.
- Тип результата:
- Исключение:
HTTPException – Retrieving the webhook failed.
NotFound – Invalid webhook ID.
Forbidden – You do not have permission to fetch this webhook.
- Параметры:
webhook_id (
int)
- await fetch_widget(guild_id, /)¶
This function is a coroutine.
Gets a
Widgetfrom a guild ID.Примечание
The guild must have the widget enabled to get this information.
- Параметры:
guild_id (
int) – The ID of the guild.- Результат:
The guild’s widget.
- Тип результата:
- Исключение:
Forbidden – The widget for this guild is disabled.
HTTPException – Retrieving the widget failed.
- get_all_channels()¶
A generator that retrieves every
abc.GuildChannelthe client can „access“.This is equivalent to:
for guild in client.guilds: for channel in guild.channels: yield channel
Примечание
Just because you receive a
abc.GuildChanneldoes not mean that you can communicate in said channel.abc.GuildChannel.permissions_for()should be used for that.- Yields:
abc.GuildChannel– A channel the client can „access“.
- get_all_members()¶
Returns a generator with every
Memberthe client can see.This is equivalent to:
for guild in client.guilds: for member in guild.members: yield member
- Yields:
Member– A member the client can see.
- get_application_command(name, guild_ids=None, type=<class 'discord.commands.core.ApplicationCommand'>)¶
Get an
ApplicationCommandfrom the internal list of commands.Добавлено в версии 2.0.
- Параметры:
name (
str) – The qualified name of the command to get.guild_ids (
list[int] |None) – The guild ids associated to the command to get.type (
type[ApplicationCommand]) – The type of the command to get. Defaults toApplicationCommand.
- Результат:
The command that was requested. If not found, returns
None.- Тип результата:
- await get_application_context(interaction, cls=<class 'discord.commands.context.ApplicationContext'>)¶
This function is a coroutine.
Returns the invocation context from the interaction.
This is a more low-level counter-part for
process_application_commands()to allow users more fine-grained control over the processing.- Параметры:
interaction (
Interaction) – The interaction to get the invocation context from.cls (
Any) – The factory class that will be used to create the context. By default, this isApplicationContext. Should a custom class be provided, it must be similar enough toApplicationContext's interface.
- Результат:
The invocation context. The type of this can change via the
clsparameter.- Тип результата:
- await get_autocomplete_context(interaction, cls=<class 'discord.commands.context.AutocompleteContext'>)¶
This function is a coroutine.
Returns the autocomplete context from the interaction.
This is a more low-level counter-part for
process_application_commands()to allow users more fine-grained control over the processing.- Параметры:
interaction (
Interaction) – The interaction to get the invocation context from.cls (
Any) – The factory class that will be used to create the context. By default, this isAutocompleteContext. Should a custom class be provided, it must be similar enough toAutocompleteContext's interface.
- Результат:
The autocomplete context. The type of this can change via the
clsparameter.- Тип результата:
- get_channel(id, /)¶
Returns a channel or thread with the given ID.
- Параметры:
id (
int) – The ID to search for.- Результат:
The returned channel or
Noneif not found.- Тип результата:
GuildChannel|Thread|PrivateChannel|None
- get_cog(name)¶
Gets the cog instance requested.
If the cog is not found,
Noneis returned instead.
- property get_command¶
Shortcut for
get_application_command().Примечание
Overridden in
ext.commands.Bot.Добавлено в версии 2.0.
- await get_desynced_commands(guild_id=None, prefetched=None)¶
This function is a coroutine.
Gets the list of commands that are desynced from discord. If
guild_idis specified, it will only return guild commands that are desynced from said guild, else it will return global commands.Примечание
This function is meant to be used internally, and should only be used if you want to override the default command registration behavior.
Добавлено в версии 2.0.
- Параметры:
- Результат:
A list of the desynced commands. Each will come with at least the
cmdandactionkeys, which respectively contain the command and the action to perform. Other keys may also be present depending on the action, includingid.- Тип результата:
- get_emoji(id, /)¶
Returns an emoji with the given ID.
- Параметры:
id (
int) – The ID to search for.- Результат:
The custom emoji or
Noneif not found.- Тип результата:
GuildEmoji|AppEmoji|None
- get_guild(id, /)¶
Returns a guild with the given ID.
- get_message(id, /)¶
Returns a message the given ID.
This is useful if you have a message_id but don’t want to do an API call to access the message.
- await get_or_fetch(object_type, object_id, default=None)¶
Shortcut method to get data from an object either by returning the cached version, or if it does not exist, attempting to fetch it from the API.
- Параметры:
object_type (
type[TypeVar(_FETCHABLE, bound= VoiceChannel | TextChannel | ForumChannel | StageChannel | CategoryChannel | Thread | Member | User | Guild | Role | GuildEmoji | AppEmoji)]) – Type of object to fetch or get.object_id (
int|None) – ID of object to get. IfNone, returns default if provided, elseNone.default (
TypeVar(_D)) – A default to return instead of raising if fetch fails.self (
Client)
- Результат:
The object if found, or default if provided when not found.
- Тип результата:
TypeVar(_FETCHABLE, bound= VoiceChannel | TextChannel | ForumChannel | StageChannel | CategoryChannel | Thread | Member | User | Guild | Role | GuildEmoji | AppEmoji) |TypeVar(_D) |None- Исключение:
TypeError – Raised when required parameters are missing or invalid types are provided.
InvalidArgument – Raised when an unsupported or incompatible object type is used.
- await get_or_fetch_user(id, /)¶
This function is a coroutine.
Looks up a user in the user cache or fetches if not found.
- get_partial_messageable(id, *, type=None)¶
Returns a partial messageable with the given channel ID.
This is useful if you have a channel_id but don’t want to do an API call to send messages to it.
Добавлено в версии 2.0.
- Параметры:
- Результат:
The partial messageable
- Тип результата:
- get_poll(id, /)¶
Returns a poll attached to the given message ID.
- get_sound(sound_id)¶
Gets a
Soundfrom the bot’s sound cache.Добавлено в версии 2.7.
- Параметры:
sound_id (
int) – The ID of the sound to get.- Результат:
The sound with the given ID.
- Тип результата:
- get_stage_instance(id, /)¶
Returns a stage instance with the given stage channel ID.
Добавлено в версии 2.0.
- Параметры:
id (
int) – The ID to search for.- Результат:
The stage instance or
Noneif not found.- Тип результата:
- get_sticker(id, /)¶
Returns a guild sticker with the given ID.
Добавлено в версии 2.0.
Примечание
To retrieve standard stickers, use
fetch_sticker(). orfetch_premium_sticker_packs().- Результат:
The sticker or
Noneif not found.- Тип результата:
- Параметры:
id (
int)
- get_user(id, /)¶
Returns a user with the given ID.
- group(name=None, description=None, guild_ids=None)¶
A shortcut decorator that initializes the provided subclass of
SlashCommandGroupand adds it to the internal command list viaadd_application_command().Добавлено в версии 2.0.
- Параметры:
name (
str|None) – The name of the group to create. This will resolve to the name of the decorated class ifNoneis passed.description (
str|None) – The description of the group to create.guild_ids (
list[int] |None) – A list of the IDs of each guild this group should be added to, making it a guild command. This will be a global command ifNoneis passed.
- Результат:
The slash command group that was created.
- Тип результата:
- property guild_emojis: list[GuildEmoji]¶
The
GuildEmojithat the connected client has.
- await invoke_application_command(ctx)¶
This function is a coroutine.
Invokes the application command given under the invocation context and handles all the internal event dispatch mechanisms.
- Параметры:
ctx (
ApplicationContext) – The invocation context to invoke.- Тип результата:
- await is_owner(user)¶
This function is a coroutine.
Checks if a
UserorMemberis the owner of this bot.If an
owner_idis not set, it is fetched automatically through the use ofapplication_info(), returning the application owner, or all non read-only team members.Изменено в версии 1.3: The function also checks if the application is team-owned if
owner_idsis not set.
- is_ws_ratelimited()¶
Whether the WebSocket is currently rate limited.
This can be useful to know when deciding whether you should query members using HTTP or via the gateway.
Добавлено в версии 1.6.
- Тип результата:
- property latency: float¶
Measures latency between a HEARTBEAT and a HEARTBEAT_ACK in seconds. If no websocket is present, this returns
nan, and if no heartbeat has been received yet, this returnsfloat('inf').This could be referred to as the Discord WebSocket protocol latency.
- load_extension(name, *, package=None, recursive=False, store=False)¶
Loads an extension.
An extension is a python module that contains commands, cogs, or listeners.
An extension must have a global function,
setupdefined as the entry point on what to do when the extension is loaded. This entry point must have a single argument, thebot.The extension passed can either be the direct name of a file within the current working directory or a folder that contains multiple extensions.
- Параметры:
name (
str) – The extension or folder name to load. It must be dot separated like regular Python imports if accessing a submodule. e.g.foo.testif you want to importfoo/test.py.package (Optional[
str]) –The package name to resolve relative imports with. This is required when loading an extension using a relative path, e.g
.foo.test. Defaults toNone.Добавлено в версии 1.7.
recursive (Optional[
bool]) –If subdirectories under the given head directory should be recursively loaded. Defaults to
False.Добавлено в версии 2.0.
store (Optional[
bool]) –If exceptions should be stored or raised. If set to
True, all exceptions encountered will be stored in a returned dictionary as a load status. If set toFalse, if any exceptions are encountered they will be raised and the bot will be closed. If no exceptions are encountered, a list of loaded extension names will be returned. Defaults toFalse.Добавлено в версии 2.0.
- Результат:
If the store parameter is set to
True, a dictionary will be returned that contains keys to represent the loaded extension names. The values bound to each key can either be an exception that occurred when loading that extension or aTrueboolean representing a successful load. If the store parameter is set toFalse, either a list containing a list of loaded extensions or nothing due to an encountered exception.- Тип результата:
- Исключение:
ExtensionNotFound – The extension could not be imported. This is also raised if the name of the extension could not be resolved using the provided
packageparameter.ExtensionAlreadyLoaded – The extension is already loaded.
NoEntryPointError – The extension does not have a setup function.
ExtensionFailed – The extension or its setup function had an execution error.
- load_extensions(*names, package=None, recursive=False, store=False)¶
Loads multiple extensions at once.
This method simplifies the process of loading multiple extensions by handling the looping of
load_extension.- Параметры:
names (
str) – The extension or folder names to load. It must be dot separated like regular Python imports if accessing a submodule. e.g.foo.testif you want to importfoo/test.py.package (Optional[
str]) –The package name to resolve relative imports with. This is required when loading an extension using a relative path, e.g
.foo.test. Defaults toNone.Добавлено в версии 1.7.
recursive (Optional[
bool]) –If subdirectories under the given head directory should be recursively loaded. Defaults to
False.Добавлено в версии 2.0.
store (Optional[
bool]) –If exceptions should be stored or raised. If set to
True, all exceptions encountered will be stored in a returned dictionary as a load status. If set toFalse, if any exceptions are encountered they will be raised and the bot will be closed. If no exceptions are encountered, a list of loaded extension names will be returned. Defaults toFalse.Добавлено в версии 2.0.
- Результат:
If the store parameter is set to
True, a dictionary will be returned that contains keys to represent the loaded extension names. The values bound to each key can either be an exception that occurred when loading that extension or aTrueboolean representing a successful load. If the store parameter is set toFalse, either a list containing names of loaded extensions or nothing due to an encountered exception.- Тип результата:
- Исключение:
ExtensionNotFound – A given extension could not be imported. This is also raised if the name of the extension could not be resolved using the provided
packageparameter.ExtensionAlreadyLoaded – A given extension is already loaded.
NoEntryPointError – A given extension does not have a setup function.
ExtensionFailed – A given extension or its setup function had an execution error.
- await login(token)¶
This function is a coroutine.
Logs in the client with the specified credentials.
- Параметры:
token (
str) – The authentication token. Do not prefix this token with anything as the library will do it for you.- Исключение:
TypeError – The token was in invalid type.
LoginFailure – The wrong credentials are passed.
HTTPException – An unknown HTTP related error occurred, usually when it isn’t 200 or the known incorrect credentials passing status code.
- Тип результата:
- await on_application_command_error(context, exception)¶
This function is a coroutine.
The default command error handler provided by the bot.
By default, this prints to
sys.stderrhowever it could be overridden to have a different implementation.This only fires if you do not specify any listeners for command error.
- Параметры:
context (
ApplicationContext)exception (
DiscordException)
- Тип результата:
- await on_error(event_method, *args, **kwargs)¶
This function is a coroutine.
The default error handler provided by the client.
By default, this prints to
sys.stderrhowever it could be overridden to have a different implementation. Checkon_error()for more details.
- await on_modal_error(error, interaction)¶
This function is a coroutine.
The default modal error handler provided by the client. The default implementation prints the traceback to stderr.
This only fires for a modal if you did not define its
on_error().- Параметры:
error (
Exception) – The exception that was raised.interaction (
Interaction) – The interaction that was received.
- Тип результата:
- await on_view_error(error, item, interaction)¶
This function is a coroutine.
The default view error handler provided by the client.
This only fires for a view if you did not define its
on_error().- Параметры:
error (
Exception) – The exception that was raised.item (
ViewItem) – The item that the user interacted with.interaction (
Interaction) – The interaction that was received.
- Тип результата:
- property persistent_views: Sequence[BaseView]¶
A sequence of persistent views added to the client.
Добавлено в версии 2.0.
- property private_channels: list[PrivateChannel]¶
The private channels that the connected client is participating on.
Примечание
This returns only up to 128 most recent private channels due to an internal working on how Discord deals with private channels.
- await process_application_commands(interaction, auto_sync=None)¶
This function is a coroutine.
This function processes the commands that have been registered to the bot and other groups. Without this coroutine, none of the commands will be triggered.
By default, this coroutine is called inside the
on_interaction()event. If you choose to override theon_interaction()event, then you should invoke this coroutine as well.This function finds a registered command matching the interaction id from application commands and invokes it. If no matching command was found, it replies to the interaction with a default message.
Добавлено в версии 2.0.
- Параметры:
interaction (
Interaction) – The interaction to processauto_sync (
bool|None) – Whether to automatically sync and unregister the command if it is not found in the internal cache. This will invoke thesync_commands()method on the context of the command, either globally or per-guild, based on the type of the command, respectively. Defaults toBot.auto_sync_commands.
- Тип результата:
- await register_command(command, force=True, guild_ids=None)¶
This function is a coroutine.
Registers a command. If the command has
guild_idsset, or if theguild_idsparameter is passed, the command will be registered as a guild command for those guilds.- Параметры:
command (
ApplicationCommand) – The command to register.force (
bool) – Whether to force the command to be registered. If this is set to False, the command will only be registered if it seems to already be registered and up to date with our internal cache. Defaults to True.guild_ids (
list[int] |None) – A list of guild ids to register the command for. If this is not set, the command’sApplicationCommand.guild_idsattribute will be used.
- Результат:
The command that was registered
- Тип результата:
- await register_commands(commands=None, guild_id=None, method='bulk', force=False, delete_existing=True)¶
This function is a coroutine.
Register a list of commands.
Добавлено в версии 2.0.
- Параметры:
commands (
list[ApplicationCommand] |None) – A list of commands to register. If this is not set (None), then all commands will be registered.guild_id (
int|None) – If this is set, the commands will be registered as a guild command for the respective guild. If it is not set, the commands will be registered according to theirApplicationCommand.guild_idsattribute.method (
Literal['individual','bulk','auto']) – The method to use when registering the commands. If this is set to «individual», then each command will be registered individually. If this is set to «bulk», then all commands will be registered in bulk. If this is set to «auto», then the method will be determined automatically. Defaults to «bulk».force (
bool) – Registers the commands regardless of the state of the command on Discord. This uses one less API call, but can result in hitting rate limits more often. Defaults to False.delete_existing (
bool) – Whether to delete existing commands that are not in the list of commands to register. Defaults to True.
- Тип результата:
list[ApplicationCommand]
- reload_extension(name, *, package=None)¶
Atomically reloads an extension.
This replaces the extension with the same extension, only refreshed. This is equivalent to a
unload_extension()followed by aload_extension()except done in an atomic way. That is, if an operation fails mid-reload then the bot will roll back to the prior working state.- Параметры:
name (
str) – The extension name to reload. It must be dot separated like regular Python imports if accessing a submodule. e.g.foo.testif you want to importfoo/test.py.The package name to resolve relative imports with. This is required when reloading an extension using a relative path, e.g
.foo.test. Defaults toNone.Добавлено в версии 1.7.
- Исключение:
ExtensionNotLoaded – The extension was not loaded.
ExtensionNotFound – The extension could not be imported. This is also raised if the name of the extension could not be resolved using the provided
packageparameter.NoEntryPointError – The extension does not have a setup function.
ExtensionFailed – The extension setup function had an execution error.
- Тип результата:
- remove_application_command(command)¶
Remove an
ApplicationCommandfrom the internal list of commands.Добавлено в версии 2.0.
- Параметры:
command (
ApplicationCommand) – The command to remove.- Результат:
The command that was removed. If the command has not been added,
Noneis returned instead.- Тип результата:
- remove_check(func, *, call_once=False)¶
Removes a global check from the bot. This function is idempotent and will not raise an exception if the function is not in the global checks.
- Параметры:
func – The function to remove from the global checks.
call_once (
bool) – If the function was added withcall_once=Truein theBot.add_check()call or usingcheck_once().
- Тип результата:
- remove_cog(name)¶
Removes a cog from the bot and returns it.
All registered commands and event listeners that the cog has registered will be removed as well.
If no cog is found then this method has no effect.
- remove_listener(func, name=...)¶
Removes a listener from the pool of listeners.
- run(*args, **kwargs)¶
A blocking call that abstracts away the event loop initialisation from you.
If you want more control over the event loop then this function should not be used. Use
start()coroutine orconnect()+login().Roughly Equivalent to:
try: loop.run_until_complete(start(*args, **kwargs)) except KeyboardInterrupt: loop.run_until_complete(close()) # cancel all tasks lingering finally: loop.close()
Предупреждение
This function must be the last function to call due to the fact that it is blocking. That means that registration of events or anything being called after this function call will not execute until it returns.
- slash_group(name=None, description=None, guild_ids=None)¶
A shortcut decorator that initializes the provided subclass of
SlashCommandGroupand adds it to the internal command list viaadd_application_command().Добавлено в версии 2.0.
- Параметры:
name (
str|None) – The name of the group to create. This will resolve to the name of the decorated class ifNoneis passed.description (
str|None) – The description of the group to create.guild_ids (
list[int] |None) – A list of the IDs of each guild this group should be added to, making it a guild command. This will be a global command ifNoneis passed.
- Результат:
The slash command group that was created.
- Тип результата:
- property sounds: list[SoundboardSound]¶
A list of all the sounds the bot can see.
Добавлено в версии 2.7.
- property status: Status¶
The status being used upon logging on to Discord.
- property stickers: list[GuildSticker]¶
The stickers that the connected client has.
Добавлено в версии 2.0.
- property store_url: str¶
The URL that leads to the application’s store page for monetization.
Добавлено в версии 2.6.
- Type:
- await sync_commands(commands=None, method='bulk', force=False, guild_ids=None, register_guild_commands=True, check_guilds=[], delete_existing=True)¶
This function is a coroutine.
Registers all commands that have been added through
add_application_command(). This method cleans up all commands over the API and should sync them with the internal cache of commands. It attempts to register the commands in the most efficient way possible, unlessforceis set toTrue, in which case it will always register all commands.By default, this coroutine is called inside the
on_connect()event. If you choose to override theon_connect()event, then you should invoke this coroutine as well such as the following:@bot.event async def on_connect(): if bot.auto_sync_commands: await bot.sync_commands() print(f"{bot.user.name} connected.")
Примечание
If you remove all guild commands from a particular guild, the library may not be able to detect and update the commands accordingly, as it would have to individually check for each guild. To force the library to unregister a guild’s commands, call this function with
commands=[]andguild_ids=[guild_id].Добавлено в версии 2.0.
- Параметры:
commands (
list[ApplicationCommand] |None) – A list of commands to register. If this is not set (None), then all commands will be registered.method (
Literal['individual','bulk','auto']) – The method to use when registering the commands. If this is set to «individual», then each command will be registered individually. If this is set to «bulk», then all commands will be registered in bulk. If this is set to «auto», then the method will be determined automatically. Defaults to «bulk».force (
bool) – Registers the commands regardless of the state of the command on Discord. This uses one less API call, but can result in hitting rate limits more often. Defaults to False.guild_ids (
list[int] |None) – A list of guild ids to register the commands for. If this is not set, the commands“guild_idsattribute will be used.register_guild_commands (
bool) – Whether to register guild commands. Defaults to True.check_guilds (
list[int] |None) – A list of guilds ids to check for commands to unregister, since the bot would otherwise have to check all guilds. Unlikeguild_ids, this does not alter the commands“guild_idsattribute, instead it adds the guild ids to a list of guilds to sync commands for. Ifregister_guild_commandsis set to False, then this parameter is ignored.delete_existing (
bool) – Whether to delete existing commands that are not in the list of commands to register. Defaults to True.
- Тип результата:
- unload_extension(name, *, package=None)¶
Unloads an extension.
When the extension is unloaded, all commands, listeners, and cogs are removed from the bot and the module is un-imported.
The extension can provide an optional global function,
teardown, to do miscellaneous clean-up if necessary. This function takes a single parameter, thebot, similar tosetupfromload_extension().- Параметры:
name (
str) – The extension name to unload. It must be dot separated like regular Python imports if accessing a submodule. e.g.foo.testif you want to importfoo/test.py.The package name to resolve relative imports with. This is required when unloading an extension using a relative path, e.g
.foo.test. Defaults toNone.Добавлено в версии 1.7.
- Исключение:
ExtensionNotFound – The name of the extension could not be resolved using the provided
packageparameter.ExtensionNotLoaded – The extension was not loaded.
- Тип результата:
- await update_role_connection_metadata_records(*role_connection_metadata)¶
This function is a coroutine.
Updates the bot’s role connection metadata records.
Добавлено в версии 2.4.
- Параметры:
*role_connection_metadata (
ApplicationRoleConnectionMetadata) – The new metadata records to send to Discord.- Результат:
The updated role connection metadata records.
- Тип результата:
- property user: ClientUser | None¶
Represents the connected client.
Noneif not logged in.
- property voice_clients: list[VoiceProtocol[Self]]¶
Represents a list of voice connections.
These are usually
VoiceClientinstances.
- wait_for(event, *, check=None, timeout=None)¶
This function is a coroutine.
Waits for a WebSocket event to be dispatched.
This could be used to wait for a user to reply to a message, or to react to a message, or to edit a message in a self-contained way.
The
timeoutparameter is passed ontoasyncio.wait_for(). By default, it does not timeout. Note that this does propagate theasyncio.TimeoutErrorfor you in case of timeout and is provided for ease of use.In case the event returns multiple arguments, a
tuplecontaining those arguments is returned instead. Please check the documentation for a list of events and their parameters.This function returns the first event that meets the requirements.
- Параметры:
event (
str) – The event name, similar to the event reference, but without theon_prefix, to wait for.check (
Callable[...,bool] |None) – A predicate to check what to wait for. The arguments must meet the parameters of the event being waited for.timeout (
float|None) – The number of seconds to wait before timing out and raisingasyncio.TimeoutError.
- Результат:
Returns no arguments, a single argument, or a
tupleof multiple arguments that mirrors the parameters passed in the event reference.- Тип результата:
- Исключение:
asyncio.TimeoutError – Raised if a timeout is provided and reached.
Примеры
Waiting for a user reply:
@client.event async def on_message(message): if message.content.startswith('$greet'): channel = message.channel await channel.send('Say hello!') def check(m): return m.content == 'hello' and m.channel == channel msg = await client.wait_for('message', check=check) await channel.send(f'Hello {msg.author}!')
Waiting for a thumbs up reaction from the message author:
@client.event async def on_message(message): if message.content.startswith('$thumb'): channel = message.channel await channel.send('Send me that 👍 reaction, mate') def check(reaction, user): return user == message.author and str(reaction.emoji) == '👍' try: reaction, user = await client.wait_for('reaction_add', timeout=60.0, check=check) except asyncio.TimeoutError: await channel.send('👎') else: await channel.send('👍')
- await wait_until_ready()¶
This function is a coroutine.
Waits until the client’s internal cache is all ready.
- Тип результата:
- walk_application_commands()¶
An iterator that recursively walks through all application commands and subcommands.
- Yields:
ApplicationCommand– An application command from the internal list of application commands.
- class discord.AutoShardedBot(description=None, *args, **options)[исходный код]¶
This is similar to
Botexcept that it is inherited fromdiscord.AutoShardedClientinstead.Добавлено в версии 2.0.
Clients¶
- defadd_listener
- defadd_view
- asyncapplication_info
- asyncbefore_identify_hook
- asyncchange_presence
- defclear
- asyncclose
- asyncconnect
- asynccreate_dm
- asynccreate_emoji
- asyncdelete_emoji
- asyncdelete_invite
- defentitlements
- @event
- asyncfetch_application
- asyncfetch_channel
- asyncfetch_default_sounds
- asyncfetch_emoji
- asyncfetch_emojis
- asyncfetch_guild
- deffetch_guilds
- asyncfetch_invite
- asyncfetch_premium_sticker_packs
- asyncfetch_role_connection_metadata_records
- asyncfetch_skus
- asyncfetch_stage_instance
- asyncfetch_sticker
- asyncfetch_template
- asyncfetch_user
- asyncfetch_webhook
- asyncfetch_widget
- defget_all_channels
- defget_all_members
- defget_channel
- defget_emoji
- defget_guild
- defget_message
- asyncget_or_fetch
- asyncget_or_fetch_user
- defget_partial_messageable
- defget_poll
- defget_sound
- defget_stage_instance
- defget_sticker
- defget_user
- defis_closed
- defis_ready
- defis_ws_ratelimited
- @listen
- asynclogin
- asyncon_error
- asyncon_modal_error
- asyncon_view_error
- defremove_listener
- defrun
- asyncstart
- asyncupdate_role_connection_metadata_records
- asyncwait_for
- asyncwait_until_ready
- class discord.Client(*, loop=None, **options)[исходный код]¶
Represents a client connection that connects to Discord. This class is used to interact with the Discord WebSocket and API.
A number of options can be passed to the
Client.- Параметры:
max_messages (Optional[
int]) –The maximum number of messages to store in the internal message cache. This defaults to
1000. Passing inNonedisables the message cache.Изменено в версии 1.3: Allow disabling the message cache and change the default size to
1000.loop (
AbstractEventLoop|None) – Theasyncio.AbstractEventLoopto use for asynchronous operations. Defaults toNone, in which case the default event loop is used viaasyncio.get_event_loop()if it exists or one is created viaasyncio.new_event_loop().connector (Optional[
aiohttp.BaseConnector]) – The connector to use for connection pooling.proxy (Optional[
str]) – Proxy URL.proxy_auth (Optional[
aiohttp.BasicAuth]) – An object that represents proxy HTTP Basic Authorization.shard_id (Optional[
int]) – Integer starting at0and less thanshard_count.shard_count (Optional[
int]) – The total number of shards.application_id (
int) – The client’s application ID.intents (
Intents) –The intents that you want to enable for the session. This is a way of disabling and enabling certain gateway events from triggering and being sent. If not given, defaults to a regularly constructed
Intentsclass.Добавлено в версии 1.5.
member_cache_flags (
MemberCacheFlags) –Allows for finer control over how the library caches members. If not given, defaults to cache as much as possible with the currently selected intents.
Добавлено в версии 1.5.
chunk_guilds_at_startup (
bool) –Indicates if
on_ready()should be delayed to chunk all guilds at start-up if necessary. This operation is incredibly slow for large amounts of guilds. The default isTrueifIntents.membersisTrue.Добавлено в версии 1.5.
status (Optional[
Status]) – A status to start your presence with upon logging on to Discord.activity (Optional[
BaseActivity]) – An activity to start your presence with upon logging on to Discord.allowed_mentions (Optional[
AllowedMentions]) –Control how the client handles mentions by default on every message sent.
Добавлено в версии 1.4.
heartbeat_timeout (
float) – The maximum numbers of seconds before timing out and restarting the WebSocket in the case of not receiving a HEARTBEAT_ACK. Useful if processing the initial packets take too long to the point of disconnecting you. The default timeout is 60 seconds.guild_ready_timeout (
float) –The maximum number of seconds to wait for the GUILD_CREATE stream to end before preparing the member cache and firing READY. The default timeout is 2 seconds.
Добавлено в версии 1.4.
assume_unsync_clock (
bool) –Whether to assume the system clock is unsynced. This applies to the ratelimit handling code. If this is set to
True, the default, then the library uses the time to reset a rate limit bucket given by Discord. If this isFalsethen your system clock is used to calculate how long to sleep for. If this is set toFalseit is recommended to sync your system clock to Google’s NTP server.Добавлено в версии 1.3.
enable_debug_events (
bool) –Whether to enable events that are useful only for debugging gateway related information.
Right now this involves
on_socket_raw_receive()andon_socket_raw_send(). If this isFalsethen those events will not be dispatched (due to performance considerations). To enable these events, this must be set toTrue. Defaults toFalse.Добавлено в версии 2.0.
cache_app_emojis (
bool) –Whether to automatically fetch and cache the application’s emojis on startup and when fetching. Defaults to
False.Предупреждение
There are no events related to application emojis - if any are created/deleted on the Developer Dashboard while the client is running, the cache will not be updated until you manually run
fetch_emojis().Добавлено в версии 2.7.
cache_default_sounds (
bool) –Whether to automatically fetch and cache the default soundboard sounds on startup. Defaults to
True.Добавлено в версии 2.8.
- ws¶
The WebSocket gateway the client is currently connected to. Could be
None.
- loop¶
The event loop that the client uses for asynchronous operations.
- Параметры:
options (
Any)
- @event(coro)[исходный код]¶
A decorator that registers an event to listen to.
You can find more info about the events on the documentation below.
The events must be a coroutine, if not,
TypeErroris raised.Примечание
This replaces any default handlers. Developers are encouraged to use
listen()for adding additional handlers instead ofevent()unless default method replacement is intended.- Исключение:
TypeError – The coroutine passed is not actually a coroutine.
Пример
@client.event async def on_ready(): print('Ready!')
- async for ... in fetch_guilds(*, limit=100, before=None, after=None, with_counts=True)[исходный код]¶
Retrieves an
AsyncIteratorthat enables receiving your guilds.Примечание
Using this, you will only receive
Guild.owner,Guild.icon,Guild.id, andGuild.nameperGuild.Примечание
This method is an API call. For general usage, consider
guildsinstead.- Параметры:
limit (
int|None) – The number of guilds to retrieve. IfNone, it retrieves every guild you have access to. Note, however, that this would make it a slow operation. Defaults to100.before (
Snowflake|datetime) – Retrieves guilds before this date or object. If a datetime is provided, it is recommended to use a UTC aware datetime. If the datetime is naive, it is assumed to be local time.after (
Snowflake|datetime) – Retrieve guilds after this date or object. If a datetime is provided, it is recommended to use a UTC aware datetime. If the datetime is naive, it is assumed to be local time.with_counts (
bool) – Whether to include member count information in guilds. This fills theGuild.approximate_member_countandGuild.approximate_presence_countfields. Defaults toTrue.
- Yields:
Guild– The guild with the guild data parsed.- Исключение:
HTTPException – Getting the guilds failed.
- Тип результата:
GuildIterator
Примеры
Usage
async for guild in client.fetch_guilds(limit=150): print(guild.name)
Flattening into a list
guilds = await client.fetch_guilds(limit=150).flatten() # guilds is now a list of Guild...
All parameters are optional.
- @listen(name=..., once=False)[исходный код]¶
A decorator that registers another function as an external event listener. Basically this allows you to listen to multiple events from different places e.g. such as
on_ready()The functions being listened to must be a coroutine.
- Исключение:
TypeError – The function being listened to is not a coroutine.
ValueError – The
name(event name) does not start withon_.
Пример
@client.listen() async def on_message(message): print('one') # in some other file... @client.listen('on_message') async def my_message(message): print('two') # listen to the first event only @client.listen('on_ready', once=True) async def on_ready(): print('ready!')
Would print one and two in an unspecified order.
- property latency: float¶
Measures latency between a HEARTBEAT and a HEARTBEAT_ACK in seconds. If no websocket is present, this returns
nan, and if no heartbeat has been received yet, this returnsfloat('inf').This could be referred to as the Discord WebSocket protocol latency.
- is_ws_ratelimited()[исходный код]¶
Whether the WebSocket is currently rate limited.
This can be useful to know when deciding whether you should query members using HTTP or via the gateway.
Добавлено в версии 1.6.
- Тип результата:
- property user: ClientUser | None¶
Represents the connected client.
Noneif not logged in.
- property emojis: list[GuildEmoji | AppEmoji]¶
The emojis that the connected client has.
Примечание
This only includes the application’s emojis if cache_app_emojis is
True.
- property guild_emojis: list[GuildEmoji]¶
The
GuildEmojithat the connected client has.
- property app_emojis: list[AppEmoji]¶
The
AppEmojithat the connected client has.Примечание
This is only available if cache_app_emojis is
True.
- property stickers: list[GuildSticker]¶
The stickers that the connected client has.
Добавлено в версии 2.0.
- property cached_messages: Sequence[Message]¶
Read-only list of messages the connected client has cached.
Добавлено в версии 1.1.
- property private_channels: list[PrivateChannel]¶
The private channels that the connected client is participating on.
Примечание
This returns only up to 128 most recent private channels due to an internal working on how Discord deals with private channels.
- property voice_clients: list[VoiceProtocol[Self]]¶
Represents a list of voice connections.
These are usually
VoiceClientinstances.
- property application_id: int | None¶
The client’s application ID.
If this is not passed via
__init__then this is retrieved through the gateway when an event contains the data. Usually afteron_connect()is called.Добавлено в версии 2.0.
- property application_flags: ApplicationFlags¶
The client’s application flags.
Добавлено в версии 2.0.
- is_ready()[исходный код]¶
Specifies if the client’s internal cache is ready for use.
- Тип результата:
- await on_error(event_method, *args, **kwargs)[исходный код]¶
This function is a coroutine.
The default error handler provided by the client.
By default, this prints to
sys.stderrhowever it could be overridden to have a different implementation. Checkon_error()for more details.
- await on_view_error(error, item, interaction)[исходный код]¶
This function is a coroutine.
The default view error handler provided by the client.
This only fires for a view if you did not define its
on_error().- Параметры:
error (
Exception) – The exception that was raised.item (
ViewItem) – The item that the user interacted with.interaction (
Interaction) – The interaction that was received.
- Тип результата:
- await on_modal_error(error, interaction)[исходный код]¶
This function is a coroutine.
The default modal error handler provided by the client. The default implementation prints the traceback to stderr.
This only fires for a modal if you did not define its
on_error().- Параметры:
error (
Exception) – The exception that was raised.interaction (
Interaction) – The interaction that was received.
- Тип результата:
- await before_identify_hook(shard_id, *, initial=False)[исходный код]¶
This function is a coroutine.
A hook that is called before IDENTIFYing a session. This is useful if you wish to have more control over the synchronization of multiple IDENTIFYing clients.
The default implementation sleeps for 5 seconds.
Добавлено в версии 1.4.
- await login(token)[исходный код]¶
This function is a coroutine.
Logs in the client with the specified credentials.
- Параметры:
token (
str) – The authentication token. Do not prefix this token with anything as the library will do it for you.- Исключение:
TypeError – The token was in invalid type.
LoginFailure – The wrong credentials are passed.
HTTPException – An unknown HTTP related error occurred, usually when it isn’t 200 or the known incorrect credentials passing status code.
- Тип результата:
- await connect(*, reconnect=True)[исходный код]¶
This function is a coroutine.
Creates a WebSocket connection and lets the WebSocket listen to messages from Discord. This is a loop that runs the entire event system and miscellaneous aspects of the library. Control is not resumed until the WebSocket connection is terminated.
- Параметры:
reconnect (
bool) – If we should attempt reconnecting, either due to internet failure or a specific failure on Discord’s part. Certain disconnects that lead to bad state will not be handled (such as invalid sharding payloads or bad tokens).- Исключение:
GatewayNotFound – The gateway to connect to Discord is not found. Usually if this is thrown then there is a Discord API outage.
ConnectionClosed – The WebSocket connection has been terminated.
- Тип результата:
- await close()[исходный код]¶
This function is a coroutine.
Closes the connection to Discord.
- Тип результата:
- clear()[исходный код]¶
Clears the internal state of the bot.
After this, the bot can be considered «re-opened», i.e.
is_closed()andis_ready()both returnFalsealong with the bot’s internal cache cleared.- Тип результата:
- await start(token, *, reconnect=True)[исходный код]¶
This function is a coroutine.
- run(*args, **kwargs)[исходный код]¶
A blocking call that abstracts away the event loop initialisation from you.
If you want more control over the event loop then this function should not be used. Use
start()coroutine orconnect()+login().Roughly Equivalent to:
try: loop.run_until_complete(start(*args, **kwargs)) except KeyboardInterrupt: loop.run_until_complete(close()) # cancel all tasks lingering finally: loop.close()
Предупреждение
This function must be the last function to call due to the fact that it is blocking. That means that registration of events or anything being called after this function call will not execute until it returns.
- is_closed()[исходный код]¶
Indicates if the WebSocket connection is closed.
- Тип результата:
- property activity: Activity | Game | CustomActivity | Streaming | Spotify | None¶
The activity being used upon logging in.
- Тип результата:
Optional[
BaseActivity]
- property status: Status¶
The status being used upon logging on to Discord.
- property allowed_mentions: AllowedMentions | None¶
The allowed mention configuration.
Добавлено в версии 1.4.
- await fetch_application(application_id, /)[исходный код]¶
This function is a coroutine. Retrieves a
PartialAppInfofrom an application ID.- Параметры:
application_id (
int) – The application ID to retrieve information from.- Результат:
The application information.
- Тип результата:
- Исключение:
NotFound – An application with this ID does not exist.
HTTPException – Retrieving the application failed.
- get_channel(id, /)[исходный код]¶
Returns a channel or thread with the given ID.
- Параметры:
id (
int) – The ID to search for.- Результат:
The returned channel or
Noneif not found.- Тип результата:
GuildChannel|Thread|PrivateChannel|None
- get_message(id, /)[исходный код]¶
Returns a message the given ID.
This is useful if you have a message_id but don’t want to do an API call to access the message.
- get_partial_messageable(id, *, type=None)[исходный код]¶
Returns a partial messageable with the given channel ID.
This is useful if you have a channel_id but don’t want to do an API call to send messages to it.
Добавлено в версии 2.0.
- Параметры:
- Результат:
The partial messageable
- Тип результата:
- get_stage_instance(id, /)[исходный код]¶
Returns a stage instance with the given stage channel ID.
Добавлено в версии 2.0.
- Параметры:
id (
int) – The ID to search for.- Результат:
The stage instance or
Noneif not found.- Тип результата:
- get_guild(id, /)[исходный код]¶
Returns a guild with the given ID.
- get_user(id, /)[исходный код]¶
Returns a user with the given ID.
- get_emoji(id, /)[исходный код]¶
Returns an emoji with the given ID.
- Параметры:
id (
int) – The ID to search for.- Результат:
The custom emoji or
Noneif not found.- Тип результата:
GuildEmoji|AppEmoji|None
- get_sticker(id, /)[исходный код]¶
Returns a guild sticker with the given ID.
Добавлено в версии 2.0.
Примечание
To retrieve standard stickers, use
fetch_sticker(). orfetch_premium_sticker_packs().- Результат:
The sticker or
Noneif not found.- Тип результата:
- Параметры:
id (
int)
- get_poll(id, /)[исходный код]¶
Returns a poll attached to the given message ID.
- get_all_channels()[исходный код]¶
A generator that retrieves every
abc.GuildChannelthe client can „access“.This is equivalent to:
for guild in client.guilds: for channel in guild.channels: yield channel
Примечание
Just because you receive a
abc.GuildChanneldoes not mean that you can communicate in said channel.abc.GuildChannel.permissions_for()should be used for that.- Yields:
abc.GuildChannel– A channel the client can „access“.
- get_all_members()[исходный код]¶
Returns a generator with every
Memberthe client can see.This is equivalent to:
for guild in client.guilds: for member in guild.members: yield member
- Yields:
Member– A member the client can see.
- await get_or_fetch_user(id, /)[исходный код]¶
This function is a coroutine.
Looks up a user in the user cache or fetches if not found.
- await get_or_fetch(object_type, object_id, default=None)[исходный код]¶
Shortcut method to get data from an object either by returning the cached version, or if it does not exist, attempting to fetch it from the API.
- Параметры:
object_type (
type[TypeVar(_FETCHABLE, bound= VoiceChannel | TextChannel | ForumChannel | StageChannel | CategoryChannel | Thread | Member | User | Guild | Role | GuildEmoji | AppEmoji)]) – Type of object to fetch or get.object_id (
int|None) – ID of object to get. IfNone, returns default if provided, elseNone.default (
TypeVar(_D)) – A default to return instead of raising if fetch fails.self (
Client)
- Результат:
The object if found, or default if provided when not found.
- Тип результата:
TypeVar(_FETCHABLE, bound= VoiceChannel | TextChannel | ForumChannel | StageChannel | CategoryChannel | Thread | Member | User | Guild | Role | GuildEmoji | AppEmoji) |TypeVar(_D) |None- Исключение:
TypeError – Raised when required parameters are missing or invalid types are provided.
InvalidArgument – Raised when an unsupported or incompatible object type is used.
- await wait_until_ready()[исходный код]¶
This function is a coroutine.
Waits until the client’s internal cache is all ready.
- Тип результата:
- wait_for(event, *, check=None, timeout=None)[исходный код]¶
This function is a coroutine.
Waits for a WebSocket event to be dispatched.
This could be used to wait for a user to reply to a message, or to react to a message, or to edit a message in a self-contained way.
The
timeoutparameter is passed ontoasyncio.wait_for(). By default, it does not timeout. Note that this does propagate theasyncio.TimeoutErrorfor you in case of timeout and is provided for ease of use.In case the event returns multiple arguments, a
tuplecontaining those arguments is returned instead. Please check the documentation for a list of events and their parameters.This function returns the first event that meets the requirements.
- Параметры:
event (
str) – The event name, similar to the event reference, but without theon_prefix, to wait for.check (
Callable[...,bool] |None) – A predicate to check what to wait for. The arguments must meet the parameters of the event being waited for.timeout (
float|None) – The number of seconds to wait before timing out and raisingasyncio.TimeoutError.
- Результат:
Returns no arguments, a single argument, or a
tupleof multiple arguments that mirrors the parameters passed in the event reference.- Тип результата:
- Исключение:
asyncio.TimeoutError – Raised if a timeout is provided and reached.
Примеры
Waiting for a user reply:
@client.event async def on_message(message): if message.content.startswith('$greet'): channel = message.channel await channel.send('Say hello!') def check(m): return m.content == 'hello' and m.channel == channel msg = await client.wait_for('message', check=check) await channel.send(f'Hello {msg.author}!')
Waiting for a thumbs up reaction from the message author:
@client.event async def on_message(message): if message.content.startswith('$thumb'): channel = message.channel await channel.send('Send me that 👍 reaction, mate') def check(reaction, user): return user == message.author and str(reaction.emoji) == '👍' try: reaction, user = await client.wait_for('reaction_add', timeout=60.0, check=check) except asyncio.TimeoutError: await channel.send('👎') else: await channel.send('👍')
- add_listener(func, name=...)[исходный код]¶
The non decorator alternative to
listen().- Параметры:
- Исключение:
TypeError – The
funcparameter is not a coroutine function.ValueError – The
name(event name) does not start withon_.
- Тип результата:
Пример
async def on_ready(): pass async def my_message(message): pass client.add_listener(on_ready) client.add_listener(my_message, 'on_message')
- remove_listener(func, name=...)[исходный код]¶
Removes a listener from the pool of listeners.
- await change_presence(*, activity=None, status=None)[исходный код]¶
This function is a coroutine.
Changes the client’s presence.
- Параметры:
activity (
BaseActivity|None) – The activity being done.Noneif no currently active activity is done.status (
Status|None) – Indicates what status to change to. IfNone, thenStatus.onlineis used.
- Исключение:
InvalidArgument – If the
activityparameter is not the proper type.
Пример
game = discord.Game("with the API") await client.change_presence(status=discord.Status.idle, activity=game)
Изменено в версии 2.0: Removed the
afkkeyword-only parameter.
- await fetch_template(code)[исходный код]¶
This function is a coroutine.
Gets a
Templatefrom a discord.new URL or code.- Параметры:
code (
Template|str) – The Discord Template Code or URL (must be a discord.new URL).- Результат:
The template from the URL/code.
- Тип результата:
- Исключение:
NotFound – The template is invalid.
HTTPException – Getting the template failed.
- await fetch_guild(guild_id, /, *, with_counts=True)[исходный код]¶
This function is a coroutine.
Retrieves a
Guildfrom an ID.Примечание
Using this, you will not receive
Guild.channels,Guild.members,Member.activityandMember.voiceperMember.Примечание
This method is an API call. For general usage, consider
get_guild()instead.- Параметры:
guild_id (
int) – The guild’s ID to fetch from.with_counts (
bool) –Whether to include count information in the guild. This fills the
Guild.approximate_member_countandGuild.approximate_presence_countfields.Добавлено в версии 2.0.
- Результат:
The guild from the ID.
- Тип результата:
- Исключение:
Forbidden – You do not have access to the guild.
HTTPException – Getting the guild failed.
- await fetch_stage_instance(channel_id, /)[исходный код]¶
This function is a coroutine.
Gets a
StageInstancefor a stage channel id.Добавлено в версии 2.0.
- Параметры:
channel_id (
int) – The stage channel ID.- Результат:
The stage instance from the stage channel ID.
- Тип результата:
- Исключение:
NotFound – The stage instance or channel could not be found.
HTTPException – Getting the stage instance failed.
- await fetch_invite(url, *, with_counts=True, with_expiration=True, event_id=None)[исходный код]¶
This function is a coroutine.
Gets an
Invitefrom a discord.gg URL or ID.Примечание
If the invite is for a guild you have not joined, the guild and channel attributes of the returned
Invitewill bePartialInviteGuildandPartialInviteChannelrespectively.- Параметры:
url (
Invite|str) – The Discord invite ID or URL (must be a discord.gg URL).with_counts (
bool) – Whether to include count information in the invite. This fills theInvite.approximate_member_countandInvite.approximate_presence_countfields.with_expiration (
bool) –Whether to include the expiration date of the invite. This fills the
Invite.expires_atfield.Добавлено в версии 2.0.
The ID of the scheduled event to be associated with the event.
See
Invite.set_scheduled_event()for more info on event invite linking.Добавлено в версии 2.0.
- Результат:
The invite from the URL/ID.
- Тип результата:
- Исключение:
NotFound – The invite has expired or is invalid.
HTTPException – Getting the invite failed.
- await delete_invite(invite)[исходный код]¶
This function is a coroutine.
Revokes an
Invite, URL, or ID to an invite.You must have the
manage_channelspermission in the associated guild to do this.
- await fetch_widget(guild_id, /)[исходный код]¶
This function is a coroutine.
Gets a
Widgetfrom a guild ID.Примечание
The guild must have the widget enabled to get this information.
- Параметры:
guild_id (
int) – The ID of the guild.- Результат:
The guild’s widget.
- Тип результата:
- Исключение:
Forbidden – The widget for this guild is disabled.
HTTPException – Retrieving the widget failed.
- await application_info()[исходный код]¶
This function is a coroutine.
Retrieves the bot’s application information.
- Результат:
The bot’s application information.
- Тип результата:
- Исключение:
HTTPException – Retrieving the information failed somehow.
- await fetch_user(user_id, /)[исходный код]¶
This function is a coroutine.
Retrieves a
Userbased 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.Примечание
This method is an API call. If you have
discord.Intents.membersand member cache enabled, considerget_user()instead.- Параметры:
user_id (
int) – The user’s ID to fetch from.- Результат:
The user you requested.
- Тип результата:
- Исключение:
NotFound – A user with this ID does not exist.
HTTPException – Fetching the user failed.
- await fetch_channel(channel_id, /)[исходный код]¶
This function is a coroutine.
Retrieves a
abc.GuildChannel,abc.PrivateChannel, orThreadwith the specified ID.Примечание
This method is an API call. For general usage, consider
get_channel()instead.Добавлено в версии 1.2.
- Результат:
The channel from the ID.
- Тип результата:
- Исключение:
InvalidData – An unknown channel type was received from Discord.
HTTPException – Retrieving the channel failed.
NotFound – Invalid Channel ID.
Forbidden – You do not have permission to fetch this channel.
- Параметры:
channel_id (
int)
- await fetch_webhook(webhook_id, /)[исходный код]¶
This function is a coroutine.
Retrieves a
Webhookwith the specified ID.- Результат:
The webhook you requested.
- Тип результата:
- Исключение:
HTTPException – Retrieving the webhook failed.
NotFound – Invalid webhook ID.
Forbidden – You do not have permission to fetch this webhook.
- Параметры:
webhook_id (
int)
- await fetch_sticker(sticker_id, /)[исходный код]¶
This function is a coroutine.
Retrieves a
Stickerwith the specified ID.Добавлено в версии 2.0.
- Результат:
The sticker you requested.
- Тип результата:
- Исключение:
HTTPException – Retrieving the sticker failed.
NotFound – Invalid sticker ID.
- Параметры:
sticker_id (
int)
This function is a coroutine.
Retrieves all available premium sticker packs.
Добавлено в версии 2.0.
- Результат:
All available premium sticker packs.
- Тип результата:
- Исключение:
HTTPException – Retrieving the sticker packs failed.
- await create_dm(user)[исходный код]¶
This function is a coroutine.
Creates a
DMChannelwith this user.This should be rarely called, as this is done transparently for most people.
Добавлено в версии 2.0.
- add_view(view, *, message_id=None)[исходный код]¶
Registers a
BaseViewfor persistent listening.This method should be used for when a view is comprised of components that last longer than the lifecycle of the program.
Добавлено в версии 2.0.
- Параметры:
- Исключение:
TypeError – A view was not passed.
ValueError – The view is not persistent. A persistent view has no timeout and all their components have an explicitly provided
custom_id.
- Тип результата:
- property persistent_views: Sequence[BaseView]¶
A sequence of persistent views added to the client.
Добавлено в версии 2.0.
- await fetch_role_connection_metadata_records()[исходный код]¶
This function is a coroutine.
Fetches the bot’s role connection metadata records.
Добавлено в версии 2.4.
- Результат:
The bot’s role connection metadata records.
- Тип результата:
- await update_role_connection_metadata_records(*role_connection_metadata)[исходный код]¶
This function is a coroutine.
Updates the bot’s role connection metadata records.
Добавлено в версии 2.4.
- Параметры:
*role_connection_metadata (
ApplicationRoleConnectionMetadata) – The new metadata records to send to Discord.- Результат:
The updated role connection metadata records.
- Тип результата:
- await fetch_skus()[исходный код]¶
This function is a coroutine.
Fetches the bot’s SKUs.
Добавлено в версии 2.5.
- entitlements(user=None, skus=None, before=None, after=None, limit=100, guild=None, exclude_ended=False)[исходный код]¶
Returns an
AsyncIteratorthat enables fetching the application’s entitlements.Добавлено в версии 2.6.
- Параметры:
user (
Snowflake|None) – Limit the fetched entitlements to entitlements owned by this user.skus (
list[Snowflake] |None) – Limit the fetched entitlements to entitlements that are for these SKUs.before (
Snowflake|datetime|None) – Retrieves guilds before this date or object. If a datetime is provided, it is recommended to use a UTC-aware datetime. If the datetime is naive, it is assumed to be local time.after (
Snowflake|datetime|None) – Retrieve guilds after this date or object. If a datetime is provided, it is recommended to use a UTC-aware datetime. If the datetime is naive, it is assumed to be local time.limit (
int|None) – The number of entitlements to retrieve. IfNone, retrieves every entitlement, which may be slow. Defaults to100.guild (
Snowflake|None) – Limit the fetched entitlements to entitlements owned by this guild.exclude_ended (
bool) – Whether to limit the fetched entitlements to those that have not ended. Defaults toFalse.
- Yields:
Entitlement– The application’s entitlements.- Исключение:
HTTPException – Retrieving the entitlements failed.
- Тип результата:
EntitlementIterator
Примеры
Usage
async for entitlement in client.entitlements(): print(entitlement.user_id)
Flattening into a list
entitlements = await user.entitlements().flatten()
All parameters are optional.
- property store_url: str¶
The URL that leads to the application’s store page for monetization.
Добавлено в версии 2.6.
- Type:
- await fetch_emojis()[исходный код]¶
This function is a coroutine.
Retrieves all custom
AppEmojis from the application.- Исключение:
HTTPException – An error occurred fetching the emojis.
- Результат:
The retrieved emojis.
- Тип результата:
- await fetch_emoji(emoji_id, /)[исходный код]¶
This function is a coroutine.
Retrieves a custom
AppEmojifrom the application.- Параметры:
emoji_id (
int) – The emoji’s ID.- Результат:
The retrieved emoji.
- Тип результата:
- Исключение:
NotFound – The emoji requested could not be found.
HTTPException – An error occurred fetching the emoji.
- await create_emoji(*, name, image)[исходный код]¶
This function is a coroutine.
Creates a custom
AppEmojifor the application.There is currently a limit of 2000 emojis per application.
- Параметры:
name (
str) – The emoji name. Must be at least 2 characters.image (
bytes) – The bytes-like object representing the image data to use. Only JPG, PNG and GIF images are supported.
- Исключение:
HTTPException – An error occurred creating an emoji.
- Результат:
The created emoji.
- Тип результата:
- await delete_emoji(emoji)[исходный код]¶
This function is a coroutine.
Deletes the custom
AppEmojifrom the application.- Параметры:
emoji (
Snowflake) – The emoji you are deleting.- Исключение:
HTTPException – An error occurred deleting the emoji.
- Тип результата:
- get_sound(sound_id)[исходный код]¶
Gets a
Soundfrom the bot’s sound cache.Добавлено в версии 2.7.
- Параметры:
sound_id (
int) – The ID of the sound to get.- Результат:
The sound with the given ID.
- Тип результата:
- property sounds: list[SoundboardSound]¶
A list of all the sounds the bot can see.
Добавлено в версии 2.7.
- await fetch_default_sounds()[исходный код]¶
This function is a coroutine.
Fetches the bot’s default sounds.
Добавлено в версии 2.7.
- Результат:
The bot’s default sounds.
- Тип результата:
- asyncchange_presence
- asyncclose
- asyncconnect
- defget_shard
- defis_ws_ratelimited
- class discord.AutoShardedClient(*args, loop=None, **kwargs)[исходный код]¶
A client similar to
Clientexcept it handles the complications of sharding for the user into a more manageable and transparent single process bot.When using this client, you will be able to use it as-if it was a regular
Clientwith a single shard when implementation wise internally it is split up into multiple shards. This allows you to not have to deal with IPC or other complicated infrastructure.It is recommended to use this client only if you have surpassed at least 1000 guilds.
If no
shard_countis provided, then the library will use the Bot Gateway endpoint call to figure out how many shards to use.If a
shard_idsparameter is given, then those shard IDs will be used to launch the internal shards. Note thatshard_countmust be provided if this is used. By default, when omitted, the client will launch shards from 0 toshard_count - 1.- Параметры:
args (
Any)loop (
AbstractEventLoop|None)kwargs (
Any)
- property latency: float¶
Measures latency between a HEARTBEAT and a HEARTBEAT_ACK in seconds.
This operates similarly to
Client.latency()except it uses the average latency of every shard’s latency. To get a list of shard latency, check thelatenciesproperty. Returnsnanif there are no shards ready.
- property latencies: list[tuple[int, float]]¶
A list of latencies between a HEARTBEAT and a HEARTBEAT_ACK in seconds.
This returns a list of tuples with elements
(shard_id, latency).
- get_shard(shard_id)[исходный код]¶
Gets the shard information at a given shard ID or
Noneif not found.
- property shards: dict[int, ShardInfo]¶
Returns a mapping of shard IDs to their respective info object.
- await connect(*, reconnect=True)[исходный код]¶
This function is a coroutine.
Creates a WebSocket connection and lets the WebSocket listen to messages from Discord. This is a loop that runs the entire event system and miscellaneous aspects of the library. Control is not resumed until the WebSocket connection is terminated.
- Параметры:
reconnect (
bool) – If we should attempt reconnecting, either due to internet failure or a specific failure on Discord’s part. Certain disconnects that lead to bad state will not be handled (such as invalid sharding payloads or bad tokens).- Исключение:
GatewayNotFound – The gateway to connect to Discord is not found. Usually if this is thrown then there is a Discord API outage.
ConnectionClosed – The WebSocket connection has been terminated.
- Тип результата:
- await close()[исходный код]¶
This function is a coroutine.
Closes the connection to Discord.
- Тип результата:
- await change_presence(*, activity=None, status=None, shard_id=None)[исходный код]¶
This function is a coroutine.
Changes the client’s presence.
Example:
game = discord.Game("with the API") await client.change_presence(status=discord.Status.idle, activity=game)
Изменено в версии 2.0: Removed the
afkkeyword-only parameter.- Параметры:
activity (
BaseActivity|None) – The activity being done.Noneif no currently active activity is done.status (
Status|None) – Indicates what status to change to. IfNone, thenStatus.onlineis used.shard_id (
int) – The shard_id to change the presence to. If not specified orNone, then it will change the presence of every shard the bot can see.
- Исключение:
InvalidArgument – If the
activityparameter is not of proper type.- Тип результата:
- is_ws_ratelimited()[исходный код]¶
Whether the websocket is currently rate limited.
This can be useful to know when deciding whether you should query members using HTTP or via the gateway.
This implementation checks if any of the shards are rate limited. For more granular control, consider
ShardInfo.is_ws_ratelimited().Добавлено в версии 1.6.
- Тип результата: