Состав

Компоненты Plugify Source 2 с версиями, раскладка на диске и добавление своих пакетов.

Компоненты

Здесь указаны версии последнего stable-релиза. Версии каждого релиза можно посмотреть на странице Список изменений.

КомпонентПакетВерсия
Ядро Plugifylibplugify3.1.0
S2-Launcher · загрузчик (launcher, runtime)plugify-source2-launcher2.5.6
MM-Loader · загрузчик (metamod)plugify-metamod-loader2.1.5
C++ · языковой модульplugify-module-cpp2.4.5
Go · языковой модульplugify-module-golang2.7.5
Source 2 SDK (s2sdk) · плагинplugify-plugin-s2sdk3.4.0
PolyHook · плагинplugify-plugin-polyhook2.5.9
Configs · плагинplugify-plugin-configs2.1.2
Translations · плагинplugify-plugin-translations1.0.3
Permissions · плагинplugify-plugin-permissions1.3.1
DynCall · плагинplugify-plugin-dyncall2.0.9
Permissions Storage · плагинpermissions-storage1.0.0
Permissions Connector (Source 2) · плагинpermissions-connector-s21.0.0

В билд входят языковые модули тех языков, на которых написаны его плагины. Когда в билде появится плагин на другом языке, например на JavaScript, вместе с ним появится и модуль его языка.

Раскладка на диске

Архив распаковывается в папку game/ сервера. Пример для загрузчика Launcher на Linux:

Отличия загрузчиков:

  • Runtime: вместо s2launcher загрузчиком служит csgo/bin/linuxsteamrt64/libserver_valve.so.
  • Metamod: в bin/ ничего не кладётся; csgo/addons/metamod/plugify.vdf загружает csgo/addons/plugify/bin/<platform>/libplugify.

Переводы базовых плагинов в data/ приходят только с полным архивом: mamba их не обновляет, а в архиве загрузчика их нет.

Мета-пакеты

Набор билда записан средствами самой conda. plugify-source2-plugins (в envs/plugins) и plugify-source2-modules (в envs/modules) являются пакетами без файлов, которые зависят от точных версий пакетов билда. Их версия совпадает с версией билда. mamba list показывает, какой билд установлен, а mamba update переводит набор на следующий билд, см. Обновление.

.condarc и build.json

В addons/plugify/.condarc первым указан conda-канал билда, за ним каналы компонентов и всех языковых модулей. Поэтому эти пакеты ставятся по имени, без -c. Пакетам из других каналов нужен -c.

В addons/plugify/build.json записано, с каким билдом пришёл загрузчик, а также версии загрузчика и ядра.

Добавление пакетов

envs/modules и envs/plugins являются обычными conda-окружениями. Операции с пакетами выполняются, пока Plugify выгружен:

plg unload
mamba install -n modules plugify-module-python3
mamba install -n plugins -c "https://example.github.io/my-plugin/" my-plugin
plg load

Если пакет есть в билде, ставится его версия из билда. Остальные пакеты берутся из своих каналов: из перечисленных в .condarc или из переданного через -c.

Свои плагины можно держать и в отдельном окружении, потому что Plugify находит пакеты во всех папках envs/:

plg unload
mamba create -n my-plugins
mamba install -n my-plugins <package>
plg load

Плагины без пакета кладутся в отдельную папку в envs/, например envs/my_plugin/.

Добавленные так пакеты сохраняются при обновлении билда. Если вы пишете плагины на языке, модуль которого билд может позже убрать, установите этот модуль явно (mamba install -n modules plugify-module-golang), и он останется.