@commands.slash_command(name="akinator",description="Сыграйте в акинатора.")
async def aki(self, ctx):
await ctx.response.defer()
aki = Akinator(
child_mode=False,
theme=Theme.from_str('characters')
)
first_queston = aki.start_game()
stats = True
component = [
disnake.ui.Button(label="Да",style=disnake.ButtonStyle.success,custom_id="Yes"),
disnake.ui.Button(label="Нет",style=disnake.ButtonStyle.danger,custom_id="No"),
disnake.ui.Button(label="Я не знаю",style=disnake.ButtonStyle.success,custom_id="Idk")
]
def check(msg):
return msg.author.id == ctx.author.id
first_queston = translator.translate(first_queston, dest="ru")
await ctx.send(embed=disnake.Embed(title="Вопрос 1..",description=first_queston.text,color=0x228b22), components=component)
while stats:
try:
btn = await bot.wait_for("button_click", check=check, timeout=90)
#if btn.component.custom_id
answer = Answer.from_str(btn.component.custom_id)
aki.answer(answer)
await btn.response.defer()
await ctx.edit_original_response(embed=disnake.Embed(title="Очередной вопрос...",description=translator.translate(aki.question, dest="ru").text, color=0x228b22))
win = aki.win()
if win:
await ctx.edit_original_response(embed=disnake.Embed(title=f"Это {translator.translate(win.name, dest='ru').text}!",description=translator.translate(win.description, dest="ru").text,color=0x228b22).set_image(url = win.absolute_picture_path))
stats = False
else:
return
except asyncio.TimeoutError:
await ctx.send(embed=disnake.Embed(title="Игра закончена!",description="Слишком долго не было взаимодействия с кнопками!"))
stats = False
@commands.slash_command(name="akinator",description="Сыграйте в акинатора.")
async def aki(self, ctx):
await ctx.response.defer()
aki = Akinator(
child_mode=False,
theme=Theme.from_str('characters')
)
first_queston = aki.start_game()
stats = True
component = [
disnake.ui.Button(label="Да",style=disnake.ButtonStyle.success,custom_id="Yes"),
disnake.ui.Button(label="Нет",style=disnake.ButtonStyle.danger,custom_id="No"),
disnake.ui.Button(label="Я не знаю",style=disnake.ButtonStyle.success,custom_id="Idk")
]
def check(msg):
return msg.author.id == ctx.author.id
first_queston = translator.translate(first_queston, dest="ru")
await ctx.send(embed=disnake.Embed(title="Вопрос 1..",description=first_queston.text,color=0x228b22), components=component)
while aki.progression <= 80 and stats:
try:
btn = await bot.wait_for("button_click", check=check, timeout=90)
#if btn.component.custom_id
answer = Answer.from_str(btn.component.custom_id)
aki.answer(answer)
await btn.response.defer()
await ctx.edit_original_response(embed=disnake.Embed(title="Очередной вопрос...",description=translator.translate(aki.question, dest="ru").text, color=0x228b22), components=component)
except asyncio.TimeoutError:
await ctx.send(embed=disnake.Embed(title="Игра закончена!",description="Слишком долго не было взаимодействия с кнопками!"))
stats = False
win = aki.win()
if win:
await ctx.edit_original_response(embed=disnake.Embed(title=f"Это {translator.translate(win.name, dest='ru').text}!",description=translator.translate(win.description, dest="ru").text,color=0x228b22).set_image(url = win.absolute_picture_path), components=None)
stats = False