Perpustakaan ini tidak lagi dipertahankan demi Disnake . Disnake adalah versi terbaru dari discord.py dengan fitur API terbaru yang diimplementasikan. Sintaks untuk perintah slash sangat nyaman sehingga kami sangat menyarankan untuk menggunakan Disnake jika Anda berencana untuk beralih ke perintah slash sebelum April 2022.
Jika Anda memiliki pertanyaan, bergabunglah dengan server Discord kami
Perpustakaan yang diperluas untuk discord.py yang memungkinkan untuk membangun komponen pesan yang luar biasa dan perintah slash.
Karena Discord.py tidak akan lagi tetap up to date, kami memutuskan untuk membuat garpu: Disnake . Ini memiliki semua fitur perintah aplikasi DPY 2.0 +.
Jalankan salah satu perintah ini di terminal:
pip install dislash.py
python -m pip install dislash.py
Perpustakaan ini membutuhkan discord.py .
from discord . ext import commands
from dislash import InteractionClient
bot = commands . Bot ( command_prefix = "!" )
inter_client = InteractionClient ( bot , test_guilds = [ 12345 , 98765 ])
# If 'test_guilds' param isn't specified, the commands are registered globally.
# Global registration takes up to 1 hour.
@ inter_client . slash_command (
name = "hello" , # Defaults to the function name
description = "Says hello" ,
guild_ids = test_guilds
)
async def hello ( inter ):
await inter . reply ( "Hello!" )
bot . run ( "BOT_TOKEN" )Contoh ini menunjukkan cara mengirim pesan dengan tombol.
from discord . ext import commands
from dislash import InteractionClient , ActionRow , Button , ButtonStyle
bot = commands . Bot ( command_prefix = "!" )
inter_client = InteractionClient ( bot )
@ bot . command ()
async def test ( ctx ):
# Make a row of buttons
row_of_buttons = ActionRow (
Button (
style = ButtonStyle . green ,
label = "Green button" ,
custom_id = "green"
),
Button (
style = ButtonStyle . red ,
label = "Red button" ,
custom_id = "red"
)
)
# Send a message with buttons
msg = await ctx . send (
"This message has buttons!" ,
components = [ row_of_buttons ]
)
# Wait for someone to click on them
def check ( inter ):
return inter . message . id == msg . id
inter = await ctx . wait_for_button_click ( check )
# Send what you received
button_text = inter . clicked_button . label
await inter . reply ( f"Button: { button_text } " )
bot . run ( "BOT_TOKEN" )Contoh ini menunjukkan cara mengirim pesan dengan menu.
from discord . ext import commands
from dislash import InteractionClient , SelectMenu , SelectOption
bot = commands . Bot ( command_prefix = "!" )
inter_client = InteractionClient ( bot )
@ bot . command ()
async def test ( ctx ):
msg = await ctx . send (
"This message has a select menu!" ,
components = [
SelectMenu (
custom_id = "test" ,
placeholder = "Choose up to 2 options" ,
max_values = 2 ,
options = [
SelectOption ( "Option 1" , "value 1" ),
SelectOption ( "Option 2" , "value 2" ),
SelectOption ( "Option 3" , "value 3" )
]
)
]
)
# Wait for someone to click on it
inter = await msg . wait_for_dropdown ()
# Send what you received
labels = [ option . label for option in inter . select_menu . selected_options ]
await inter . reply ( f"Options: { ', ' . join ( labels ) } " )
bot . run ( "BOT_TOKEN" )Contoh ini menunjukkan cara membuat menu konteks dan berinteraksi dengan mereka.
from discord . ext import commands
from dislash import InteractionClient
bot = commands . Bot ( command_prefix = "!" )
inter_client = InteractionClient ( bot )
@ inter_client . user_command ( name = "Press me" )
async def press_me ( inter ):
# User commands are visible in user context menus
# They can be global or per guild, just like slash commands
await inter . respond ( "Hello there!" )
@ inter_client . message_command ( name = "Resend" )
async def resend ( inter ):
# Message commands are visible in message context menus
# inter is instance of ContextMenuInteraction
await inter . respond ( inter . message . content )
bot . run ( "BOT_TOKEN" )