
XLeaderboards
Плагин для быстрой и эффективной системы лидербордов с поддержкой временных рейтингов (ежедневные, еженедельные, ежемесячные, постоянные) на основе плейсхолдеров.
XLeaderboards - это плагин для серверов Minecraft, который позволяет создавать быстрые и эффективные таблицы лидеров. В отличие от многих аналогов, он заточен именно под временные рейтинги - ежедневные, еженедельные, ежемесячные и постоянные. Всё строится на плейсхолдерах, так что не нужны ни NPC, ни меню. Главная фишка - простота настройки временных топов, в чём мало кто может с ним сравниться.
Возможности
- Полностью переработанное ядро. XLeaderboards переписан с нуля и теперь поддерживает SQLite и MySQL. Это позволяет плагину легко масштабироваться и работать с большими объёмами данных.
- Улучшенная производительность. Успешно протестирован с более чем 2 миллионами реальных записей - обновление занимает меньше минуты.
- Временные лидерборды. Эффективная система ранжирования с полной поддержкой daily, weekly, monthly и permanent.
- Простая настройка. Создавайте и настраивайте топы с помощью обычных плейсхолдеров.
- Безграничные возможности. Благодаря логике на плейсхолдерах можно делать топы для любого плагина - даже если у него нет встроенной поддержки. XLeaderboards сам обрабатывает форматирование чисел и сравнение.
- Рейтинг игроков. Показывает позицию каждого игрока во всех лидербордах (ежедневных, еженедельных и т.д.) с помощью встроенных плейсхолдеров.
- Улучшенные команды. Добавлены автодополнение (tab-completion) и команда /reload для удобного управления.
- Оптимизации. Полностью настраиваемая частота записи, лимиты данных и временные интервалы под ваш сервер.
- Поддержка всех версий. Работает с 1.21.4 по 1.21.8. Хотя XLeaderboards не использует NMS, в нём есть логика совместимости с изменениями в разных версиях.
- Поддержка Folia. Так как Folia становится стандартом производительности для современных серверов Minecraft, XLeaderboards теперь полностью его поддерживает.
- Награды за топ. Можно настроить награды для игроков, попавших в ежедневные лидерборды.
Как начать
- Скачайте и установите плагин. По умолчанию поддерживаются SQLite и MySQL.
- Запустите сервер. После генерации папки плагина настройте параметры базы данных в зависимости от выбранного движка.
- Настройте топы. Используйте плейсхолдеры по вашему выбору для создания кастомных лидербордов.
- Интегрируйте с DecentHolograms или другим плагином. Убедитесь, что ваш плагин поддерживает PlaceholderAPI, и следуйте примеру конфигурации ниже.
- Обратитесь к разделу плейсхолдеров. Все доступные форматы перечислены в соответствующем разделе.
Пример конфига для DecentHolograms
location: Spawnb:6.022:33.500:11.943
enabled: true
display-range: 48
update-range: 48
update-interval: 20
facing: 0.0
down-origin: false
pages:
- lines:
- content: '#ICON: PLAYER_HEAD (eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZWM2ZTYwNGJkNTNkOTc4ODc1OTVhMDYyYjdjNTEyY2E0ZGJiZmU0OGJiNGFkY2VmNzEyNWQxZGIxMDNhYjdmZiJ9fX0=)'
height: 0.7
- content: '#F4F149&lJ#F5F246&lU#F5F242&lG#F6F33F&lA#F7F33B&lD#F8F438&lO#F8F535&lR#F9F531&lE#FAF62E&lS
#FBF727&lM#FBF727&lI#FBF727&lL#FBF727&lL#FBF727&lO#FBF727&lN#FBF727&lA#FBF727&lR#FBF727&lI#FBF727&lO#FBF727&lS'
height: 0.3
- content: '&7(La riqueza y ellos son uno)'
height: 0.3
- content: ''
height: 0.3
- content: '#FBF727#1. &f%xleaderboard_top_coins;daily;top_name;1% &8- #FBF727%xleaderboard_top_coins;daily;top_value;1%
#FAFF2E⛃'
height: 0.3
- content: '#FBF727#2. &f%xleaderboard_top_coins;daily;top_name;2% &8- #FBF727%xleaderboard_top_coins;daily;top_value;2%
#FAFF2E⛃'
height: 0.3
- content: '#FBF727#3. &f%xleaderboard_top_coins;daily;top_name;3% &8- #FBF727%xleaderboard_top_coins;daily;top_value;3%
#FAFF2E⛃'
height: 0.3
- content: '#FBF727#4. &f%xleaderboard_top_coins;daily;top_name;4% &8- #FBF727%xleaderboard_top_coins;daily;top_value;4%
#FAFF2E⛃'
height: 0.3
- content: '#FBF727#5. &f%xleaderboard_top_coins;daily;top_name;5% &8- #FBF727%xleaderboard_top_coins;daily;top_value;5%
#FAFF2E⛃'
height: 0.3
- content: '&r'
height: 0.3
- content: '&8► &fTu posición: #FBF727#%xleaderboard_ranking_daily_coins% &8- #FBF727%xleaderboard_amount_daily_coins%
#FAFF2E⛃ &8◄'
height: 0.3
- content: '&r'
height: 0.3
- content: '#F4F149&l[Diario] &7[Semanal] [Mensual] [Permanente]'
height: 0.3
actions:
RIGHT:
- NEXT_PAGE:tops_DINERO
- SOUND:UI_BUTTON_CLICK:0.7:2.7
- lines:
- content: '#ICON: PLAYER_HEAD (eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZWM2ZTYwNGJkNTNkOTc4ODc1OTVhMDYyYjdjNTEyY2E0ZGJiZmU0OGJiNGFkY2VmNzEyNWQxZGIxMDNhYjdmZiJ9fX0=)'
height: 0.7
- content: '#F4F149&lJ#F5F246&lU#F5F242&lG#F6F33F&lA#F7F33B&lD#F8F438&lO#F8F535&lR#F9F531&lE#FAF62E&lS
#FBF727&lM#FBF727&lI#FBF727&lL#FBF727&lL#FBF727&lO#FBF727&lN#FBF727&lA#FBF727&lR#FBF727&lI#FBF727&lO#FBF727&lS'
height: 0.3
- content: '&7(La riqueza y ellos son uno)'
height: 0.3
- content: ''
height: 0.3
- content: '#FBF727#1. &f%xleaderboard_top_coins;weekly;top_name;1% &8- #FBF727%xleaderboard_top_coins;weekly;top_value;1%
#FAFF2E⛃'
height: 0.3
- content: '#FBF727#2. &f%xleaderboard_top_coins;weekly;top_name;2% &8- #FBF727%xleaderboard_top_coins;weekly;top_value;2%
#FAFF2E⛃'
height: 0.3
- content: '#FBF727#3. &f%xleaderboard_top_coins;weekly;top_name;3% &8- #FBF727%xleaderboard_top_coins;weekly;top_value;3%
#FAFF2E⛃'
height: 0.3
- content: '#FBF727#4. &f%xleaderboard_top_coins;weekly;top_name;4% &8- #FBF727%xleaderboard_top_coins;weekly;top_value;4%
#FAFF2E⛃'
height: 0.3
- content: '#FBF727#5. &f%xleaderboard_top_coins;weekly;top_name;5% &8- #FBF727%xleaderboard_top_coins;weekly;top_value;5%
#FAFF2E⛃'
height: 0.3
- content: '&r'
height: 0.3
- content: '&8► &fTu posición: #FBF727#%xleaderboard_ranking_weekly_coins% &8- #FBF727%xleaderboard_amount_weekly_coins%
#FAFF2E⛃ &8◄'
height: 0.3
- content: '&r'
height: 0.3
- content: '&7[Diario] #F4F149&l[Semanal] &7[Mensual] [Permanente]'
height: 0.3
actions:
LEFT:
- PREV_PAGE:tops_DINERO
- SOUND:UI_BUTTON_CLICK:0.7:2.7
RIGHT:
- NEXT_PAGE:tops_DINERO
- SOUND:UI_BUTTON_CLICK:0.7:2.7
- lines:
- content: '#ICON: PLAYER_HEAD (eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZWM2ZTYwNGJkNTNkOTc4ODc1OTVhMDYyYjdjNTEyY2E0ZGJiZmU0OGJiNGFkY2VmNzEyNWQxZGIxMDNhYjdmZiJ9fX0=)'
height: 0.7
- content: '#F4F149&lJ#F5F246&lU#F5F242&lG#F6F33F&lA#F7F33B&lD#F8F438&lO#F8F535&lR#F9F531&lE#FAF62E&lS
#FBF727&lM#FBF727&lI#FBF727&lL#FBF727&lL#FBF727&lO#FBF727&lN#FBF727&lA#FBF727&lR#FBF727&lI#FBF727&lO#FBF727&lS'
height: 0.3
- content: '&7(La riqueza y ellos son uno)'
height: 0.3
- content: ''
height: 0.3
- content: '#FBF727#1. &f%xleaderboard_top_coins;monthly;top_name;1% &8- #FBF727%xleaderboard_top_coins;monthly;top_value;1%
#FAFF2E⛃'
height: 0.3
- content: '#FBF727#2. &f%xleaderboard_top_coins;monthly;top_name;2% &8- #FBF727%xleaderboard_top_coins;monthly;top_value;2%
#FAFF2E⛃'
height: 0.3
- content: '#FBF727#3. &f%xleaderboard_top_coins;monthly;top_name;3% &8- #FBF727%xleaderboard_top_coins;monthly;top_value;3%
#FAFF2E⛃'
height: 0.3
- content: '#FBF727#4. &f%xleaderboard_top_coins;monthly;top_name;4% &8- #FBF727%xleaderboard_top_coins;monthly;top_value;4%
#FAFF2E⛃'
height: 0.3
- content: '#FBF727#5. &f%xleaderboard_top_coins;monthly;top_name;5% &8- #FBF727%xleaderboard_top_coins;monthly;top_value;5%
#FAFF2E⛃'
height: 0.3
- content: '&r'
height: 0.3
- content: '&8► &fTu posición: #FBF727#%xleaderboard_ranking_monthly_coins% &8- #FBF727%xleaderboard_amount_monthly_coins%
#FAFF2E⛃ &8◄'
height: 0.3
- content: '&r'
height: 0.3
- content: '&7[Diario] [Semanal] #F4F149&l[Mensual] &7[Permanente]'
height: 0.3
actions:
LEFT:
- PREV_PAGE:tops_DINERO
- SOUND:UI_BUTTON_CLICK:0.7:2.7
RIGHT:
- NEXT_PAGE:tops_DINERO
- SOUND:UI_BUTTON_CLICK:0.7:2.7
- lines:
- content: '#ICON: PLAYER_HEAD (eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZWM2ZTYwNGJkNTNkOTc4ODc1OTVhMDYyYjdjNTEyY2E0ZGJiZmU0OGJiNGFkY2VmNzEyNWQxZGIxMDNhYjdmZiJ9fX0=)'
height: 0.7
- content: '#F4F149&lJ#F5F246&lU#F5F242&lG#F6F33F&lA#F7F33B&lD#F8F438&lO#F8F535&lR#F9F531&lE#FAF62E&lS
#FBF727&lM#FBF727&lI#FBF727&lL#FBF727&lL#FBF727&lO#FBF727&lN#FBF727&lA#FBF727&lR#FBF727&lI#FBF727&lO#FBF727&lS'
height: 0.3
- content: '&7(La riqueza y ellos son uno)'
height: 0.3
- content: ''
height: 0.3
- content: '#FBF727#1. &f%xleaderboard_top_coins;permanent;top_name;1% &8- #FBF727%xleaderboard_top_coins;permanent;top_value;1%
#FAFF2E⛃'
height: 0.3
- content: '#FBF727#2. &f%xleaderboard_top_coins;permanent;top_name;2% &8- #FBF727%xleaderboard_top_coins;permanent;top_value;2%
#FAFF2E⛃'
height: 0.3
- content: '#FBF727#3. &f%xleaderboard_top_coins;permanent;top_name;3% &8- #FBF727%xleaderboard_top_coins;permanent;top_value;3%
#FAFF2E⛃'
height: 0.3
- content: '#FBF727#4. &f%xleaderboard_top_coins;permanent;top_name;4% &8- #FBF727%xleaderboard_top_coins;permanent;top_value;4%
#FAFF2E⛃'
height: 0.3
- content: '#FBF727#5. &f%xleaderboard_top_coins;permanent;top_name;5% &8- #FBF727%xleaderboard_top_coins;permanent;top_value;5%
#FAFF2E⛃'
height: 0.3
- content: '&r'
height: 0.3
- content: '&8► &fTu posición: #FBF727#%xleaderboard_ranking_permanent_coins% &8- #FBF727%xleaderboard_amount_permanent_coins%
#FAFF2E⛃ &8◄'
height: 0.3
- content: '&r'
height: 0.3
- content: '&7[Diario] [Semanal] [Mensual] #F4F149&l[Permanente]'
height: 0.3
actions:
LEFT:
- PREV_PAGE:tops_DINERO
- SOUND:UI_BUTTON_CLICK:0.7:2.7
config.yml
tops:
kills:
## Этот плейсхолдер будет использоваться для получения текущего значения лидерборда.
placeholder: "%statistic_player_kills%"
name: "Убийства"
databaseId: survival_top
debug: false
optimizations:
## Максимальный размер bulk-операции для MongoDB. Если у вас много игроков, можно увеличить,
## но следите за потреблением памяти.
max-bulk-size: 1000
## Максимальное количество кэшированных записей топа, загружаемых в память сервера.
cached-top-entries: 10
## Если у вас много игроков, можно увеличить это значение.
ticks-between-updates: 600
## Максимальный размер bulk-операции для сброса временных значений. Он меньше,
## но тоже может быть увеличен с осторожностью.
max-reset-bulk-size: 5000
topUpdates:
daily:
minutes: 10
weekly:
minutes: 30
monthly:
hours: 3
permanent:
hours: 6
databases:
mongodb:
host: localhost
port: 27017
database: leaderboards
user: root
password: root
lang.yml
tops:
noPermission: "&cУ вас нет прав для использования этой команды."
noRanking: "&6Не в рейтинге"
noTop: "&6Нет записи"
loading: "&fЗагрузка..."
hologram:
daily: "&6&l[Ежедневный] &7[Еженедельный] [Ежемесячный] [Постоянный]"
weekly: "&7[Ежедневный] &6&l[Еженедельный] &7[Ежемесячный] [Постоянный]"
monthly: "&7[Ежедневный] &7[Еженедельный] &6&l[Ежемесячный] &7[Постоянный]"
permanent: "&7[Ежедневный] &7[Еженедельный] &7[Ежемесячный] &6&l[Постоянный]"
daily: "Ежедневный"
weekly: "Еженедельный"
monthly: "Ежемесячный"
permanent: "Постоянный"
invalidTimeType: "&cНеверный тип временного лидерборда."
toggleWait: "&cПожалуйста, подождите немного перед сменой времени лидерборда."
toggleTime: "&fВремя лидерборда теперь: &e<timeType>"
tops: |-
&d &a
<center>&6&l<name> ТОПЫ
&d &f
<tops>
&d &b
topLine: "&b#<#> &8- &f<name> &8- &e<value>"
rewards.yml
enabled: false
rewards:
kills:
top1:
top: 1
rewards:
- "command: give <player> diamond_sword"
- "message: &7 &a"
- "center_message: &6&lТОП &e#<top> &6&lУБИЙСТВА &f&l<amount>"
- "message: &7 &d"
- "message: &7Вы получили алмазный меч за попадание в топ!"
- "message: &7 &a"
top2:
top: 2
rewards:
- "command: give <player> iron_sword"
- "message: &7 &a"
- "center_message: &6&lТОП &e#<top> &6&lУБИЙСТВА &f&l<amount>"
- "message: &7 &d"
- "message: &7Вы получили железный меч за попадание в топ!"
- "message: &7 &a"
top3:
top: 3
rewards:
- "command: give <player> stone_sword"
- "message: &7 &a"
- "center_message: &6&lТОП &e#<top> &6&lУБИЙСТВА &f&l<amount>"
- "message: &7 &d"
- "message: &7Вы получили каменный меч за попадание в топ!"
- "message: &7 &a"
TimeType: daily/weekly/monthly/permanent
-
/xlb gettop
- Получить топ за день, неделю, месяц или навсегда. -
/xlb forceupdate
- Принудительно обновить топ. -
xleaderboards.forceupdate - Принудительно обновить топ.
-
xleaderboards.gettop - Получить топ за день, неделю, месяц или навсегда.
TopName:
- name - Задаётся в ключе
config.yml. Например, вtops.coinsключ "coins" - это имя топа.
TimeType:
- daily - Показывает топ игроков или значений за последние 24 часа.
- weekly - Показывает топ за последние 7 дней.
- monthly - Показывает топ за последние 30 дней.
- permanent - Показывает топ навсегда.
ValueType:
- top_name - Показывает имя игрока на данной позиции топа.
- top_value - Показывает значение на данной позиции топа.
- top_uuid - Показывает UUID игрока на данной позиции топа.
Index:
- min - Минимальный индекс 1.
- max - Максимальный индекс задаётся в конфиге в
cached-top-entries.
%xleaderboard_top_
Примеры
%xleaderboard_top_coins;daily;top_name;1%
%xleaderboard_top_coins;weekly;top_name;2%
%xleaderboard_top_coins;monthly;top_name;3%
%xleaderboard_top_coins;permanent;top_name;4%
%xleaderboard_top_coins;daily;top_value;1%
%xleaderboard_top_coins;weekly;top_value;2%
%xleaderboard_top_coins;monthly;top_value;3%
%xleaderboard_top_coins;permanent;top_value;4%
%xleaderboard_ranking_
Примеры
%xleaderboard_ranking_daily_coins%
%xleaderboard_ranking_weekly_coins%
%xleaderboard_ranking_monthly_coins%
%xleaderboard_ranking_permanent_coins%
%xleaderboard_amount_
Примеры
%xleaderboard_amount_daily_coins%
%xleaderboard_amount_weekly_coins%
%xleaderboard_amount_monthly_coins%
%xleaderboard_amount_permanent_coins%
%xleaderboard_update_cooldown_
Примеры
%xleaderboard_update_cooldown_daily%
%xleaderboard_update_cooldown_weekly%
%xleaderboard_update_cooldown_monthly%
%xleaderboard_update_cooldown_permanent%
%xleaderboard_reset_cooldown_
Примеры
%xleaderboard_reset_cooldown_daily%
%xleaderboard_reset_cooldown_weekly%
%xleaderboard_reset_cooldown_monthly%
Сервер для плагина XLeaderboards - как у профи
Плагин XLeaderboards создан для серверов: на своём сервере вы настраиваете его под себя и решаете, кому играть. Создать сервер с плагином XLeaderboards для друзей можно за пару минут - BungeeHost всё уже подготовил.
