Из постановки задачи: тебе надо работать с сообщением, так?
Открываешь документацию и ищешь класс, описывающий сообщение. Подсказка: обычно такой класс называется Message.
Внимательно просматриваешь его свойства и методы, ищешь всё, что касается ответов (ключевые слова: reply, response и т.п.).
Находишь свойство reply_to_message . Читаешь:
reply_to_message: Message | None
Optional. For replies in the same chat and message thread, the original message. Note that the Message object in this field will not contain further reply_to_message fields even if it itself is a reply.
Тип данных (Message | None) и подсказка Optional говорят о том, что в этом поле может лежать либо None (очевидно, если сообщение не является ответом), либо ещё один объект Message (тогда это сообщение, на который был ответ).
Теперь как разобраться с автором сообщения. Аналогично ищем свойства и методы класса Message по ключевым словам user, author и т.п. Находим свойство from_user .
from_user: User | None
Optional. Sender of the message; empty for messages sent to channels. For backward compatibility, the field contains a fake sender user in non-channel chats, if the message was sent on behalf of a chat.
Достаточно, чтобы понять, что в этом свойстве должен лежать объект, описывающий автора сообщения.
Теперь осталось собрать вместе логику работы бота:
Как забанить пользователя - упражнение для читателя.
Учись искать и разбираться в документации, без этого навыка никуда.