我确切地知道问题是什么,但我不明白如何假设我需要的按钮完全像那样被按下。我使用了“custom_id”参数,但我不知道如何在“on_interaction”中统计和检查这个参数。
我会告诉你一些关于代码的信息,我正在创建一个用于发送请求的表单,但我遇到了一个问题,即过了一会儿按钮本身就停止工作了。我在这个平台上搜索了解决方案,按照要求做了,但遇到了一个新问题,“interaction”参数没有“custom_id”属性/参数。现在我不知道如何统计“on_interaction”中的按钮点击
@bot.hybrid_command(description='Form')
@commands.has_permissions(administrator=True)
async def req_form(ctx):
global green
button = discord.ui.Button(label='Отправить Реквест', style=discord.ButtonStyle.green, custom_id='req')
embed = discord.Embed(title='Отправка реквестов',
description= 'Тут вы можете отправить ваш уровень нашему модератору, а тот перекинет уровень GD-модераторам на оценку!\n```Правила реквестов```\n- Ваш уровень должен соответствовать как правилам проекта, так и правилам игры\n- Нельзя пользоватся данной системой не в серьёз. За ложный реквест вы получите наказание, а позже и блокировку доступа к системе!\n- Вы получите такое-же наказание как и за прошлый пункт, если вы отправите в анкете рофл-уровень!\n- Не используйте систему чрезмерно часто!',
color=green)
embed.set_image(url='https://cdn.discordapp.com/attachments/1051774366758735902/1236724216712134706/REQ-05-05-2024_1.png?ex=66390cae&is=6637bb2e&hm=28ad7939dafe85e3ba606c3b09178e375438f12060eb7de8f4cfda4eb0eebed6&')
view = discord.ui.View(button)
await ctx.reply(embed=embed, view=view)
@bot.event
async def on_interaction(interaction: discord.Interaction):
async def give_req_form(interaction: discord.Interaction):
modal = ReqQuestion()
await interaction.response.send_modal(modal) # make a code...
await modal.wait()
if interaction.custom_id == 'req':
await give_req_form(interaction)
我正在检查参数
Interaction 对象没有
custom_id
属性。我认为您实际上想要获取与该交互相关的项目的 id。你可以尝试这样的事情:
item_id = interaction.data.get("custom_id")
if item_id == "req":
await give_req_form(interaction)