Бот отреагирует на мой ответ «Правильно» или «Неправильно» . Но когда я отвечаю на правильный ответ, он продолжает говорить неправильный ответ

#python #discord.py

Вопрос:

Я настоящий нуб, когда дело доходит до discord.py и я изо всех сил пытаюсь определить m в wait_for команде. Я попытался определить m , но когда я отвечу на вопрос, бот вообще не отреагирует. Это мой полный код:

 import discord
from discord.ext import commands
class Trivia(commands.Cog):

    def __init__(self, client):
        self.client = client

    @commands.command()
    async def trivia(self, ctx):
        def check(m):  # Checks that the author of the command gives the answer
            return m.author == ctx.author and m.channel == ctx.channel

        await ctx.send('**Welcome to this Trivia! There will be 5 questions that you have to answer.**')

        question = ['Who invented The Theory of Special Relavity?',
                    'Who created Algebra?',
                    "What is Newton's third law? **use 'and' instead of 'amp;'**",
                    'Who discover prism?']
        responses = ['Albert Einstein',
                    'al-Khwarizmi',
                    'Action and Reaction',
                    'Isaac Newton']

        for i in question:
            await ctx.send(i) # Send the question

            try:
                await self.client.wait_for('message', check=check)  # Wait for the message
                if message in responses:
                    await ctx.send('Correct Answer!')
            except:
                await ctx.send('Wrong Answer!')
def setup(client):
    client.add_cog(Trivia(client))
 

Комментарии:

1.я не знаю, в чем ваша ошибка, но использование try except проглатывает любые ошибки. попробуйте import traceback и except Exception: traceback.print_exc() получите фактическую ошибку. это может помочь

2. ладно, постараюсь! Спасибо

Ответ №1:

Вам нужно назначить возвращенное сообщение переменной:

 message = await self.client.wait_for('message', check=check)
message = message.content