- Поддерживаемые версии
- 1.21
- 26
- Ядра и Прокси
- Bukkit
- Spigot
- Paper
- Минимальная версия Java
- 21
hClansSetbaseAddon
Клановые базы для hClans с гибким доступом и лимитами по уровню
Одна или несколько баз • права ролей hClans • SQLite / MySQL • настраиваемые действия
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
О ПЛАГИНЕ
hClansSetbaseAddon — дополнение для hClans 1.7, которое добавляет полноценную систему сохранённых клановых баз. Участники могут установить точку, телепортироваться к ней и удалить её через подкоманды основного
/clan.Дополнение поддерживает одиночный и множественный режимы. В первом у клана всегда одна база без необходимости вводить имя, во втором базы получают имена, а их максимальное количество зависит от уровня клана. Доступ к каждой операции можно связать с системой прав ролей hClans и отдельно оставить владельцу клана гарантированный доступ.
Координаты сохраняются через базу данных hClans, поэтому дополнению не требуется отдельное подключение к хранилищу. Сообщения, ошибки и успешные действия вынесены в
actions.yml.━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ОСНОВНЫЕ ВОЗМОЖНОСТИ
- Установка, посещение и удаление общей базы клана
- Одиночный режим либо несколько именованных баз
- Настраиваемые лимиты количества баз для каждого уровня клана
- Отдельный доступ к установке, телепортации и удалению
- Интеграция с правами ролей самого hClans
- Отдельно настраиваемый доступ владельца клана к каждой операции
- Защита существующей базы от случайной перезаписи
- Настраиваемый флаг принудительной перезаписи
- Белый или чёрный список миров для установки баз
- Настраиваемый шаблон имени базы
- Сохранение направления взгляда игрока
- Выравнивание X и Z по центру блока
- Алиасы всех трёх подкоманд
- Управляемая видимость команд и автодополнение имён баз
- Асинхронная работа с хранилищем hClans
- Автоматическое удаление сохранённых баз при удалении клана
- Настраиваемые MiniMessage-сообщения и контекстные переменные
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
КАК ЭТО РАБОТАЕТ
- Игрок состоит в клане; для ограниченной операции доступ предоставляет роль hClans либо настройка владельца клана.
- Команда
/clan setbaseсохраняет текущий мир, позицию с учётом настроек координат и, если включено, направление взгляда. - В множественном режиме новая база проверяется по формату имени и доступному клану лимиту.
- Команда
/clan baseасинхронно получает сохранённую точку и переносит игрока к ней в основном потоке сервера. - Команда
/clan removebaseудаляет выбранную точку из хранилища. - При удалении самого клана дополнение очищает все связанные с его именем базы.
Все три операции доступны только игрокам, которые состоят в клане. Результат каждой операции выводится через настраиваемое действие из
actions.yml.━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
РЕЖИМЫ БАЗ
MULTIPLE — несколько баз
- Стандартный и включённый по умолчанию режим
- Каждая база получает отдельное имя
- Количество новых баз ограничивается уровнем клана
- Для телепортации и удаления указывается имя нужной базы
- Если у клана ровно одна база и
autoTeleportSingleBase: true, команда/clan baseможет использоваться без имени
Код:
/clan setbase <имя>
/clan base <имя>
/clan removebase <имя>
SINGLE — одна база
- У каждого клана может быть только одна сохранённая точка
- Игрокам не требуется вводить имя
- Таблица лимитов по уровням в этом режиме не применяется
- Внутреннее имя единственной точки —
base
Код:
/clan setbase
/clan base
/clan removebase
Режим выбирается параметром
settings.bases.mode.━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ЛИМИТЫ ПО УРОВНЮ КЛАНА
В режиме
multiple максимальное количество новых баз определяется текущим уровнем клана. Стандартная таблица выглядит так:
Код:
Уровень 1 → 1 база
Уровень 2 → 3 базы
Уровень 3 → 5 баз
Уровень 4 → 7 баз
Уровень 5 → 10 баз
Уровень 6 → 13 баз
Уровень 7 → 16 баз
Уровень 8 → 19 баз
Уровень 9 → 22 базы
Уровень 10+ → 25 баз
Все пороги можно изменить в
settings.bases.limits. Для текущего уровня дополнение выбирает наибольшее настроенное значение среди порогов, которые не превышают этот уровень. Если уровень ниже первого порога, доступный лимит равен нулю.Лимит проверяется только при создании нового имени. Перезапись уже существующей базы не увеличивает число записей и не расходует дополнительное место.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ДОСТУП И КЛАНОВЫЕ ПРАВА
Дополнение использует внутреннюю систему прав ролей hClans. Эти ключи назначаются ролям средствами hClans и не являются обычными серверными правами:
Код:
hclanssetbase.setbase
hclanssetbase.base
hclanssetbase.removebase
hclanssetbase.setbase— создание или перенос базыhclanssetbase.base— телепортация к базеhclanssetbase.removebase— удаление базы
Для каждой операции настраиваются
clan.enable и ownerAlwaysAllowed. Владелец определяется по точному идентификатору владельца клана.Установка и удаление:
- При
clan.enable: trueкоманда доступна роли с соответствующим правом hClans - При
ownerAlwaysAllowed: trueвладелец может выполнить команду независимо от права роли - Если обе настройки выключены, операцию не сможет выполнить никто
Телепортация:
- При
base.clan.enable: falseтелепортироваться может любой участник клана - При
base.clan.enable: trueтребуетсяhclanssetbase.base, либо доступ получает владелец при включённомownerAlwaysAllowed
В стандартной конфигурации устанавливать и удалять базы могут владелец и разрешённые роли, а телепортироваться — все участники клана. Дополнение регистрирует ключи, но не назначает их ролям автоматически.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
КОМАНДЫ
Стандартный режим
multiple:
Код:
/clan setbase <имя>
/clan setbase <имя> -f
/clan base <имя>
/clan base
/clan removebase <имя>
Режим
single:
Код:
/clan setbase
/clan setbase -f
/clan base
/clan removebase
setbase— сохранить текущую позицию или перенести существующую базуbase— телепортироваться к сохранённой точкеremovebase— удалить сохранённую точку-f— стандартный флаг подтверждения перезаписи существующей базы
Команды являются подкомандами основного
/clan и предназначены только для игроков. Участие в клане обязательно для каждой из них.━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ИМЕНА, АЛИАСЫ И АВТОДОПОЛНЕНИЕ
Стандартный шаблон имени:
Код:
^[A-Za-z0-9_]{1,8}$
По умолчанию имя может содержать от 1 до 8 латинских букв, цифр и знаков подчёркивания. Шаблон полностью настраивается через
settings.bases.nameRegex. После его изменения отредактируйте также текст действия invalidBaseName, чтобы подсказка соответствовала новым правилам.Поиск базы выполняется без учёта регистра:
Home и home считаются одной записью. При этом исходное написание сохраняется для отображения игроку.- Для
setbase,baseиremovebaseможно добавить собственные алиасы - Основные названия трёх команд остаются активными всегда
- Пустые, повторяющиеся и конфликтующие с основными названиями алиасы пропускаются
- В множественном режиме
baseиremovebaseпредлагают сохранённые имена с фильтрацией по введённому началу - При защищённой перезаписи
setbaseпредлагает настроенный флаг для уже существующей базы visibleInTabComplete: trueпоказывает подкоманды участникам клана; варианты аргументов дополнительно учитывают доступ к операции
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ЗАЩИТА ОТ ПЕРЕЗАПИСИ
При стандартном
safeOverwrite: true дополнение не заменяет существующую точку молча. Игрок сначала получает действие baseOverwriteProtected, а затем может явно подтвердить перенос базы флагом -f.
Код:
/clan setbase home -f
В одиночном режиме имя не указывается:
Код:
/clan setbase -f
Сам флаг задаётся параметром
settings.bases.forceFlag и может быть изменён. При safeOverwrite: false существующая запись заменяется обычной командой установки.━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
МИРЫ И СОХРАНЯЕМАЯ ТОЧКА
Ограничение миров работает в двух режимах:
blacklist— установка разрешена везде, кроме перечисленных мировwhitelist— установка разрешена только в перечисленных мирах
Имена миров сравниваются без учёта регистра. Стандартно используется пустой чёрный список, поэтому установка разрешена во всех мирах. Ограничение применяется во время создания или переноса базы; уже сохранённая точка остаётся доступной для телепортации.
Параметры позиции:
blockCenter: trueсохраняет X и Z в центре текущего блока —blockX + 0.5иblockZ + 0.5- Высота Y сохраняется как точная координата игрока
saveYawPitch: trueсохраняет направление взгляда- При выключенном
saveYawPitchповорот и наклон сохраняются со значением 0
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ТЕЛЕПОРТАЦИЯ
После получения записи игрок сразу переносится в сохранённый мир на сохранённые X, Y, Z, yaw и pitch. Встроенные ожидание, стоимость и задержка между использованиями отсутствуют.
Если мир сохранённой базы сейчас недоступен, выполняется отдельное действие
baseWorldNotFound. Если сервер отклоняет само перемещение, используется baseTeleportFailed. Успешное перемещение вызывает baseTeleport.Дополнение переносит игрока именно в сохранённую координату и не подбирает вместо неё другой блок. В нём также нет собственных проверок боя, движения или регионов WorldGuard; оно не создаёт регионы и не изменяет их владельцев либо участников. Дополнительные ограничения телепортации должны обеспечивать другие системы сервера.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ХРАНЕНИЕ ДАННЫХ
hClansSetbaseAddon использует
ClanDatabaseApi основного hClans. Отдельные реквизиты базы для дополнения не нужны: сохранённые точки записываются в то же настроенное хранилище hClans — SQLite или MySQL.Для каждой базы сохраняются:
- Имя клана в исходном и нормализованном виде
- Имя базы в исходном и нормализованном виде
- Мир и координаты X, Y, Z
- Поворот yaw и наклон pitch
Операции хранилища выполняются асинхронно. Возврат к игровому API происходит в основном потоке, причём действие выполняется только если игрок всё ещё находится онлайн. Имена баз кэшируются для автодополнения, а событие удаления клана запускает асинхронную очистку его записей.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ДЕЙСТВИЯ И ПЕРЕМЕННЫЕ
Файл
actions.yml содержит отдельные сценарии для успешных операций, ошибок доступа, неправильного использования, недоступного мира, превышения лимита и других результатов.Доступные ключи действий:
Код:
storageError
notInClan
setbaseNoPermission
setbaseUsage
invalidBaseName
baseLimitReached
baseOverwriteProtected
worldBlocked
setbase
baseNoPermission
baseUsage
baseNotSet
baseWorldNotFound
baseTeleportFailed
baseTeleport
removebaseNoPermission
removebaseUsage
removebaseNotSet
removebase
Стандартный файл использует сообщения
[MESSAGE] с MiniMessage-оформлением. Выполнение цепочек передаётся системе действий hClans.В зависимости от события доступны контекстные переменные:
Код:
{clan}
{base}
{world}
{x}
{y}
{z}
{level}
{limit}
{count}
{command}
{nameRegex}
Набор зависит от конкретного результата: например, лимит использует
{level}, {limit} и {count}, а успешная установка — имя, мир и координаты базы. Значение {prefix} из стандартных сообщений предоставляет сам hClans. Стандартные шаблоны написаны на русском и могут быть полностью переведены или переоформлены владельцем сервера.━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ФАЙЛЫ КОНФИГУРАЦИИ
config.yml— режим баз, права, лимиты, миры, имена, алиасы и параметры сохраняемой позицииactions.yml— все сообщения и результирующие цепочки действий
Ключевые стандартные настройки:
Код:
settings:
command:
visibleInTabComplete: true
setbase:
aliases: {}
base:
aliases: {}
removebase:
aliases: {}
permissions:
setbase:
ownerAlwaysAllowed: true
clan:
enable: true
permission: hclanssetbase.setbase
base:
ownerAlwaysAllowed: true
clan:
enable: false
permission: hclanssetbase.base
removebase:
ownerAlwaysAllowed: true
clan:
enable: true
permission: hclanssetbase.removebase
bases:
mode: multiple
autoTeleportSingleBase: true
safeOverwrite: true
forceFlag: '-f'
nameRegex: '^[A-Za-z0-9_]{1,8}$'
limits:
1: 1
2: 3
3: 5
4: 7
5: 10
6: 13
7: 16
8: 19
9: 22
10: 25
worlds:
mode: blacklist
list: []
location:
blockCenter: true
saveYawPitch: true
Оба файла создаются из встроенных шаблонов только при отсутствии и не перезаписывают уже существующие настройки. После редактирования выполните полный перезапуск сервера, чтобы дополнение гарантированно перечитало конфигурацию.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ТРЕБОВАНИЯ И СОВМЕСТИМОСТЬ
Обязательно:
- hClans 1.7
- Paper 1.21.x
- Java 21
hClansSetbaseAddon является дополнением и самостоятельно без hClans не запускается. Версия 1.0 собрана против API hClans 1.7 и Paper API 1.21.
Обычные Spigot/CraftBukkit и Folia не поддерживаются. WorldGuard, WorldEdit, Vault и PlaceholderAPI не требуются; прямой интеграции с ними у дополнения нет.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
УСТАНОВКА
- Запустите сервер на Paper 1.21.x с Java 21.
- Установите и настройте hClans 1.7.
- Добавьте
hClansSetbaseAddon-1.0.jarчерез используемый hClans механизм загрузки дополнений. - Полностью запустите или перезапустите сервер, чтобы создались
config.ymlиactions.yml. - Выберите режим
multipleилиsingle, настройте лимиты, миры и защиту перезаписи. - Назначьте нужным ролям ключи
hclanssetbase.setbase,hclanssetbase.baseиhclanssetbase.removebaseсредствами hClans. - Отредактируйте сообщения и оформление в
actions.yml. - После изменений полностью перезапустите сервер и проверьте установку, посещение и удаление базы тестовым кланом.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ПОДДЕРЖКА
Если у вас появились вопросы по установке или настройке дополнения:
You must be logged in to see this link.
ПОДДЕРЖКА
Если у вас появились вопросы по установке или настройке дополнения:
You must be logged in to see this link.
- Команды и права
- Всё выше написано