Lua (поддержка завершена в версии 5.2)

Разработка плагинов с использованием Lua.

Поддержка плагинов на Lua будет завершена в Shark Remote версии 5.2, т.к.:

  • Lua мало кто (или вообще никто) использует для разработки плагинов для Telegram бота, а поддержка такого функционала "захламляет" общий код проекта и использует отдельную библиотеку.

  • PowerShell предоставляет больший набор функций и лучше интегрирован.

  • Lua не работает достойным образом у большинства пользователей.

Следуйте инструкции

1. Создайте папку с названием в виде имени будущего плагина

2. В данной папке (далее в гайде просто main_folder)

{main_folder} = main_folder. Все переменные в гайде обозначаются в фигурных скобках.

3. Создайте следующую структуру файлов:

{main_folder}\main.manifest
{main_folder}\main.lua

4. В файл main.manifest (текстовый файл манифеста плагина с надстройками) вставьте следующий текст:

chat_action_type = 1
message_type = 1
arguments_count = 0
plugin_type = 1

Описание

chat_action_type - тип действия, которое будет написано в чате во время работы файла

Значения

  • 0 - ничего не писать

  • 1 - "Бот набирает сообщение..."

message_type - тип возвращаемого сообщения в боте

Значения

  • 0 - Текстовое сообщение

  • 1 - Текстовое сообщение с поддержкой HTML форматирования

  • 2 - Ничего не возвращать

arguments_count - количество обязательных принимаемых аргументов плагина от пользователя

Значения

  • От 0 до 4

plugin_type - тип плагина, для Lua это "1"

5. Основной код необходимо написать в файле main.lua (файл кода написанный на Lua).

6. Вставьте в файл main.lua следующий код:

#app {plugin_name}, Version="{plugin_version}", Author={author}, Command={call_command}

-- MainFunc - функция, которая вызывается ботом (не изменяйте название)
-- value[x] - аргументы для функции MainFunc (не удаляйте аргументы)
-- Количество используйемых переменных-аргументов зависит от заданного количества аргументов из манифесте
function MainFunc (value1, value2, value3, value4)
	value1 = tonumber(value1)
	value2 = tonumber(value2)
	if value1 > value2 then
		return tostring(value1 + 2)
	else
		return tostring(value2 * 2)
	end
end
-- return - возвращает вывод текста в бота (зависит от манифеста)

7. Заполните данные (без пробелов):

  • {plugin_name} - название плагина, такое же как для {main_folder}

  • {plugin_version} - версия в формате x.x.x.x, где x - число (например: 1.0.0.4)

  • {author} - автор плагина

  • {call_command} - команда для вызова плагина (обязательно начинается с /), например: /test

Должно получиться что-то похожее: #app Numbers, Version="1.0.0.0", Author=developer, Command=/test

Данная строка является обязательной для файла плагина!

8. Создайте zip архив с папкой {main_folder} (рекомендую воспользоваться архиватором 7-Zip со сжатием Нормальное)

Это пример папки, вместо файла main.ps1 у вас будет файл main.lua

Нужно заархивировать не саму папку, а её содержимое!

9. Переименуйте файл в {main_folder} и измените расширение архива на srp

10. Установите файл через Shark Remote

11. Тестируйте!

Last updated