dislash.py
v1.4.8
ห้องสมุดนี้ไม่ได้รับการ บำรุง รักษาอีกต่อไป Disnake เป็นเวอร์ชันที่อัปเดตของ Discord.py พร้อมคุณสมบัติ API ล่าสุดที่ใช้งาน ไวยากรณ์สำหรับคำสั่ง SLASH นั้นสะดวกมากดังนั้นเราขอแนะนำให้ใช้ DISNAKE หากคุณวางแผนที่จะเปลี่ยนเป็นคำสั่ง SLASH ก่อนเดือนเมษายน 2565
หากคุณมีคำถามใด ๆ ให้เข้าร่วมเซิร์ฟเวอร์ Discord ของเรา
ไลบรารีขยายสำหรับ discord.py ที่อนุญาตให้สร้างส่วนประกอบข้อความที่ยอดเยี่ยมและคำสั่ง Slash
เนื่องจาก 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" )