Состав
Компоненты Plugify Source 2 с версиями, раскладка на диске и добавление своих пакетов.
Компоненты
Здесь указаны версии последнего stable-релиза. Версии каждого релиза можно посмотреть на странице Список изменений.
| Компонент | Пакет | Версия |
|---|---|---|
| Ядро Plugify | libplugify | 3.1.0 |
| S2-Launcher · загрузчик (launcher, runtime) | plugify-source2-launcher | 2.5.6 |
| MM-Loader · загрузчик (metamod) | plugify-metamod-loader | 2.1.5 |
| C++ · языковой модуль | plugify-module-cpp | 2.4.5 |
| Go · языковой модуль | plugify-module-golang | 2.7.5 |
| Source 2 SDK (s2sdk) · плагин | plugify-plugin-s2sdk | 3.4.0 |
| PolyHook · плагин | plugify-plugin-polyhook | 2.5.9 |
| Configs · плагин | plugify-plugin-configs | 2.1.2 |
| Translations · плагин | plugify-plugin-translations | 1.0.3 |
| Permissions · плагин | plugify-plugin-permissions | 1.3.1 |
| DynCall · плагин | plugify-plugin-dyncall | 2.0.9 |
| Permissions Storage · плагин | permissions-storage | 1.0.0 |
| Permissions Connector (Source 2) · плагин | permissions-connector-s2 | 1.0.0 |
В билд входят языковые модули тех языков, на которых написаны его плагины. Когда в билде появится плагин на другом языке, например на JavaScript, вместе с ним появится и модуль его языка.
Раскладка на диске
Архив распаковывается в папку game/ сервера. Пример для загрузчика Launcher на Linux:
- game/
- bin/
- linuxsteamrt64/
- s2launcher
- libplugify.so
- libsentry.so
- crashpad_handler
- sentry.jsonc
- csgo/
- addons/
- plugify/
- bin/
- linuxsteamrt64/
- micromamba
- configs/
- data/
- s2sdk/
- s2sdk.translations.jsonc
- permissions/
- permissions_connector_s2.translations.yaml
- logs/
- pkgs/
- .condarc
- build.json
Отличия загрузчиков:
- 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 выгружен:
Если пакет есть в билде, ставится его версия из билда. Остальные пакеты берутся из своих каналов: из перечисленных в .condarc или из переданного через -c.
Свои плагины можно держать и в отдельном окружении, потому что Plugify находит пакеты во всех папках envs/:
Плагины без пакета кладутся в отдельную папку в envs/, например envs/my_plugin/.
Добавленные так пакеты сохраняются при обновлении билда. Если вы пишете плагины на языке, модуль которого билд может позже убрать, установите этот модуль явно (mamba install -n modules plugify-module-golang), и он останется.