Skip to main content

PyPI PyPI - Python Version PyPI - Downloads PyPI - License

discord-ext-fslash

This library registers commands from discord.py command framework as slash commands in discord.py as well by doing a monkey patch.

WARNING
Again, the way this library works is a monkey patch and is not without the possibility of unexpected behavior.

Features

It supports both the cooldown and other decorators of the command framework and the describe decorator of the app command to work.
The converter will automatically replace to the Transformer of slash version.
It can also automatically convert invalid annotations to str and register overnested group commands by accepting subcommands from command arguments.
Even if you have too many commands and reach the maximum number of can be registered slash commands, we have a way to deal with it. (An example is below)
If you are planning to create a bot, we recommend using HybridCommand, which comes standard in discord.py.

Installation

$ pip install discord-ext-fslash

Example

Normal

The following is an example of creating a command called ping that works with both slash and message commands.

from discord.ext.fslash import extend_force_slash

...

bot = extend_force_slash(commands.Bot(command_prefix="fs!", intents=intents))

@bot.command()
async def ping(ctx):
    await ctx.reply("pong")

Split Commands by Categories

Even if there are too many commands in the command framework to register in the slash, it provides a way to implement them all by making only the commands in the slash subcommands of the group command.
The following example creates the group commands server-tool and entertainment and sets up the commands in the command framework as subcommands of those commands.

from discord.ext.fslash import extend_force_slash

...

bot = extend_force_slash(
    commands.Bot(command_prefix="fs!", intents=intents),
    first_groups=(
        discord.app_commands.Group(name="server-tool"),
        discord.app_commands.Group(name="entertainment")
    )
)

@bot.command(description="Ban member", fsparent="server-tool")
@commands.has_guild_permissions(ban_members=True)
@commands.bot_has_guild_permissions(ban_members=True)
@commands.cooldown(1, 10, commands.BucketType.guild)
@discord.app_commands.describe(member="Member to be banned")
async def ban(ctx, *, member: discord.Member):
    # `/server-tool ban member: ...` or `fs!ban ...` to run this command.
    await ctx.typing()
    await member.ban()
    await ctx.reply("pong")

@bot.command(description="Make wow", fsparent="entertainment")
async def wow(ctx):
    # `/entertainment wow` or `fs!wow` to run this command.
    await ctx.reply("wow")

Documentation

There are features to improve compatibility for greater convenience.
See the documentation for details.

Contributing

Issues and PullRequests should be brief in content.
The code should be similar in style to the current code.
Please limit all text to 100 characters per line if possible, except for comments.
For comments, please limit to 200 characters per line if possible.

License

MIT

Metadata

Release files for discord-ext-fslash 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for discord-ext-fslash 0.2.1
File Size Uploaded
discord-ext-fslash-0.2.1.tar.gz 13.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for discord-ext-fslash 0.2.1
File Interpreter ABI Platform
discord_ext_fslash-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 27.2 kB

Release files / discord-ext-fslash-0.2.1.tar.gz

Download URL discord-ext-fslash-0.2.1.tar.gz
Size 13.8 kB
Tags Source
SHA-256 checksum
How to use checksums
1df7af553f3bc68f06f51280c13ac4e0c577387ad2376d6acb24e8e0043b7c6a
BLAKE2b-256 checksum
How to use checksums
c7058a489f0ac4664bdaf93a49dd3cd18ade15d2775bb06da3c8bb126a4fdd5d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.15

Release files / discord_ext_fslash-0.2.1-py3-none-any.whl

Download URL discord_ext_fslash-0.2.1-py3-none-any.whl
Size 13.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
220cca724e708ab6f470d1313c745a8073a739ac599c0d94a02cb6736930c0bf
BLAKE2b-256 checksum
How to use checksums
4ebe4947769d5777c7f2a5678c4a5966b7a9342d235b3b7fbb246ec7becd1d95
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.15

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.26

2 release files

0.1.25

2 release files

0.1.24

2 release files

0.1.23

2 release files

0.1.22

2 release files

0.1.19

2 release files

0.1.18

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page