https://github.com/viral32111/slashcommands
A wrapper for the Discord Slash Commands API, to be used with discord.py.
https://github.com/viral32111/slashcommands
discord module python wrapper
Last synced: 20 days ago
JSON representation
A wrapper for the Discord Slash Commands API, to be used with discord.py.
- Host: GitHub
- URL: https://github.com/viral32111/slashcommands
- Owner: viral32111
- License: agpl-3.0
- Created: 2021-03-18T23:19:13.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2022-01-01T10:55:51.000Z (over 3 years ago)
- Last Synced: 2025-02-14T21:27:04.614Z (2 months ago)
- Topics: discord, module, python, wrapper
- Language: Python
- Homepage: https://discord.com/developers/docs/interactions/slash-commands
- Size: 44.9 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE.txt
Awesome Lists containing this project
README
# Slash Commands
This is a wrapper around the [Discord Slash Commands API](https://discord.com/developers/docs/interactions/slash-commands), to be used with [discord.py](https://github.com/Rapptz/discord.py).
## Installation
The best way to install this is by running `pip install git+https://github.com/viral32111/slashcommands` (you must use the GitHub link because this package is not published on PyPI).
Alternatively, you can manually install this by [downloading the latest release](https://github.com/viral32111/slashcommands/releases/latest) (or cloning this repository) then running `pip install .` while in the directory.
## Example
```python
# Import modules
import discord, slashcommands, asyncio# Create the client
client = discord.Client()
print( "Loading..." )# Create a test command
@slashcommands.new( "A simple test command to check if everything works." )
async def test( interaction ):
message = await interaction.respond( f"This is a test, { interaction.user.username }!" )
await message.followup( "Do you like my reply @everyone?", mentions = discord.AllowedMentions.none() )# Create a sleep command
@slashcommands.new( "Another test command for deferred responses.", options = [ slashcommands.option(
type = slashcommands.option.type.number,
name = "time",
description = "How long to sleep for.",
required = True
) ] )
async def sleep( interaction ):
message = await interaction.think()
await asyncio.sleep( int( interaction.arguments[ "time" ] ) )
await message.edit( "Finished!" )# Create a warn command
@slashcommands.new( "Warn a member with a provided reason.", options = [ slashcommands.option(
type = slashcommands.option.type.user,
name = "member",
description = "The member to warn.",
required = True
), slashcommands.option(
type = slashcommands.option.type.string,
name = "reason",
description = "Why you are warning this member.",
required = True
) ] )
async def warn( interaction ):
await interaction.respond( f"You warned <@{ interaction.arguments[ 'member' ] }> for { interaction.arguments[ 'reason' ] }.", hidden = True )# Runs when we're ready
@client.event
async def on_ready():
print( "Ready!" )# Runs when we receive a gateway event
@client.event
async def on_socket_response( payload ):
await slashcommands.run( payload, client )# Start the client
client.run( "BOT-TOKEN-HERE" )
```## License
Copyright (C) 2021-2022 [viral32111](https://viral32111.com).
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.You should have received a copy of the GNU Affero General Public License
along with this program. If not, see https://www.gnu.org/licenses.