В настоящее время я создаю систему проверки для своего сервера, которая может определить, прошел ли пользователь уже проверку или нет. Чтобы объяснить подробно, у меня есть команда, которая отправляет встраивание на канал с помощью кнопки. Когда вы нажимаете кнопку, вам должна быть предоставлена роль, которая подтверждает вашу верификацию.
Это взаимодействие также должно определить, прошли ли вы уже верификацию на сервере, то есть у вас уже есть эта роль.
Я написал код, который действует немного странно. Когда я выполняю команду для публикации встраивания с помощью кнопки проверки, кнопка работает должным образом только при первом нажатии. Второй щелчок говорит:
"Это взаимодействие не удалось",
и я не понимаю, что происходит.
Вот код:
Код: Выделить всё
#Verification System
@client.command()
async def acceptterms(ctx):
channel = client.get_channel(961292090522869771)
verifyRole = discord.utils.get(ctx.guild.roles, name='Member')
verifyEmbed = discord.Embed(title='**Welcome to the Discord server.**', description='To get access to the rest of the server, you must agree to the our rules and Discord [community guidelines](https://discord.com/guidelines).\n\n**To agree and get access to the server, click on the button below this message.**', color=0xa7f0a7)
message = await channel.send(embed=verifyEmbed, components = [
Button(label= 'I agree to the server rules and Discord community guidelines.', custom_id='button1', style=ButtonStyle.blue)
])
interaction = await client.wait_for("button_click", check = lambda i: i.custom_id == "button1")
if verifyRole in ctx.author.roles:
await interaction.send(content = "You are already verified and have access to the entire server.")
else:
await interaction.send(content = "You are now verified! Welcome to the server!")
await ctx.author.add_roles(verifyRole)
Есть ли у кого-нибудь решение этой проблемы?
Заранее спасибо.
Мобильная версия