Задать вопрос
@Zohan1Gear

Как сделать команду и функцию по команде только для вызывавшего эту команду в чате(Python, Pyrogram)?

А для остальных чтоб кнопки небыли видны вообще?

spoiler
@bot.on_message(filters.command(['Кнб'], prefixes='')
async def startik(bot, message):
        await message.reply_text(text='Играем?',
                reply_markup=ReplyKeyboardMarkup(
                        [[
                                'Играть!  ✂️ '
                        ], [
                                'Отменить '

                        ]],
                        resize_keyboard=True,
                        one_time_keyboard=True,
                        
                )
        )
@bot.on_message(filters.regex('Играть!  ✂️ '))
async def gamik(bot, message):
        await message.reply_text(text='Играем...')


@bot.on_message(filters.regex('Отменить '))
async def cencel(bot, message):
        await message.reply_text(text='Ты меня бросил...! ')
bot.run()


Пробовал через ReplyKeyboardRemove, но неудачно
  • Вопрос задан
  • 449 просмотров
Подписаться Средний 5 комментариев
Пригласить эксперта
Ответы на вопрос 1
ma4akk
@ma4akk
Чтобы сделать команду доступной только для того, кто ее вызвал, можно использовать фильтр filters.private. Например:

@bot.on_message(filters.private & filters.command(['Кнб'], prefixes=''))
async def startik(bot, message):
    # Код команды здесь


Этот фильтр будет пропускать только сообщения, отправленные в личном чате боту (не в групповом чате или канале).

Чтобы скрыть кнопки у остальных пользователей, можно использовать метод delete_message вместе с фильтром filters.user(message.from_user.id) для удаления сообщения с кнопками только у отправителя сообщения. Например:

@bot.on_message(filters.private & filters.command(['Кнб'], prefixes=''))
async def startik(bot, message):
    # Код команды здесь

    # Удаление сообщения с кнопками у отправителя сообщения
    await bot.delete_message(message.chat.id, message.message_id, filters.user(message.from_user.id))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы