#python #python-3.x #discord #discord.py
#python #python-3.x #Discord #discord.py
Вопрос:
Я хочу создать бота для текстовой RPG. И мне нужен сеанс создания персонажа. Но я не могу получить входные данные пользователя.
@bot.command()
async def karakterolustur(ctx):
#Character Name
await ctx.send("Karakterinin Adı Ne ? ")
message_response = client.wait_for('message', check=lambda m: m.user ==ctx.user)
ad = message_response.content
print(ad)
#Character Race
await ctx.send("Bir Irk Seç [Elf | Cüce | İnsan] : ")
message_response = client.wait_for('message', check=lambda m: m.user == ctx.user)
irk = message_response.content
#Character Class
await ctx.send("Bir Sınıf Seç :")
message_response = client.wait_for('message', check=lambda m: m.user == ctx.user)
sinif = message_response.content
cid = ctx.author.id
Я написал это. Но это не работает. Как я могу это сделать?
Ответ №1:
wait_for
это сопрограмма, вам нужно ее дождаться- Вы используете
bot.command()
в качестве декоратора, почему вы используетеclient
inwait_for
? Вам также необходимо использоватьbot
там - Во всех лямбда-функциях вместо
m.user
использованияm.author
.discord.Message
не имеет атрибутаuser
- Также в лямбда-функциях используется вместо
ctx.user
usectx.author
message_response = await bot.wait_for("message", check=lambda m: m.author == ctx.author)
Комментарии:
1. Спасибо. Я больше не получаю ошибок. Однако на этот раз он застрял после первого ввода. Не дает никакой реакции.
2. Да, потому что вы украшаете команду с
bot.command()
помощью и вwait_for
том, что вы используетеclient
, вам нужно использоватьbot
—await bot.wait_for(...)