aiogram не присылает ответ на сообщение "купить питомца", но при этом отправляет ответ например на сообщение "мой питомец". Также если message.text.startswith == "купить питомца" он отправит ответ. Как решить эту проблему?
@dp.message_handler(content_types = ["text"])
async def function_pets(message: types.Message):
user_name = message.from_user.get_mention(as_html=True)
pet = int(cursor.execute("SELECT pet from users where user_id = ?",(message.from_user.id,)).fetchone()[0])
pet_name = str(cursor.execute("SELECT pet_name from users where user_id = ?",(message.from_user.id,)).fetchone()[0])
pet_hp = int(cursor.execute("SELECT pet_hp from users where user_id = ?",(message.from_user.id,)).fetchone()[0])
pet_eat = int(cursor.execute("SELECT pet_eat from users where user_id = ?",(message.from_user.id,)).fetchone()[0])
pet_mood = int(cursor.execute("SELECT pet_mood from users where user_id = ?",(message.from_user.id,)).fetchone()[0])
user_id = message.from_user.id
balance = round(int(cursor.execute("SELECT balance from users where user_id = ?",(message.from_user.id,)).fetchone()[0]))
loser = random.choice(['', '', '', '', ''])
if message.text.lower() == "купить питомца":
nomer = int(message.text.split()[2])
if balance >= int(pets[nomer]["price"]):
if pet < 1:
await bot.send_message(message.chat.id, f'{pets[nomer]["emoji"]} | {user_name}, вы успешно купили {pets[nomer]["name"]} за {int(pets[nomer]["price"])}$ ', parse_mode='html')
cursor.execute(f'UPDATE users SET balance = {balance - int(pets[nomer]["price"])} WHERE user_id = "{user_id}"')
cursor.execute(f'UPDATE users SET pet = {nomer} WHERE user_id = "{user_id}"')
cursor.execute(f'UPDATE users SET pet_hp = {100} WHERE user_id = "{user_id}"')
cursor.execute(f'UPDATE users SET pet_eat = {100} WHERE user_id = "{user_id}"')
cursor.execute(f'UPDATE users SET pet_mood = {100} WHERE user_id = "{user_id}"')
connect.commit()
else:
await bot.send_message(message.chat.id, f'{user_name}, у вас уже есть питомец {loser}', parse_mode='html')
else:
await bot.send_message(message.chat.id, f'{user_name}, у вас недостаточно средств для покупки питомца {loser}', parse_mode='html')
if message.text.lower() == "мой питомец":
if pet == 0:
await bot.send_message(message.chat.id, f'ℹ️ | {user_name}, у вас нету питомца! {loser}', parse_mode='html')
if pet > 0:
if pet_name == "name":
await message.bot.send_message(message.chat.id, f'{pets[pet]["emoji"]} | {user_name}, ваш питомец: {pets[pet]["name"]}\n❤️ | ХП: {pet_hp} \n | Сытость: {pet_eat}\n☀️ | Настроение: {pet_mood} \n\n✏ | Питомец имя [имя] - изменить имя питомца\n❤ | Вылечить питомца - вылечить питомца\n | Покормить питомца - покормить питомца\n | Выгулять питомца - поднять настроение питомцу', parse_mode='html')
else:
await message.bot.send_message(message.chat.id, f'{pets[pet]["emoji"]} | {user_name}, ваш питомец: {pets[pet]["name"]} \n✏️ | Имя питомца: {pet_name}\n❤️ | ХП: {pet_hp} \n | Сытость: {pet_eat}\n☀️ | Настроение: {pet_mood} \n\n✏ | Питомец имя [имя] - изменить имя питомца\n❤ | Вылечить питомца - вылечить питомца\n | Покормить питомца - покормить питомца\n | Выгулять питомца - поднять настроение питомцу', parse_mode='html')
if message.text.lower() == "вылечить питомца":
c = Decimal((100 - pet_hp) * 10000)
c2 = (100 - pet_hp) * 10000
hp = 100 - pet_hp
if pet == 0:
await bot.send_message(message.chat.id, f'ℹ️ | {user_name}, у вас нету питомца! {loser}', parse_mode='html')
if pet > 0:
if pet_hp < 100:
if c <= balance:
await bot.send_message(message.chat.id, f'❤ | {user_name}, вы вылечили своего питомца за {c}!', parse_mode='html')
cursor.execute(f'UPDATE users SET balance = {balance - c2} WHERE user_id = "{user_id}"')
cursor.execute(f'UPDATE users SET pet_hp = {pet_hp + hp} WHERE user_id = "{user_id}"')
if c > balance:
await bot.send_message(message.chat.id, f' | {user_name}, недостаточно средств! {loser}', parse_mode='html')
if pet_hp == 100:
await bot.send_message(message.chat.id, f'❤ | {user_name}, ваш питомец не нуждается в лечении!', parse_mode='html')
if message.text.lower() == "покормить питомца":
c = Decimal((100 - pet_eat) * 10000)
c2 = (100 - pet_eat) * 10000
eat = 100 - pet_eat
if pet == 0:
await bot.send_message(message.chat.id, f'ℹ️ | {user_name}, у вас нету питомца! {loser}', parse_mode='html')
if pet > 0:
if pet_eat < 100:
if c <= balance:
await bot.send_message(message.chat.id, f' | {user_name}, вы покормили своего питомца за {c}!', parse_mode='html')
cursor.execute(f'UPDATE users SET balance = {balance - c2} WHERE user_id = "{user_id}"')
cursor.execute(f'UPDATE users SET pet_eat = {pet_eat + eat} WHERE user_id = "{user_id}"')
if c > balance:
await bot.send_message(message.chat.id, f' | {user_name}, недостаточно средств! {loser}', parse_mode='html')
if pet_eat == 100:
await bot.send_message(message.chat.id, f' | {user_name}, ваш питомец не голоден! {loser}', parse_mode='html')
if message.text.lower() == "выгулять питомца":
c = Decimal((100 - pet_mood) * 10000)
mood = 100 - pet_mood
if pet == 0:
await bot.send_message(message.chat.id, f'ℹ️ | {user_name}, у вас нету питомца! {loser}', parse_mode='html')
if pet > 0:
if pet_mood < 100:
await bot.send_message(message.chat.id, f' {user_name}, вы выгуляли своего питомца!', parse_mode='html')
cursor.execute(f'UPDATE users SET pet_mood = {pet_mood + mood} WHERE user_id = "{user_id}"')
if pet_mood == 100:
await bot.send_message(message.chat.id, f' {user_name}, ваш питомец не хочет гулять!', parse_mode='html')
if message.text.lower() == "питомец имя":
name = str(message.text.split()[2])
if pet == 0:
await bot.send_message(message.chat.id, f'ℹ️ | {user_name}, у вас нету питомца! {loser}', parse_mode='html')
if pet > 0:
await bot.send_message(message.chat.id, f'✏️ | {user_name}, вы успешно поменяли имя своего питомца на: {name}!', parse_mode='html')
cursor.execute(f'UPDATE users SET pet_name = \"{name}\" WHERE user_id = "{user_id}"')
if message.text.lower() == "продать питомца":
if pet == 0:
await bot.send_message(message.chat.id, f'ℹ️ | {user_name}, у вас нету питомца! {loser}', parse_mode='html')
if pet > 0:
sellprice = int(pets[pet]["price"])
sellprice = sellprice / 2
await bot.send_message(message.chat.id, f' | {user_name}, вы успешно продали своего питомца за {sellprice}$', parse_mode='html')
cursor.execute(f'UPDATE users SET balance = {balance + sellprice} WHERE user_id = "{user_id}"')
cursor.execute(f'UPDATE users SET pet = {0} WHERE user_id = "{user_id}"')
cursor.execute(f'UPDATE users SET pet_hp = {100} WHERE user_id = "{user_id}"')
cursor.execute(f'UPDATE users SET pet_eat = {100} WHERE user_id = "{user_id}"')
cursor.execute(f'UPDATE users SET pet_mood = {100} WHERE user_id = "{user_id}"')
if message.text.lower() == "питомцы":
await bot.send_message(message.chat.id, f"{user_name}, доступные питомцы:\n 1. Цыплёнок - 1.000.000$\n 2. Кот - 100.000.000$\n 3. Пёс - 500.000.000$\n 4. Попугай - 1.000.000.000$\n 5. Единорог - 50.000.000.000$\n 6. Ядерный гусь - 100.000.000.000$\n 7. Дельфин - 500.000.000.000$\n 8. Тигр - 10.000.000.000.000$\n 9. Дракон - 100.000.000.000.000$\n\n Для покупки питомца введите: Купить питомца [номер]\nℹ Для просмотра информации о своем питомце введите: Мой питомец", parse_mode='html')