Вы повторно используете имя bug
для ссылки как на саму команду, так и на проверку для wait_for
.Также похоже, что вы пытаетесь определить проверку в функции, но вам не хватает строки определения.
Вы, кажется, ожидаете author
и message
(и m
, что бы это ни былоis) для передачи сопрограмме при вызове команды.Вместо этого они объединены в один объект Context
, который является первым аргументом.
Ниже я изменил ваш код, чтобы он мог взять report
из первоначального вызова или запросить его.
@client.command()
async def bug(ctx, *, report):
def check(message):
return ctx.author == message.author and ctx.channel == message.channel
if not report:
await ctx.send("Greetings! What would you like to report?")
msg = await client.wait_for('message', check=check)
report = msg.content[2:] # This doesn't look right to me, will remove 2 characters
await ctx.send("Thank you for your help. This bug has been reported to the server admins.")
channel = client.get_channel(private)
await channel.send(report + " was reported by " + author)