Skip to content

whitecristafer/BuildingLicense

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

BuildingLicense (плагин для infunv.ru)

Version Status Rust Oxide Language Author

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.stone
    • buildinglicense.metal
    • buildinglicense.armored
  • Красивые сообщения в чате с префиксом:
    • <size=12><color=#9966cc><b>[EVOLVE]</b></color></size>
  • Админ-меню через /bl.
  • Выдача лицензий через /grantlicense.
  • Возможность отключать отдельные уровни улучшения в конфиге.
  • Ограничение по категориям построек:
    • foundation
    • wall
    • floor
    • stair
    • roof
    • ramp
  • Авто-обновление плагина по ссылке SourceUrl.
  • Бэкап .cs файла перед применением обновления.
  • Логирование блокировок в консоль.
  • Автосоздание папок данных и резервных копий.

Как работает блокировка

Плагин проверяет попытку улучшения блока:

  1. Если плагин выключен — ничего не блокирует.
  2. Если уровень Wood или ниже — пропускает.
  3. Если уровень Stone, Metal или Armored:
    • проверяет permission;
    • проверяет, не отключён ли уровень в конфиге;
    • проверяет ограничения по категории постройки;
    • при отсутствии лицензии блокирует улучшение и пишет сообщение игроку.
  4. Если основной hook был обойдён, резервный hook дублирует проверку.

Permissions

Permission Назначение
buildinglicense.admin Доступ к /bl и /grantlicense
buildinglicense.stone Разрешение на улучшение до Stone
buildinglicense.metal Разрешение на улучшение до Metal
buildinglicense.armored Разрешение на улучшение до Armored

Лицензии можно комбинировать. Например:

  • stone + metal
  • stone + metal + armored

Команды

/bl

Админ-команда со следующими подкомандами:

Подкоманда Описание
/bl help Показать справку
/bl status Показать текущий статус плагина
/bl reload Перезагрузить конфиг и кэши
/bl update Запустить ручную проверку обновления

/grantlicense <player> <stone|metal|armored>

Выдаёт игроку соответствующую лицензию.

Примеры:

/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
  }
}

Сообщения

В конфиге уже лежат базовые русские сообщения:

  • о нехватке лицензии;
  • о заблокированном уровне;
  • о недоступной категории;
  • о выдаче лицензии;
  • о проверке и применении обновления.

Правила по уровням

Каждый уровень имеет свои настройки:

  • Stone
  • Metal
  • Armored

Для каждого уровня можно:

  • включить или отключить правило;
  • изменить permission;
  • поменять текст сообщения;
  • задать разрешённые категории построек.

Пример логики категорий

Можно ограничить уровень не на все постройки сразу, а только на часть категорий.

Например:

  • Stone разрешён только для foundation и wall;
  • Metal разрешён для всех;
  • Armored разрешён только для wall и roof.

Это полезно, если нужен гибкий контроль апгрейда на сервере.


Авто-обновление

Плагин умеет сам проверять новую версию по SourceUrl.

Что делает система обновления:

  • проверяет удалённый .cs файл;
  • извлекает версию из [Info(...)];
  • сравнивает с локальной;
  • если версия новее — скачивает файл;
  • при необходимости создаёт бэкап;
  • сохраняет обновлённый скрипт;
  • перезагружает плагин.

Установка

  1. Скопируйте BuildingLicense.cs в папку oxide/plugins.
  2. Перезапустите сервер или выполните:
    oxide.reload BuildingLicense
  3. Проверьте файл конфига в oxide/config/BuildingLicense.json.
  4. Выдайте администратору право:
    buildinglicense.admin
    
  5. Раздайте лицензии игрокам через /grantlicense.

Сообщения в чате

Плагин использует красивый префикс:

<size=12><color=#9966cc><b>[EVOLVE]</b></color></size>

Это даёт единый стиль уведомлений и удобно читается в чате.


Примечания

  • Плагин рассчитан на серверы Rust с установленным Oxide/uMod.
  • Если игрок уже имеет нужный permission, улучшение будет разрешено.
  • Если уровень отключён в конфиге, он блокируется независимо от лицензии.
  • При включённом логировании все блокировки пишутся в консоль.
  • При включённом авто-обновлении файл .cs может перезаписываться новой версией из SourceUrl.

Авторство

  • Автор: whitecristafer
  • Спонсорство / проект: infunv.ru
  • Название: BuildingLicense
  • Версия: 1.1.0

Лицензия

Этот патч распространяется в составе проекта и может использоваться на Rust-серверах в рамках правил сервера и исходного репозитория.
Для коммерческого использования или распространения модифицированной версии рекомендуется согласовать это с автором проекта.

About

Расширенный плагин Rust (Oxide/uMod), который ограничивает возможности улучшения строительных блоков с помощью настраиваемых лицензионных разрешений, правил категорий, интерфейса чата и автоматических обновлений.

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages