如何在cogs中构建选择菜单?

问题描述 投票:0回答:1

这是我的代码:

import discord
from discord.ext import commands
from discord import app_commands
async def select_callback(self, select1, interaction: discord.Interaction):
    if select1.values[0] == 1:
        await interaction.response.send_message('success1')
    elif select1.values[0] == 2:
        await interaction.response.send_message('success2')
    else:
        await interaction.response.send_message('success3')


class aButton(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

    @app_commands.command(name = "view_base", description = "Simple View Example")
    async def view_base(self, interaction: discord.Interaction):
        view = discord.ui.View()
        select1 = discord.ui.Select()
        select1.add_option(label="A", value = 1, description="Explain a")
        select1.add_option(label="B", value = 2, description="Explain B")
        select1.add_option(label="C", value = 3, description="Explain C")
        select1.callback = select_callback
        view.add_item(select1)
        await interaction.response.send_message(view = view)


async def setup(bot):
    await bot.add_cog(aButton(bot))

当我使用选择菜单时,总是出现交互失败

我猜回调有问题。

我在网上找了好久。但没有用。请帮忙或尝试给出一些如何实现这一目标的想法。

python discord discord.py
1个回答
0
投票

Select.callback 仅接受一个参数:

interaction

async def select_callback(interaction: discord.Interaction):
    ...

self
通常是类方法采用的参数;其中 self 是类对象。

select
参数仅在使用discord.ui.select装饰器时存在。

class SelectView(discord.ui.View):
    def __init__(self):
        super().__init__()
    
    @discord.ui.select(...)
    async def select_callback(self, interaction: discord.Interaction, select: discord.ui.Select):
        ...

了解更多:选择查看

© www.soinside.com 2019 - 2024. All rights reserved.