API Reference

The reference manual that follows details the API of Pycord's bridge command extension module.

注釈

Using the prefixed command version (which uses the ext.commands extension) of bridge commands in guilds requires Intents.message_context to be enabled.

Bots

Bot

class discord.ext.bridge.Bot(command_prefix=<function when_mentioned>, help_command=..., **options)[ソース]

Represents a discord bot, with support for cross-compatibility between command types.

This class is a subclass of ext.commands.Bot and as a result anything that you can do with a ext.commands.Bot you can do with this bot.

Added in version 2.0.

パラメータ:
add_bridge_command(command)

Takes a BridgeCommand and adds both a slash and traditional (prefix-based) version of the command to the bot.

パラメータ:

command (BridgeCommand)

@bridge_command

A shortcut decorator that invokes bridge_command() and adds it to the internal command list via add_bridge_command().

戻り値:

A decorator that converts the provided method into an BridgeCommand, adds both a slash and traditional (prefix-based) version of the command to the bot, and returns the BridgeCommand.

戻り値の型:

Callable[..., BridgeCommand]

@bridge_group

A decorator that is used to wrap a function as a bridge command group.

パラメータ:

kwargs (Optional[Dict[str, Any]]) -- Keyword arguments that are directly passed to the respective command constructors. (SlashCommandGroup and ext.commands.Group)

AutoShardedBot

class discord.ext.bridge.AutoShardedBot(command_prefix=<function when_mentioned>, help_command=..., **options)[ソース]

This is similar to Bot except that it is inherited from ext.commands.AutoShardedBot instead.

Added in version 2.0.

パラメータ:

Event Reference

These events function similar to the regular events, except they are custom to the bridge extension module.

discord.ext.bridge.on_bridge_command_error(ctx, error)

An error handler that is called when an error is raised inside a command either through user input error, check failure, or an error in your own code.

パラメータ:
  • ctx (Context) -- The invocation context.

  • error (CommandError derived) -- The error that was raised.

discord.ext.bridge.on_bridge_command(ctx)

An event that is called when a command is found and is about to be invoked.

This event is called regardless of whether the command itself succeeds via error or completes.

パラメータ:

ctx (Context) -- The invocation context.

discord.ext.bridge.on_bridge_command_completion(ctx)

An event that is called when a command has completed its invocation.

This event is called only if the command succeeded, i.e. all checks have passed and users input them correctly.

パラメータ:

ctx (Context) -- The invocation context.

Commands

BridgeCommand

class discord.ext.bridge.BridgeCommand(callback, **kwargs)[ソース]

Compatibility class between prefixed-based commands and slash commands.

パラメータ:
  • callback (Callable[[BridgeContext, ...], Awaitable[Any]]) -- The callback to invoke when the command is executed. The first argument will be a BridgeContext, and any additional arguments will be passed to the callback. This callback must be a coroutine.

  • parent (Optional[BridgeCommandGroup]:) -- Parent of the BridgeCommand.

  • kwargs (Optional[Dict[str, Any]]) -- Keyword arguments that are directly passed to the respective command constructors. (SlashCommand and ext.commands.Command)

slash_variant

The slash command version of this bridge command.

Type:

BridgeSlashCommand

ext_variant

The prefix-based version of this bridge command.

Type:

BridgeExtCommand

property name_localizations: dict[str, str] | None
Returns name_localizations from slash_variant

You can edit/set name_localizations directly with

bridge_command.name_localizations["en-UK"] = ...  # or any other locale
# or
bridge_command.name_localizations = {"en-UK": ..., "fr-FR": ...}
property description_localizations: dict[str, str] | None
Returns description_localizations from slash_variant

You can edit/set description_localizations directly with

bridge_command.description_localizations["en-UK"] = ...  # or any other locale
# or
bridge_command.description_localizations = {"en-UK": ..., "fr-FR": ...}
add_to(bot)[ソース]

Adds the command to a bot. This method is inherited by BridgeCommandGroup.

パラメータ:

bot (Bot) -- The bot to add the command to.

戻り値の型:

None

error(coro)[ソース]

A decorator that registers a coroutine as a local error handler.

This error handler is limited to the command it is defined to. However, higher scope handlers (per-cog and global) are still invoked afterwards as a catch-all. This handler also functions as the handler for both the prefixed and slash versions of the command.

This error handler takes two parameters, a BridgeContext and a DiscordException.

パラメータ:

coro (coroutine) -- The coroutine to register as the local error handler.

例外:

TypeError -- The coroutine passed is not actually a coroutine.

before_invoke(coro)[ソース]

