Рекомендуется начать отсюда Introduction
FunPay Cardinal: Справочник разработчика плагинов
Анатомия плагина и жизненный цикл
- Обязательные метаданные в шапке файла плагина (NAME, VERSION, DESCRIPTION, CREDITS, UUID, SETTINGS_PAGE).
- Точки связывания и хуки: списки BIND_TO_* в cardinal
- Архитектура получения событий: как фоновый Runner опрашивает FunPay и передает данные в диспетчер Handlers.
- Доступ к ядру Cardinal, сессии Account
Шина событий
Оформи список связок BIND_TO со ссылками на события и типы (подробное описание самих событий смотри в Events):
- Событие нового заказа
- Хук: BIND_TO_NEW_ORDER в Cardinal
- Событие: NewOrderEvent
- Полезная нагрузка: Order
- Диспетчер: new_order_handler
- Событие изменения статуса заказа
- Хук: BIND_TO_ORDER_STATUS_CHANGED в Cardinal
- Событие: OrderStatusChangedEvent
- Полезная нагрузка: Order
- Диспетчер: order_status_changed_handler
- Событие входящего сообщения
- Хук: BIND_TO_NEW_MESSAGE в Cardinal
- Событие: NewMessageEvent
- Полезная нагрузка: Message
- Диспетчер: new_message_handler
- Событие автоподъема лотов
- Хук: BIND_TO_POST_LOTS_RAISE в Cardinal
- Событие: LotsRaiseEvent
3. Рецепты и сценарии разработки
Пошаговые списки методов для частых задач:
- Отправка сообщений и файлов:
- Быстрая отправка через ядро: cardinal.send_message()
- Отправка изображений в чат: account.send_image()
- Обработка и сопровождение заказов:
- Получение полной карточки заказа: account.get_order()
- Проверка статуса через перечисления: OrderStatuses
- Оформление возврата средств: account.refund()
- Управление лотами и ценами:
- Получение полей лота для редактирования: account.get_lot_fields()
- Сохранение измененного лота на FunPay: account.save_lot()
- Получение лотов подкатегории: account.get_my_subcategory_lots()
- Telegram UI и админ-панель:
- Регистрация команд плагина в меню: cardinal.add_telegram_commands()
- Регистрация хэндлеров команд и сообщений: методы Bot
- Фильтрация и префиксы колбэков: константы из CBT
Слой данных и перечисления
- Модели данных: список основных классов из Types со ссылками (Order, UserProfile, Message, LotFields, Chat, Lot).
- Системные перечисления: список enum-классов из Enums со ссылками (OrderStatuses, SubCategoryTypes, ChatTypes, MessageTypes).
Исключения и служебные утилиты
- Иерархия ошибок:
- Внутренние ошибки ядра: список исключений из Exceptions со ссылками ИмяОшибки.
- Ошибки API и сети FunPay: список исключений из FP_exceptions со ссылками ИмяОшибки.
- Логирование: вывод сообщений через систему logger.
- Вспомогательные функции: хелперы бота из Utils и утилиты парсинга из FP_utils.