Первый плагин
Узнайте, как создать свой первый плагин с помощью языкового модуля, включая основной синтаксис и настройку.
Добро пожаловать в Руководство по разработке плагинов для языкового модуля Lua от Plugify. Этот гид проведет вас через процесс создания вашего первого плагина с использованием Lua в рамках фреймворка Plugify. Независимо от того, являетесь ли вы моддером игр, инженером-программистом или разработчиком плагинов, это руководство поможет вам понять основные концепции и шаги, необходимые для создания полнофункционального плагина.
Что такое Plugify?
Plugify - это модульный фреймворк для плагинов, который позволяет разработчикам расширять приложения путем динамической интеграции внешних плагинов. Он предоставляет структурированный подход к разработке плагинов с четкими рекомендациями по структуре плагинов, управлению зависимостями и предоставлению API.
Зачем использовать Lua?
Языковой модуль Lua позволяет разработчикам создавать плагины с использованием Lua, языка, известного своей гибкостью и простотой использования. Плагины на Lua не требуют компиляции, что делает их простыми в разработке и развертывании. Plugify гарантирует, что ваш плагин будет гладко интегрироваться с основным фреймворком, следуя стандартизированной структуре плагинов и API.
Что вы узнаете
В этом руководстве вы:
- Настроите структуру каталогов для вашего плагина.
- Определите манифест плагина (файл
.pplugin), чтобы зарегистрировать ваш плагин в экосистеме Plugify. - Напишете код на Lua для вашего плагина, используя предоставленный API.
- Запустите и протестируете ваш плагин.
К концу этого руководства у вас будет работающий плагин на Lua, который можно будет загрузить во фреймворк Plugify. Давайте начнем!
Структура каталогов
Чтобы обеспечить бесшовную интеграцию с фреймворком Plugify, ваш плагин должен следовать определенной структуре каталогов. Каждый плагин должен быть размещен в своей собственной папке в каталоге extensions. Имя папки должно совпадать с именем плагина и следовать этим правилам:
- Должно начинаться с буквы (
A-Z,a-z). - Разрешённые символы: буквенно-цифровые (
A-Z,a-z,0-9), а также_ - Пробелы НЕ допускаются в имени папки.
- Файл конфигурации
.ppluginдолжен иметь то же имя, что и папка плагина.
Имя расширения берётся из имени файла манифеста, поэтому оно должно соответствовать шаблону, заданному в JSON-схеме плагина.
Пример структуры каталогов
- res/extensions/
- lua_example_plugin/
- lua_example_plugin.lua
- lua_example_plugin.pplugin
- another-plugin/
- another_plugin.lua
- another_plugin.pplugin
Разбор структуры
res/extensions/– Основной каталог, где хранятся все плагины.lua_example_plugin/– У каждого плагина есть своя выделенная папка. Имя папки должно совпадать с именем файла.pplugin.lua_example_plugin.lua– Модуль Lua, содержащий код плагина.lua_example_plugin.pplugin– Файл конфигурации, который определяет метаданные о плагине.
Следуя этой структуре, Plugify может правильно обнаруживать, загружать и управлять плагинами на разных платформах.
Манифест плагина
Каждый плагин во фреймворке Plugify требует файла манифеста с расширением .pplugin. Этот файл представляет собой конфигурацию на основе JSON, которая предоставляет важные метаданные о плагине, гарантируя, что его можно будет правильно идентифицировать, загрузить и управлять им.
Ключевые обязанности файла манифеста:
- Определяет версию плагина и данные автора.
- Указывает точку входа для выполнения.
- Перечисляет зависимости, необходимые для плагина.
- Объявляет экспортируемые методы, доступные для внешнего взаимодействия.
Пример файла .pplugin
Объяснение ключевых полей
entry: Указывает путь к модулю и имя класса плагина. Например, если ваш плагин находится вlua_example_plugin.lua, а класс называетсяExamplePlugin, то точкой входа будетlua_example_plugin.ExamplePlugin.language: Должно быть установлено значение lua для плагинов на Lua.dependencies: Перечисляет другие необходимые плагины, обеспечивая правильный порядок загрузки.methods: Функции, предоставляемые плагином для внешнего взаимодействия.classes: Классы, экспортируемые плагином, которые могут быть созданы или использованы другими плагинами.
Почему важен файл .pplugin?
- Обеспечивает совместимость – Определяет поддерживаемые версии и платформы.
- Обеспечивает модульность – Перечисляет зависимости для структурированной загрузки плагинов.
- Облегчает интеграцию – Позволяет другим плагинам вызывать предоставляемые методы.
Следуя этой структуре манифеста, Plugify может эффективно загружать и управлять плагинами, обеспечивая бесшовную функциональность в различных проектах.
Написание кода плагина
Создание плагина для Plugify - это просто. Вы можете либо использовать готовый шаблон плагина на Lua, доступный в нашем репозитории, либо написать свой плагин с нуля.
Использование шаблона плагина
Самый простой способ начать - это скачать шаблон плагина на Lua из нашего репозитория. Он содержит все необходимые файлы, в том числе:
- Предварительно настроенную структуру проекта
- Пример реализации
- Необходимый пакет plugify
Просто клонируйте репозиторий, и ваша среда будет готова к разработке.
Написание плагина с нуля
Если вы предпочитаете создавать свой плагин вручную, выполните следующие действия:
Настройка вашего плагина
Каждый плагин должен расширять класс plugify.Plugin и опционально реализовывать методы жизненного цикла (plugin_start, plugin_update, plugin_end).
Структура кода плагина
Вот базовый пример реализации плагина на Lua:
Понимание методов жизненного цикла плагина
Каждый плагин может определять следующие методы жизненного цикла, которые Plugify будет вызывать в определенное время:
| Метод | Описание | Обязательный? |
|---|---|---|
plugin_start | Вызывается, когда плагин загружен и готов к работе. | ❌ Необязательный |
plugin_update(dt) | Вызывается каждый кадр, позволяя периодические обновления. | ❌ Необязательный |
plugin_end | Вызывается, когда плагин выгружается или завершает работу. | ❌ Необязательный |
Эти методы являются необязательными. Если они не реализованы, языковой модуль не будет их вызывать.
Запуск и тестирование плагина
После того, как вы написали свой плагин, следующим шагом будет его запуск и тестирование в системе Plugify. Для этого выполните следующие действия:
Размещение плагина в правильном каталоге
Убедитесь, что ваш плагин правильно структурирован в папке extensions. Ваш каталог плагина должен содержать:
Как только папка плагина и файл манифеста будут правильно размещены, Plugify автоматически обнаружит и попытается загрузить плагин.
Проверка статуса загрузки плагина
Вы можете проверить, успешно ли загрузился ваш плагин, с помощью команд терминала, предоставляемых Plugify. Эти команды позволяют вам запрашивать статус плагинов и устранять потенциальные проблемы.
- Вывести список всех загруженных плагинов:
Это отобразит все загруженные в данный момент плагины. Если ваш плагин есть в списке, это означает, что Plugify успешно его распознал и инициализировал.
- Запросить информацию о конкретном плагине:
Эта команда получает подробную информацию о конкретном плагине, включая его версию, зависимости и поддерживаемые платформы.
Устранение неполадок
Если ваш плагин не работает так, как ожидалось:
- Проверьте логи консоли на наличие подробных сообщений об ошибках.
- Убедитесь, что все зависимости правильно установлены и совместимы с игрой/платформой.
- Проверьте, что точка входа в манифесте
.ppluginсоответствует фактическому модулю и имени класса. - Включите отладочное журналирование, если необходимо, чтобы получить больше подробностей о проблеме.
Как только ваш плагин загрузится и будет работать правильно, он готов к использованию. Если что-то пошло не так, см. руководство Отладка.
Заключение
Это руководство охватило основные шаги по созданию плагина на Lua для языкового модуля Lua от Plugify, включая настройку проекта, написание кода плагина, настройку манифеста и запуск плагина. Следование этим рекомендациям обеспечивает плавную интеграцию в экосистему Plugify.