Skip to content

Latest commit

 

History

History
85 lines (53 loc) · 5.38 KB

File metadata and controls

85 lines (53 loc) · 5.38 KB

Инструменты плагинов SA-MP Android

English | 简体中文 | Русский

Публичные инструменты разработчика и примеры для создания Lua-плагинов SA-MP Android.

Этот репозиторий не содержит исходный код клиента SA-MP Android. Клиент имеет закрытый исходный код, а плагины взаимодействуют с ним исключительно через документированный Lua API.

Содержимое

  • samp-plugin — кроссплатформенная CLI-утилита на Go для проверки проектов плагинов и создания пакетов .splug.
  • api/schema.json — машиночитаемый снимок текущего контракта Plugin API 1.1.
  • examples/ — независимые примеры плагинов, которые можно проверять, упаковывать и устанавливать.

Установка

Загрузите архив для своей операционной системы и архитектуры из последнего GitHub Release:

  1. Выберите архив с подходящим обозначением платформы, например windows_amd64, linux_arm64 или darwin_arm64.
  2. Извлеките samp-plugin или samp-plugin.exe.
  3. Переместите исполняемый файл в каталог из PATH либо запускайте его по полному пути.

В Release публикуются сборки для Windows, Linux и macOS на amd64 и arm64. Для проверки целостности загрузки используйте файл checksums.txt.

Версию установленной CLI-утилиты можно узнать командой samp-plugin version.

Проверка плагина

Проверка каталога с исходным кодом:

samp-plugin validate examples/fps-counter

Проверка готового пакета:

samp-plugin validate fps-counter-1.0.0.splug

Проверяются типы и ограничения полей manifest, SemVer, совместимость API, разрешения, контексты, входной Lua-файл, переносимость и безопасность путей, количество файлов, а также ограничения размера пакета, применяемые клиентом.

Упаковка плагина

samp-plugin pack examples/fps-counter

По умолчанию пакет создаётся в родительском каталоге исходного проекта с именем <plugin-id>-<version>.splug. При необходимости укажите другой путь:

samp-plugin pack --output dist/fps-counter.splug examples/fps-counter

Утилита не перезаписывает существующие файлы. Она использует отсортированные переносимые пути, фиксированные временные метки и права доступа, поэтому одинаковые входные данные создают одинаковые байты и SHA-256. manifest.json всегда находится в корне архива.

Структура плагина

Минимальная структура проекта:

my-plugin/
├── manifest.json
└── main.lua

Дополнительно можно использовать каталоги modules/, assets/ и locales/. Пути внутри пакета всегда используют / и не могут содержать абсолютные пути, обратные косые черты, пустые сегменты, . или ...

Полное описание Lua API, аргументов событий, разрешений и ограничений среды выполнения находится в официальной документации SA-MP Android. api/schema.json представляет контракт конкретного выпуска клиента; его изменения должны сопровождаться обновлением тестов и примеров.

Разработка

Для разработки требуется Go 1.24 или новее. CLI использует только стандартную библиотеку Go.

go test ./...
go vet ./...
go build -o bin/samp-plugin ./cmd/samp-plugin

Сгенерированные исполняемые файлы и пакеты .splug не добавляются в репозиторий. Отправка тега, соответствующего шаблону v*, запускает workflow выпуска: он тестирует проект, собирает архивы для всех поддерживаемых платформ, создаёт контрольные суммы SHA-256 и публикует GitHub Release.

Лицензия

Репозиторий распространяется по лицензии MIT.