dislash.py
v1.4.8
لم تعد هذه المكتبة محفوظة لصالح disnake . Disnake هو إصدار محدث من Discord.py مع أحدث ميزات API التي تم تنفيذها. إن بناء الجملة لأوامر SLASH مريحة للغاية ، لذا نوصي حقًا باستخدام Disnake إذا كنت تخطط للتبديل إلى أوامر Slash قبل أبريل 2022.
إذا كان لديك أي أسئلة ، انضم إلى خادم Discord الخاص بنا
مكتبة تمتد لـ Discord.py تسمح بإنشاء مكونات رسائل رائعة وأوامر مائلة.
نظرًا لأن Discord.py لن يبقى على اطلاع دائم ، فقد قررنا إنشاء شوكة: disnake . يحتوي على جميع ميزات أوامر تطبيق DPY 2.0 +.
قم بتشغيل أي من هذه الأوامر في المحطة الطرفية:
pip install dislash.py
python -m pip install dislash.py
هذه المكتبة تتطلب 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" )يوضح هذا المثال كيفية إرسال رسالة باستخدام الأزرار.
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" )يوضح هذا المثال كيفية إرسال رسالة باستخدام قائمة.
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" )يوضح هذا المثال كيفية إنشاء قوائم السياق والتفاعل معها.
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" )