- Поддерживаемые версии
- 1.21
- 26.1
- 26.2
- 26.3
- 26.4
- Ядра и Прокси
- Spigot
- Paper
- Folia
- Минимальная версия Java
- 21
- Исходный код
- https://github.com/Rulhot/rVisualBoards
Голографические табло с топами игроков прямо в мире. Игрок кликает по кнопкам, переключает топы и листает места. Без модов и ресурспака.
Paper 1.21.4+ • Folia • Java 21
Paper 1.21.4+ • Folia • Java 21
Как это работает
- Ты встаёшь на место табло и вводишь /rvb create spawn loonycube.
- Плагин ставит табло и берёт данные топов из ajLeaderboards.
- Игрок кликает по кнопке и переключает топ: баланс, время, убийства.
- Игрок смотрит на табло и крутит колесо мыши: места листаются до сотого.
Возможности
Табло
- Несколько топов на одном табло, переключение кликом по кнопке.
- Вкладки периодов: всё время, год, месяц, неделя, день, час.
- Прокрутка мест колесом мыши, до 100 мест на одном табло.
- Личная строка игрока с его местом и значением.
- Количество табло и топов не ограничено.
Данные
- Топы из ajLeaderboards.
- Топы из любого плагина с плейсхолдерами PlaceholderAPI. В конфиге лежит готовый пример для CakeAuction.
- Данные обновляются раз в 10 секунд, интервал задаёшь сам.
- Игрок видит табло с 32 блоков, радиус меняется в конфиге.
Внешний вид
- 4 готовых вида: loonycube, holyworld-coins, holyworld-mobs, holyworld-online.
- Свой вид в отдельном файле: колонки, цвета, размеры, отступы и тексты.
- 4 анимации смены топа: SLIDE_LEFT, SLIDE_RIGHT, ZOOM, CASCADE.
- Кнопка и строка увеличиваются, когда игрок на них смотрит.
- Звук клика по кнопке.
- MiniMessage во всех текстах: градиенты, тени, HEX.
Управление в игре
- Поворот на любой угол или лицом к себе.
- Размер табло от 0.25 до 4.
- Сдвиг по блокам в 6 направлениях.
- Перенос табло к себе и телепорт к табло.
- Привязка к центру блока и поворот кратно 90°.
- Ошибка в конфиге: плагин пишет в консоль файл и строку.
YAML:
update-interval-seconds: 10 # как часто обновляются данные топов, в секундах
view-radius: 32.0 # с какого расстояния игрок видит табло, в блоках
snap-to-grid: true # true: табло встаёт в центр блока и поворачивается кратно 90°
debug: false # подробные сообщения в консоль для поиска ошибок
metrics: true # анонимная статистика bStats
update-check: true # проверка новой версии плагина
command: # применяется после перезапуска сервера
name: "rvb" # название основной команды
aliases: # дополнительные названия команды
- rvisualboards
clicks:
cooldown-millis: 300 # пауза между кликами по кнопкам, в миллисекундах
sound:
key: "minecraft:ui.button.click" # ID звука клика
volume: 0.6 # громкость
pitch: 1.4 # высота
# Увеличение элемента, на который смотрит игрок.
hover:
buttons: true # увеличивать кнопки
rows: true # увеличивать строки таблицы
scale: 1.15 # во сколько раз растёт кнопка
row-scale: 1.1 # во сколько раз растёт строка
distance: 6.0 # с какого расстояния работает, в блоках
duration-ticks: 3 # длительность увеличения, в тиках
# Прокрутка мест колесом мыши.
scroll:
enabled: true # включить прокрутку
max-places: 100 # до какого места игрок долистает
step: 1 # на сколько мест сдвигает один шаг колеса
distance: 8.0 # с какого расстояния работает, в блоках
# Анимация при смене топа или периода.
animation:
enabled: true # включить анимации
appear: true # анимация при появлении табло
types: # SLIDE_LEFT, SLIDE_RIGHT, ZOOM, CASCADE
- CASCADE
duration-ticks: 6 # длительность, в тиках
stagger-ticks: 1 # задержка между строками, в тиках
distance: 0.6 # сдвиг, в блоках
advanced:
viewer-check-interval-ticks: 20 # как часто плагин проверяет, кто видит табло
hover-check-interval-ticks: 2 # как часто плагин проверяет взгляд игрока
# Плейсхолдеры источника данных. {board}: борд, {place}: место, {type}: период.
placeholders:
name: "%ajlb_lb_{board}_{place}_{type}_name%" # ник игрока на месте
prefix: "%ajlb_lb_{board}_{place}_{type}_prefix%" # префикс игрока
value: "%ajlb_lb_{board}_{place}_{type}_value%" # значение
position: "%ajlb_position_{board}_{type}%" # место самого игрока
personal-value: "%ajlb_value_{board}_{type}%" # значение самого игрока
empty-name: "---" # что источник возвращает для пустого места
# Ширина нестандартных символов в пикселях. Нужна для ровных колонок.
char-widths:
"☠": 9
"⛃": 9
"⌚": 9
config-version: 1 # служебное поле, не меняй
Каждый файл в папке tops задаёт отдельный вид табло. Имя файла ты указываешь в /rvb create <id> <вид>.
YAML:
# Топы на этом табло. Каждый топ получает свою кнопку.
tops:
balance: # ID топа, любое название
board: vault_eco_balance # борд ajLeaderboards
label: "Баланс" # текст на кнопке
title: "<gradient:#f59e5b:#f5c05b>Топ по монетам" # заголовок табло
button-color: "#B3402709" # цвет выбранной кнопки, формат #AARRGGBB
formats: # свои тексты для этого топа, перекрывают общую секцию formats
header-value: "<#a6a6a6>Баланс"
row-place: "<#f9ce5c>{place}"
row-value: "<#ebb857>{value} <#f5a05b>⛃"
empty-place: "<#f9ce5c>{place}"
empty-value: "<#ebb857>--- <#f5a05b>⛃"
# Топ из другого плагина: добавь секцию placeholders со своими плейсхолдерами.
sellers:
board: cakeauction_sellers
label: "Продавцы"
title: "<gradient:#3fd97a:#a5f08c>Топ продавцов"
button-color: "#B30C3618"
placeholders:
name: "%cakeauction_top_raw_name_{place}%"
prefix: "%cakeauction_top_prefix_{place}%"
value: "%cakeauction_top_value_{place}%"
position: "" # пустая строка: у источника нет такого плейсхолдера
personal-value: ""
# Периоды на вкладках: alltime, yearly, monthly, weekly, daily, hourly.
periods:
- alltime
period-names: # как периоды называются на табло
alltime: "Всё время"
yearly: "Год"
monthly: "Месяц"
weekly: "Неделя"
daily: "День"
hourly: "Час"
# Тексты табло, формат MiniMessage.
formats:
subtitle: "<#8c8c8c>{period}" # подзаголовок. {period}: название периода
header-place: "<#a6a6a6>№" # шапка колонки места
header-name: "<#a6a6a6>Игрок" # шапка колонки ника
header-value: "<#a6a6a6>Значение" # шапка колонки значения
row-place: "<white>{place}" # место в строке
row-name: "{prefix}<#f0f0f0>{name}" # ник в строке. {prefix}: префикс игрока
row-value: "<white>{value}" # значение в строке
empty-place: "<white>{place}" # место в пустой строке
empty-name: "<#f0f0f0>---" # ник в пустой строке
empty-value: "<white>---" # значение в пустой строке
personal-place: "<white>{position}" # место самого игрока
personal-place-unranked: "<white>-" # место игрока, которого нет в топе
personal-name: "<#f0f0f0>{name}" # ник в личной строке
personal-value: "<white>{value}" # значение в личной строке
button: "<white>{label}" # кнопка топа
button-selected: "<white>{label}" # выбранная кнопка
arrow-left: "<white>◀" # стрелка прокрутки кнопок влево
arrow-right: "<white>▶" # стрелка прокрутки кнопок вправо
tab: "<gray>{period}" # вкладка периода
tab-selected: "<white>{period}" # выбранная вкладка
table:
width: 5.5 # ширина табло, в блоках
rows: 15 # сколько мест видно сразу
text-scale: 1.0 # размер текста строк
title-scale: 1.0 # размер заголовка
personal-row: false # true: показывать личную строку игрока
shadow: true # тень у текста
full-bright: true # true: текст не темнеет ночью и в тени
buttons: # кнопки переключения топов
enabled: true
visible: 3 # сколько кнопок видно сразу
arrows: true # стрелки, когда топов больше, чем visible
height: 0.3 # высота кнопки, в блоках
text-scale: 1.0 # размер текста кнопки
arrow-width: 0.2 # ширина стрелки, в блоках
tabs: # вкладки переключения периодов
enabled: false
height: 0.24 # высота вкладки, в блоках
text-scale: 0.8 # размер текста вкладки
# Колонки. from и to: левый и правый край в блоках от центра табло.
# align: LEFT, CENTER, RIGHT.
columns:
place:
from: -2.75
to: -2.21
align: RIGHT
name:
from: -2.16
to: 1.51
align: CENTER
value:
from: 1.62
to: 2.75
align: RIGHT
# Цвета фона, формат #AARRGGBB. Первые два знака: прозрачность.
colors:
title: "#70000000" # заголовок
header: "#80000000" # шапка таблицы
column: "#5A000000" # колонки
personal-row: "#5A000000" # личная строка
button: "#66000000" # кнопка
button-selected: "#B3402709" # выбранная кнопка
arrow: "#66000000" # стрелка
tab: "#40000000" # вкладка
tab-selected: "#99000000" # выбранная вкладка
# Высоты и отступы, в блоках.
spacing:
padding: 0.1 # поля по краям табло
title-height: 0.26 # высота заголовка
subtitle-height: 0.0 # высота подзаголовка, 0 убирает его
header-height: 0.31 # высота шапки таблицы
gap: 0.03 # зазор между строками
cell-padding: 0.05 # отступ текста от края колонки
buttons-margin: 0.24 # отступ между таблицей и кнопками
buttons-gap: 0.13 # зазор между кнопками
depth-step: 0.01 # шаг между слоями фона и текста
YAML:
# Все тексты в формате MiniMessage. {prefix} подставляет строку prefix.
prefix: "<b><gradient:#82ABF0:#82ABF0>rVisualBoards</gradient></b> <dark_gray>»</dark_gray> <white>"
general:
help: "..." # справка /rvb help
player-only: "..." # команду ввели из консоли
not-ready: "..." # плагин ещё грузится или в конфиге ошибка
board-not-found: "..." # табло с таким ID нет. {id}
type-missing: "..." # нет файла вида. {type}, {types}: доступные виды
create:
success: "..." # табло создано. {id}, {type}, {world}, {x}, {y}, {z}
no-type: "..." # не указан вид. {id}, {types}
invalid-id: "..." # в ID лишние символы
exists: "..." # табло с таким ID уже есть. {id}
movehere:
success: "..." # табло перенесено. {id}, {world}, {x}, {y}, {z}
remove:
success: "..." # табло удалено. {id}
list:
empty: "..." # табло ещё нет
header: "..." # шапка списка. {count}
entry: "..." # строка списка. {id}, {type}, {world}, {x}, {y}, {z}
reload:
success: "..." # конфиги перечитаны
busy: "..." # перезагрузка уже идёт
failed: "..." # ошибка в конфиге, файл и строка в консоли
edit:
info: "..." # сведения о табло. {id}, {type}, {tops}, {default-top}, {yaw}, {scale}
help: "..." # список действий /rvb edit
rotated: "..." # табло повёрнуто. {yaw}
scaled: "..." # размер изменён. {scale}
moved: "..." # табло сдвинуто
teleported: "..." # игрок перемещён к табло
teleport-failed: "..." # телепорт не удался
world-not-loaded: "..." # мир табло не загружен. {world}
type: "..." # вид изменён. {type}
default-top: "..." # первый топ изменён. {top}
top-missing: "..." # такого топа нет на табло. {top}
no-file: "..." # текст вместо вида, если файл удалён
config-version: 1 # служебное поле, не меняй
- Зависимости
- PlaceholderAPI, packetevents, ajLeaderboards
- Команды и права
Команда Что делает /rvb help Показывает список команд /rvb create <id> <вид> Создаёт табло там, где ты стоишь. Вид: файл из папки tops /rvb movehere <id> Переносит табло к тебе /rvb edit <id> Показывает сведения о табло /rvb edit <id> rotate <0-360> Поворачивает табло на угол /rvb edit <id> face Разворачивает табло к тебе /rvb edit <id> scale <0.25-4> Меняет размер табло /rvb edit <id> move up|down|left|right|front|back <блоки> Сдвигает табло /rvb edit <id> tp Телепортирует тебя к табло /rvb edit <id> type <вид> Меняет вид табло /rvb edit <id> default-top <топ> Задаёт топ, который открывается первым /rvb remove <id> Удаляет табло /rvb list Показывает список табло /rvb reload Перечитывает конфиги и папку tops
Алиас: /rvisualboards. Все команды требуют право rvisualboards.admin.