#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