discord.py переписать | Проблема с получением сообщения автора
Я выполнял команду числовой игры на своем сервере, и кто-то посоветовал мне добавить трудности. Итак, у меня есть 3 трудности для пользователя на выбор. Я уже получил немного кода, который получил ответ автора и работал, поэтому я снова использовал его в своем коде, и теперь я в тупике. Это может быть очевидно очевидно, но я не могу найти это:
@client.command(name='numgame',
brief='Guess a number between 1 and 100',
pass_ctx=True)
async def numgame(ctx):
if ctx.author.id != 368442355382222849:
await ctx.send('Command currently disabled')
return
await ctx.send('Difficulties: a] 1-10 b] 1-50 c] 1-100')
msg = await client.wait_for('message', check=check(ctx.author), timeout=30)
diff = str(msg.content)
if diff == 'a':
max = 10
number = random.randint(1,10)
await ctx.send('You have 5 guesses')
await ctx.send('Pick a number between 1 and 10')
elif diff == 'b':
max = 50
number = random.randint(1,50)
await ctx.send('You have 5 guesses')
await ctx.send('Pick a number between 1 and 50')
elif diff == 'c':
max = 100
number = random.randint(1,100)
await ctx.send('You have 5 guesses')
await ctx.send('Pick a number between 1 and 100')
else:
ctx.send('Please try the command again...')
return
msg = None
Это чек, который я использую:
def check(author):
def inner_check(message):
# author check
if message.author != author:
return False
# inner check
try:
int(message.content)
return True
except ValueError:
return False
Когда я отвечаю на бота в чате с помощью "a", "b" или "c", я не получаю ответа. Я отключил команду для всех, кроме меня, пока пытался ее исправить, но понятия не имею, с чего начать.
Буду признателен за ответ, так как сам не вижу решения, спасибо! [Я не показывал фактическую игру с числами, потому что она неактуальна и длинна]
1 ответ
Просто создайте новую функцию проверки, которая делает то, что вы хотите.
def abc_check(author):
def inner_check(message):
return author == message.author and message.content in ('a', 'b', 'c')
return inner_check