A python wrapper for discord slash commands.
Project description
dislash.py
An extending library for discord.py that allows to build awesome slash-commands.
📄 Slash commands is a new discord API feature that allows to build user-friendly commands. Once "/" is pressed on keyboard, the entire list of slash-commands pops up. The list includes hints and short descriptions which make exploring your bot much easier.
Installation
Run any of these commands in terminal:
pip install dislash.py
python -m pip install dislash.py
Features
- Supports automatic registration of slash-commands
- Supports manual and automatic sharding
- Convenient decorator-based interface
- OOP-based slash-command constructor
Examples
💡 This library requires discord.py.
Creating a slash-command
In this example registration is automatic. If you want to register slash-commands separately, see examples below.
from discord.ext import commands
from dislash import slash_commands
from dislash.interactions import *
client = commands.Bot(command_prefix="!")
slash = slash_commands.SlashClient(client)
test_guilds = [12345, 98765]
@slash.command(
name="hello", # Defaults to function name
description="Says hello",
guild_ids=test_guilds # If not specified, the command is registered globally
# Global registration takes up to 1 hour
)
async def hello(inter):
await inter.reply("Hello!")
client.run("BOT_TOKEN")
Only registering a slash-command
This example only shows how to register a slash-command.
from discord.ext import commands
from dislash import slash_commands
from dislash.interactions import *
client = commands.Bot(command_prefix="!")
slash = slash_commands.SlashClient(client)
test_guild_ID = 12345
@slash.event
async def on_ready():
sc = SlashCommand(
name="random",
description="Returns a random number from the given range",
options=[
Option(
name="start",
description="Enter a number",
required=True,
type=Type.INTEGER
),
Option(
name="end",
description="Enter a number",
required=True,
type=Type.INTEGER
)
]
)
await slash.register_global_slash_command(sc)
# Discord API uploads GLOBAL commands for more than 1 hour
# That's why I highly recommend .register_guild_slash_command for testing:
await slash.register_guild_slash_command(test_guild_id, sc)
client.run("BOT_TOKEN")
You should register a slash-command only once in order to make it work. You can always edit it if you want, using .edit_global_slash_command / .edit_guild_slash_command methods.
Only responding to a slash-command
It's assumed that you've already registered the command.
from random import randint
from discord.ext import commands
from dislash import slash_commands
from dislash.interactions import *
client = commands.Bot(command_prefix="!")
slash = slash_commands.SlashClient(client)
@slash.command()
async def random(interaction):
# interaction is instance of `interactions.Interaction`
# It's pretty much the same as "ctx" from discord.py
# except <message> attribute is replaced by <data>
a = interaction.get('start')
b = interaction.get('end')
if b < a: a, b = b, a
await interaction.reply(randint(a, b))
client.run("BOT_TOKEN")
Links
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dislash.py-0.5.5.tar.gz.
File metadata
- Download URL: dislash.py-0.5.5.tar.gz
- Upload date:
- Size: 21.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b3769f4271eda61d87953d39876a1345351a936129f4542ce94e10a0c8137bcc
|
|
| MD5 |
2404e27eb823a2ba9ab03e30d2448f4a
|
|
| BLAKE2b-256 |
91cf62b16f88d79668fb05afcbc409712fd579843cf786e3fb1dbfce698951f5
|
File details
Details for the file dislash.py-0.5.5-py3-none-any.whl.
File metadata
- Download URL: dislash.py-0.5.5-py3-none-any.whl
- Upload date:
- Size: 34.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5aa578ea184cc3d299d145f64cb2a3a3db139d7015dd4a9c33ba95d662e16f72
|
|
| MD5 |
5a49555f4078cd8f6b02f29a00e3ff57
|
|
| BLAKE2b-256 |
1885de260da679594b369f9a9469a7899f939f86f75a910be811715d2f3f19d4
|