- Поддерживаемые версии
- 1.21
- Ядра и Прокси
- Bukkit
- Spigot
- Paper
- Минимальная версия Java
- 21
- Исходный код
- https://github.com/Truhott/rExpLevel
Твои игроки упаковывают опыт в бутылочки командой или автоматически. Ты задаёшь вид бутылочек, порог и правила конвертации.
Paper 1.21.4+ • Folia • Java 21
Paper 1.21.4+ • Folia • Java 21
Как это работает
- Игрок вводит /rexp pack bottle 30.
- Плагин забирает 30 уровней и одну пустую стеклянную бутылку.
- Игрок получает бутылочку на 30 уровней.
- ПКМ по бутылочке возвращает опыт ему или тому, кому он её передал.
Возможности
Бутылочки
- Свой вид для каждого уровня: материал, название, описание, блеск и CustomModelData. В стандартном конфиге есть бутылочки на 15 и 30 уровней.
- Режим свободного создания: игрок упаковывает любой уровень до 500.
- Два способа забрать опыт: выпить по ПКМ или бросить как обычный пузырёк.
- Два способа начисления. ADD прибавляет уровни: 15 и 30 дают 45. FOLD считает в XP как ванилла: 15 и 30 дают около 33.
- Пустая стеклянная бутылка как расходник, отключается одной строкой.
- Возврат пустой бутылки после использования.
Упаковка
- Кастомные бутылочки: /rexp pack bottle 30 5 создаёт 5 штук по 30 уровней.
- Обычные пузырьки опыта: /rexp pack experience all упаковывает весь опыт, 7 XP за пузырёк.
- Количество XP за один обычный пузырёк задаёшь сам.
- Выдача бутылочек игрокам командой /rexp give.
Автоконвертация
- Игрок включает её командой /rexp auto on bottle.
- Опыт сверх порога уходит в бутылки. По умолчанию игроку остаётся 30 уровней, фасовка по 15.
- Два режима: кастомные бутылочки или обычные пузырьки.
- Два триггера: сразу после получения опыта или по таймеру раз в 3 секунды.
- Лимит 64 бутылки за одну проверку.
- Плата голодом за каждую бутылку, по умолчанию выключена.
Настройка
- MiniMessage во всех текстах: градиенты, тени, HEX.
- Любое сообщение уходит в экшен-бар, если начать его с [actionbar].
- PlaceholderAPI: %rexp_auto% и %rexp_mode%, тексты значений меняешь сам.
- Название команды и алиас меняются в config.yml.
- /rexp reload применяет настройки без перезапуска.
- Встроенного меню нет. Команды плагина ты ставишь на кнопки своего меню, например в DeluxeMenus.
YAML:
settings:
debug: false # подробные сообщения в консоль для поиска ошибок
metrics: true # анонимная статистика bStats
update-check: true # проверка новой версии плагина
commands:
main: rexp # название основной команды
aliases: # дополнительные названия команды
- rx
config-version: 2 # служебное поле, не меняй
YAML:
# true: игрок создаёт бутылочку с любым уровнем до bottle.max-levels
# false: в /rexp pack bottle доступны только уровни из секции bottles
bottle-create: false
# Общий вид бутылочки. Работает для уровней, которых нет в секции bottles.
bottle:
material: EXPERIENCE_BOTTLE # предмет бутылочки
name: "<gray>[<#b3f79c>🧪</#b3f79c>] <white>Пузырек с опытом</white> <gray>({points} xp)</gray>" # {points}: опыт в XP
lore: # {levels}: уровни в бутылочке
- ''
- " <white>Содержит в себе: <#99ff66>{levels} LVL</white>"
- " <gray>Используйте ПКМ, чтобы поглотить</gray>"
- ''
glint: true # блеск зачарования
custom-model-data: 0 # CustomModelData для ресурспака, 0 выключает
max-levels: 500 # потолок уровней в одной бутылочке для pack и give
require-glass-bottle: true # true: создание тратит пустую стеклянную бутылку
# true: игрок получает пустую бутылку обратно после использования.
# Работает при require-glass-bottle: true здесь и в auto.yml.
return-glass-bottle: false
# DRINK: опыт по ПКМ. THROW: бросок как у обычного пузырька.
# Бросается только EXPERIENCE_BOTTLE, другой материал всегда выпивается.
redeem: DRINK
# ADD: уровни прибавляются, 15 lvl и бутылочка 30 lvl дают 45 lvl.
# FOLD: опыт считается в XP как в ванилле, 15 lvl и бутылочка 30 lvl дают около 33 lvl.
exp-give: FOLD
# Бутылочки со своим видом. Ключ: уровень опыта от 1 до bottle.max-levels.
# Поля material, name, lore, glint и custom-model-data необязательны, пропущенные берутся из секции bottle.
# Пустой список: bottles: {}
bottles:
15:
material: EXPERIENCE_BOTTLE
name: "<gray>[<#b3f79c>🧪</#b3f79c>] <white>Пузырек с 15 уровнем</white>"
lore:
- ''
- " <white>Содержит в себе: <#99ff66>15</#99ff66> уровней опыта"
- " <gray>Используйте ПКМ, чтобы использовать</gray>"
- ''
30:
material: EXPERIENCE_BOTTLE
name: "<gray>[<#b3f79c>🧪</#b3f79c>] <white>Пузырек с 30 уровнем</white>"
lore:
- ''
- " <white>Содержит в себе: <#99ff66>30</#99ff66> уровней опыта"
- " <gray>Используйте ПКМ, чтобы использовать</gray>"
- ''
experience:
xp-per-bottle: 7 # сколько XP стоит один обычный пузырёк опыта
config-version: 4 # служебное поле, не меняй
YAML:
auto-convert:
enabled-by-default: false # true: автоконвертация включена у новых игроков с первого входа
default-mode: BOTTLE # режим по умолчанию: BOTTLE кастомные бутылочки, EXPERIENCE обычные пузырьки
trigger: EVENT # EVENT: проверка после получения опыта. PERIODIC: проверка по таймеру
interval-seconds: 3 # пауза таймера в секундах, читается при trigger: PERIODIC
bottle: # режим кастомных бутылочек
keep-levels: 30 # сколько уровней остаётся у игрока, остальное уходит в бутылочки
bottle-levels: 15 # сколько уровней в одной бутылочке
max-bottles-per-cycle: 64 # максимум бутылочек за одну проверку
require-glass-bottle: true # true: каждая бутылочка тратит пустую стеклянную бутылку
hunger-per-bottle: 0 # сколько голода снимает одна бутылочка, 0 выключает. Дробные значения: 0.1
experience: # режим обычных пузырьков
keep-levels: 30 # сколько уровней остаётся у игрока
max-bottles-per-cycle: 64 # максимум пузырьков за одну проверку
hunger-per-bottle: 0 # сколько голода снимает один пузырёк, 0 выключает
config-version: 1 # служебное поле, не меняй
YAML:
# Все тексты в формате MiniMessage. {prefix} подставляет строку prefix, {command} название команды.
# Сообщение с [actionbar] в начале уходит в экшен-бар. На список help это не действует.
prefix: "<b><gradient:#b3f79c:#b3f79c>rExpLevel</gradient></b> <dark_gray>»</dark_gray> "
command:
no-permission: "..." # у игрока нет права
player-only: "..." # команду ввели из консоли
unknown: "..." # неизвестная подкоманда
invalid-number: "..." # неверное число. {value}: ввод
amount-limit: "..." # слишком много бутылочек за раз. {max}: лимит
levels-limit: "..." # уровень вне диапазона. {max}: потолок
player-not-found: "..." # игрок не в сети. {player}: ник
not-ready: "..." # данные плагина ещё грузятся
pack: # команда /rexp pack
usage: "..." # подсказка по использованию
not-enough: "..." # не хватает XP. {required}, {current}
not-enough-levels: "..." # не хватает уровней. {required}, {current}
levels-not-allowed: "..." # уровня нет в секции bottles. {value}, {levels}: доступные уровни
no-glass: "..." # нет пустых стеклянных бутылок
success: "..." # кастомные бутылочки созданы. {amount}, {levels}, {points}
experience-not-enough: "..." # опыта меньше, чем на один пузырёк. {xp}
experience-success: "..." # обычные пузырьки созданы. {amount}, {spent}, {remaining}
auto: # команда /rexp auto
usage: "..." # подсказка по использованию
enabled-bottle: "..." # включён режим кастомных бутылочек. {keep}: порог, {levels}: фасовка
enabled-experience: "..." # включён режим обычных пузырьков. {keep}: порог
already-enabled-bottle: "..." # режим уже включён
already-enabled-experience: "..."
disabled-bottle: "..." # автоконвертация выключена
disabled-experience: "..."
already-disabled-bottle: "..." # режим уже выключен
already-disabled-experience: "..."
disabled-no-glass: "..." # выключена, потому что закончились пустые бутылки
no-glass: "..." # для включения нужна хотя бы одна пустая бутылка
mode-conflict: "..." # включён другой режим. {mode}
mode-mismatch: "..." # игрок выключает не тот режим. {mode}
packed-bottle: "..." # опыт упакован в кастомные бутылочки. {amount}
packed-experience: "..." # опыт упакован в обычные пузырьки. {amount}
give: # команда /rexp give
usage: "..."
sender: "..." # сообщение администратору. {player}, {amount}, {levels}
target: "..." # сообщение получателю. {amount}, {levels}
reload: # команда /rexp reload
usage: "..."
success: "..." # конфиги перечитаны
failed: "..." # ошибка в конфиге, подробности в консоли
drink: "..." # игрок использовал бутылочку. {points}: полученный XP
drink-full: "..." # опыт из бутылочки не помещается
help: [] # строки справки /rexp help
# Что возвращают плейсхолдеры %rexp_auto% и %rexp_mode%
placeholder:
auto-on: "on"
auto-off: "off"
mode-bottle: "bottle"
mode-experience: "experience"
config-version: 3 # служебное поле, не меняй
- Зависимости
- PlaceholderAPI (необязательно)
- Команды и права
Команда Что делает Право /rexp help Показывает список команд rexp.use /rexp pack bottle <уровни> [количество] Упаковывает опыт в кастомные бутылочки rexp.pack /rexp pack experience <XP|all> Упаковывает опыт в обычные пузырьки rexp.pack /rexp auto <on|off> <bottle|experience> [уровни] Включает и выключает автоконвертацию rexp.auto /rexp give <игрок> <уровни> [количество] Выдаёт бутылочки игроку rexp.give /rexp reload Перечитывает конфиги rexp.reload
Алиас: /rx. Права rexp.use, rexp.pack и rexp.auto выданы всем игрокам. Права rexp.give и rexp.reload выданы операторам.