BuildingLicense — это плагин для Oxide/uMod, который ограничивает улучшение строительных блоков Rust по лицензиям (permissions).
Плагин блокирует апгрейд до Stone, Metal и Armored, если у игрока нет соответствующего права, и оставляет свободным базовый уровень Wood и ниже.
Проект сделан в стиле whitecristafer и поддерживает:
- русифицированный конфиг;
- красивый чат-префикс
[EVOLVE](персонально для сервераevolve.infunv.ru); - админ-команды;
- авто-обновление;
- резервное копирование перед применением обновления;
- дополнительные ограничения по категориям построек.
Плагин нужен для серверов, где апгрейд зданий должен быть не просто “по ресурсу”, а по лицензии.
Идея простая:
- игрок без лицензии может строить и улучшать только базовые уровни;
Stone,MetalиArmoredоткрываются только через permissions;- администратор может вручную выдавать лицензии;
- при старте плагин подготавливает конфиг, папки данных и кэши.
В текущей версии код использует:
- основной hook
CanUpgrade; - резервный hook
OnStructureUpgrade; - чат-команду
/bl; - чат-команду
/grantlicense; - авто-обновление по
SourceUrl.
- Блокировка улучшений без лицензии.
- Поддержка нескольких лицензий одновременно:
buildinglicense.stonebuildinglicense.metalbuildinglicense.armored
- Красивые сообщения в чате с префиксом:
<size=12><color=#9966cc><b>[EVOLVE]</b></color></size>
- Админ-меню через
/bl. - Выдача лицензий через
/grantlicense. - Возможность отключать отдельные уровни улучшения в конфиге.
- Ограничение по категориям построек:
- foundation
- wall
- floor
- stair
- roof
- ramp
- Авто-обновление плагина по ссылке
SourceUrl. - Бэкап
.csфайла перед применением обновления. - Логирование блокировок в консоль.
- Автосоздание папок данных и резервных копий.
Плагин проверяет попытку улучшения блока:
- Если плагин выключен — ничего не блокирует.
- Если уровень
Woodили ниже — пропускает. - Если уровень
Stone,MetalилиArmored:- проверяет permission;
- проверяет, не отключён ли уровень в конфиге;
- проверяет ограничения по категории постройки;
- при отсутствии лицензии блокирует улучшение и пишет сообщение игроку.
- Если основной hook был обойдён, резервный hook дублирует проверку.
| Permission | Назначение |
|---|---|
buildinglicense.admin |
Доступ к /bl и /grantlicense |
buildinglicense.stone |
Разрешение на улучшение до Stone |
buildinglicense.metal |
Разрешение на улучшение до Metal |
buildinglicense.armored |
Разрешение на улучшение до Armored |
Лицензии можно комбинировать. Например:
stone + metalstone + metal + armored
Админ-команда со следующими подкомандами:
| Подкоманда | Описание |
|---|---|
/bl help |
Показать справку |
/bl status |
Показать текущий статус плагина |
/bl reload |
Перезагрузить конфиг и кэши |
/bl update |
Запустить ручную проверку обновления |
Выдаёт игроку соответствующую лицензию.
Примеры:
/grantlicense bscbg stone
/grantlicense 76561198209258869 armored
/grantlicense SomeName metalФайл создаётся автоматически:
oxide/config/BuildingLicense.json
Плагин также создаёт рабочие папки:
oxide/data/BuildingLicense/
oxide/data/BuildingLicense/backups/
{
"Settings": {
"Enabled": true,
"BlockWithoutLicense": true,
"ShowMessages": true,
"LogToConsole": true,
"AllowAdminsBypass": false,
"UseCategoryRestrictions": true,
"AllowMultipleLicenses": true
},
"Update": {
"Enabled": true,
"CheckOnStartup": true,
"AutoCheck": true,
"CheckIntervalMinutes": 360,
"SourceUrl": "https://raw.githubusercontent.com/whitecristafer/BuildingLicense/main/BuildingLicense.cs",
"TimeoutSeconds": 15,
"CreateBackupBeforeApply": true
}
}В конфиге уже лежат базовые русские сообщения:
- о нехватке лицензии;
- о заблокированном уровне;
- о недоступной категории;
- о выдаче лицензии;
- о проверке и применении обновления.
Каждый уровень имеет свои настройки:
StoneMetalArmored
Для каждого уровня можно:
- включить или отключить правило;
- изменить permission;
- поменять текст сообщения;
- задать разрешённые категории построек.
Можно ограничить уровень не на все постройки сразу, а только на часть категорий.
Например:
Stoneразрешён только дляfoundationиwall;Metalразрешён для всех;Armoredразрешён только дляwallиroof.
Это полезно, если нужен гибкий контроль апгрейда на сервере.
Плагин умеет сам проверять новую версию по SourceUrl.
Что делает система обновления:
- проверяет удалённый
.csфайл; - извлекает версию из
[Info(...)]; - сравнивает с локальной;
- если версия новее — скачивает файл;
- при необходимости создаёт бэкап;
- сохраняет обновлённый скрипт;
- перезагружает плагин.
- Скопируйте
BuildingLicense.csв папкуoxide/plugins. - Перезапустите сервер или выполните:
oxide.reload BuildingLicense
- Проверьте файл конфига в
oxide/config/BuildingLicense.json. - Выдайте администратору право:
buildinglicense.admin - Раздайте лицензии игрокам через
/grantlicense.
Плагин использует красивый префикс:
<size=12><color=#9966cc><b>[EVOLVE]</b></color></size>
Это даёт единый стиль уведомлений и удобно читается в чате.
- Плагин рассчитан на серверы Rust с установленным Oxide/uMod.
- Если игрок уже имеет нужный permission, улучшение будет разрешено.
- Если уровень отключён в конфиге, он блокируется независимо от лицензии.
- При включённом логировании все блокировки пишутся в консоль.
- При включённом авто-обновлении файл
.csможет перезаписываться новой версией изSourceUrl.
- Автор: whitecristafer
- Спонсорство / проект: infunv.ru
- Название: BuildingLicense
- Версия: 1.1.0
Этот патч распространяется в составе проекта и может использоваться на Rust-серверах в рамках правил сервера и исходного репозитория.
Для коммерческого использования или распространения модифицированной версии рекомендуется согласовать это с автором проекта.