A decorator that registers a coroutine as a pre-invoke hook.

This hook is called directly before the command is called, making it useful for any sort of set up required. This hook is called for both the prefixed and slash versions of the command.

This pre-invoke hook takes a sole parameter, a BridgeContext.

パラメータ:

coro (coroutine) -- The coroutine to register as the pre-invoke hook.

例外:

TypeError -- The coroutine passed is not actually a coroutine.

after_invoke(coro)[ソース]

A decorator that registers a coroutine as a post-invoke hook.

This hook is called directly after the command is called, making it useful for any sort of clean up required. This hook is called for both the prefixed and slash versions of the command.

This post-invoke hook takes a sole parameter, a BridgeContext.

パラメータ:

coro (coroutine) -- The coroutine to register as the post-invoke hook.

例外:

TypeError -- The coroutine passed is not actually a coroutine.

BridgeCommandGroup

class discord.ext.bridge.BridgeCommandGroup(callback, *args, **kwargs)[ソース]

Compatibility class between prefixed-based commands and slash commands.

パラメータ:
  • callback (Callable[[BridgeContext, ...], Awaitable[Any]]) -- The callback to invoke when the command is executed. The first argument will be a BridgeContext, and any additional arguments will be passed to the callback. This callback must be a coroutine.

  • kwargs (Optional[Dict[str, Any]]) -- Keyword arguments that are directly passed to the respective command constructors. (SlashCommand and ext.commands.Command)

slash_variant

The slash command version of this command group.

Type:

SlashCommandGroup

ext_variant

The prefix-based version of this command group.

Type:

ext.commands.Group

subcommands

List of bridge commands in this group

Type:

List[BridgeCommand]

mapped

If map_to() is used, the mapped slash command.

Type:

Optional[SlashCommand]

walk_commands()[ソース]

An iterator that recursively walks through all the bridge group's subcommands.

列挙:

BridgeCommand -- A bridge command of this bridge group.

戻り値の型:

Iterator[BridgeCommand]

command(*args, **kwargs)[ソース]

A decorator to register a function as a subcommand.

パラメータ:

kwargs (Optional[Dict[str, Any]]) -- Keyword arguments that are directly passed to the respective command constructors. (SlashCommand and ext.commands.Command)

Decorators

@bridge.bridge_command

A decorator that is used to wrap a function as a bridge command.

パラメータ:

kwargs (Optional[Dict[str, Any]]) -- Keyword arguments that are directly passed to the respective command constructors. (SlashCommand and ext.commands.Command)

@bridge.bridge_group

A decorator that is used to wrap a function as a bridge command group.

パラメータ:

kwargs (Optional[Dict[str, Any]]) -- Keyword arguments that are directly passed to the respective command constructors (SlashCommandGroup and ext.commands.Group).

@bridge.map_to

To be used with bridge command groups, map the main command to a slash subcommand.

パラメータ:
  • name (str) -- The new name of the mapped command.

  • description (Optional[str]) -- The new description of the mapped command.

サンプル

@bot.bridge_group()
@bridge.map_to("show")
async def config(ctx: BridgeContext):
    ...

@config.command()
async def toggle(ctx: BridgeContext):
    ...

Prefixed commands will not be affected, but slash commands will appear as:

/config show
/config toggle
@bridge.guild_only

Intended to work with ApplicationCommand and BridgeCommand, adds a check() that locks the command to only run in guilds, and also registers the command as guild only client-side (on discord).

Basically a utility function that wraps both discord.ext.commands.guild_only() and discord.commands.guild_only().

@bridge.is_nsfw

Intended to work with ApplicationCommand and BridgeCommand, adds a check() that locks the command to only run in nsfw contexts, and also registers the command as nsfw client-side (on discord).

Basically a utility function that wraps both discord.ext.commands.is_nsfw() and discord.commands.is_nsfw().

警告

In DMs, the prefixed-based command will always run as the user's privacy settings cannot be checked directly.

@bridge.has_permissions

Intended to work with SlashCommand and BridgeCommand, adds a check() that locks the command to be run by people with certain permissions inside guilds, and also registers the command as locked behind said permissions.

Basically a utility function that wraps both discord.ext.commands.has_permissions() and discord.commands.default_permissions().

パラメータ:

**perms (bool) -- An argument list of permissions to check for.

Command Subclasses

class discord.ext.bridge.BridgeExtCommand(*args: Any, **kwargs: Any)[ソース]

A subclass of ext.commands.Command that is used for bridge commands.

class discord.ext.bridge.BridgeExtGroup(*args: Any, **kwargs: Any)[ソース]

A subclass of ext.commands.Group that is used for bridge commands.

class discord.ext.bridge.BridgeSlashCommand(*args, **kwargs)[ソース]

A subclass of SlashCommand that is used for bridge commands.

class discord.ext.bridge.BridgeSlashGroup(*args, **kwargs)[ソース]

A subclass of SlashCommandGroup that is used for bridge commands.

Context

BridgeContext

Attributes
Methods
class discord.ext.bridge.BridgeContext[ソース]

The base context class for compatibility commands. This class is an abstract base class (also known as an abc), which is subclassed by BridgeExtContext and BridgeApplicationContext. The methods in this class are meant to give parity between the two contexts, while still allowing for all of their functionality.

When this is passed to a command, it will either be passed as BridgeExtContext, or BridgeApplicationContext. Since they are two separate classes, it's easy to use the BridgeContext.is_app attribute. to make different functionality for each context. For example, if you want to respond to a command with the command type that it was invoked with, you can do the following:

@bot.bridge_command()
async def example(ctx: BridgeContext):
    if ctx.is_app:
        command_type = "Application command"
    else:
        command_type = "Traditional (prefix-based) command"
    await ctx.send(f"This command was invoked with a(n) {command_type}.")

Added in version 2.0.

invoke(**kwds)

Helper for @overload to raise when called.

await respond(*args, **kwargs)[ソース]

This function is a coroutine.

Responds to the command with the respective response type to the current context. In BridgeExtContext, this will be reply() while in BridgeApplicationContext, this will be respond().

戻り値の型:

Interaction | WebhookMessage | Message

await reply(*args, **kwargs)[ソース]

This function is a coroutine.

Alias for respond().

戻り値の型:

Interaction | WebhookMessage | Message

await defer(*args, **kwargs)[ソース]

This function is a coroutine.

Defers the command with the respective approach to the current context. In BridgeExtContext, this will be trigger_typing() while in BridgeApplicationContext, this will be defer.

注釈

There is no trigger_typing alias for this method. trigger_typing will always provide the same functionality across contexts.

戻り値の型:

None

await edit(*args, **kwargs)[ソース]

This function is a coroutine.

Edits the original response message with the respective approach to the current context. In BridgeExtContext, this will have a custom approach where respond() caches the message to be edited here. In BridgeApplicationContext, this will be edit.

戻り値の型:

InteractionMessage | Message

property is_app: bool

Whether the context is an BridgeApplicationContext or not.

BridgeContext Subclasses

class discord.ext.bridge.BridgeApplicationContext(*args, **kwargs)[ソース]

The application context class for compatibility commands. This class is a subclass of BridgeContext and ApplicationContext. This class is meant to be used with BridgeCommand.

Added in version 2.0.

Methods
class discord.ext.bridge.BridgeExtContext(*args, **kwargs)[ソース]

The ext.commands context class for compatibility commands. This class is a subclass of BridgeContext and Context. This class is meant to be used with BridgeCommand.

Added in version 2.0.

await delete(*, delay=None, reason=None)[ソース]

This function is a coroutine.

Deletes the original response message, if it exists.

パラメータ:
  • delay (float | None) -- If provided, the number of seconds to wait before deleting the message.

  • reason (str | None) -- The reason for deleting the message. Shows up on the audit log.

戻り値の型:

None

discord.ext.bridge.Context

Alias of typing.Union [ BridgeExtContext, BridgeApplicationContext ] for typing convenience. BridgeExtContext | :py:class:`~discord.ext.bridge.context.BridgeApplicationContext`の別名です。

Options

Shortcut Decorators

@discord.ext.bridge.bridge_option(name, input_type=None, **kwargs)[ソース]

A decorator that can be used instead of typehinting BridgeOption.

Added in version 2.6.

discord.ext.bridge.parameter_name

The name of the target function parameter this option is mapped to. This allows you to have a separate UI name and parameter name.

Type:

str

Objects

Methods
class discord.ext.bridge.BridgeOption(input_type, *args, **kwargs)[ソース]

A subclass of discord.Option which represents a selectable slash command option and a prefixed command argument for bridge commands.

await convert(ctx, argument)[ソース]

This function is a coroutine.

The method to override to do conversion logic.

If an error is found while converting, it is recommended to raise a CommandError derived exception as it will properly propagate to the error handlers.

パラメータ:
  • ctx (Context) -- The invocation context that the argument is being used in.

  • argument (str) -- The argument that is being converted.

例外:
  • .CommandError -- A generic exception occurred when converting the argument.

  • .BadArgument -- The converter failed to convert the argument.

戻り値の型:

Any