gpt4 book ai didi

python - Discord.py 按钮响应交互在一定时间后失败

转载 作者:行者123 更新时间:2023-12-01 22:59:08 25 4
gpt4 key购买 nike

我有一个非常基本的脚本,它会弹出一条消息,其中包含一个带有命令 ?place 的按钮

点击此按钮后,机器人会向点击它的用户回复 Hi。

如果按钮在 > 大约 3 分钟内没有交互,它就会开始返回“交互失败”。

enter image description here

之后按钮就没用了。我假设在文档中找不到某种内部超时。无论使用 discord.py (2.0) 还是 pycord,该按钮都会做同样的事情。没有任何东西击中控制台。就好像按钮点击没有被拾取。

按钮偶尔会重新开始工作,控制台会出现大量错误:

discord.errors.NotFound: 404 Not Found (error code: 10062): Unknown interaction
Ignoring exception in view <View timeout=180.0 children=1> for item <Button style=<ButtonStyle.success: 3> url=None disabled=False label='click me' emoji=None row=None>:

我假设超时 = 180 是导致此问题的原因,但有人知道如何停止此超时以及为什么会发生这种情况吗?我在文档中看不到任何关于 discord 按钮只能使用 3 分钟的内容。

import discord

from discord.ext import commands
intents = discord.Intents.default()
intents.members = True
intents.message_content = True
bot = commands.Bot(command_prefix="?", intents=intents)


embed1=discord.Embed(title="Test", description = f"TESTING",color=0xffffff)
print("bot connected")

@ bot.command(name='place')
async def hello(ctx):
view = discord.ui.View()
buttonSign = discord.ui.Button(label = "click me", style= discord.ButtonStyle.green)


async def buttonSign_callback(interaction):
userName = interaction.user.id
embedText = f"test test test"
embed=discord.Embed(title="Test", description = embedText,color=0xffffff)
await interaction.response.send_message(f"Hi <@{userName}>")



buttonSign.callback = buttonSign_callback
view.add_item(item=buttonSign)
await ctx.send(embed = embed1,view = view)

bot.run(TOKEN)

最佳答案

解释

默认情况下,discord.py 2.0 中的View 超时为 180 秒(3 分钟)。您可以通过在创建 View 时传入 None 作为超时来修复此错误。

代码

@bot.command(name='place')
async def hello(ctx):
view = discord.ui.View(timeout=None)

引用资料

discord.ui.View.timeout

关于python - Discord.py 按钮响应交互在一定时间后失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72312099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com