HTLevelSystem
Extensible leveling system for developers and server owners.
Описание
Система HTLevels
API уровня/опыта для плагинов сервера Hytale. Хранит плеер XP в выбранном вами SQLite/Postgres/MySQL и предоставляет гибкую кривую выравнивания плюс события, к которым могут подключаться другие плагины.
Особенности
- Постоянный игрок XP с серверами баз данных: SQLite (по умолчанию), PostgreSQL, MySQL.
- Настраиваемая кривая выравнивания: квадратическая, линейная или экспоненциальная.
- Факультативная крышка максимального уровня (зажимы XP однажды достигнуты).
- Пользовательские события: изменение опыта / выигрыш / убыток, уровень вверх / вниз.
- Простая общественность API, чтобы другие плагины могли читать или изменять XP.
установка
- Бросьте встроенный JAR на сервер
плагиныпапка. 2) Запустить сервер один раз;htlevel.confОни будут генерироваться внутри папки данных плагина. 3) Редактироватьhtlevel.confВыберите DB backend и XP кривую, затем перезапустите.
Конфигурация ()htlevel.conf)
# База данных: sqlite | postgres | mysql
backend=sqlite
# SQLite
sqlite.file=users.sql
# PostreSQL
Postgres.host=localhost
Postgres.port=5432
Postgres.database=hytale
Postgres.user=hytale
Postgres.password=change_me
Postgres.ssl = ложный
#MySQL
mysql.host=localhost
mysql.port=3306
mysql.database=hytale
mysql.user=hytale
mysql.password=change_me
mysql.useSSL = ложный
#XP / Выравнивание
xp.algorithm=quadratic #quadratic | линейный | экспоненциальный
xp.maxУровень = 100 # <=0 без ограничения
# Квадратный: xp = базовый уровень * L + шаг * L^2
xp.quadratic.basePerLevel=100
xp.quadratic.step=25
# Линейный: xp = basePerLevel * L
xp.linear.basePerLevel=150
# Экспоненциальная кумулятивная база * (множитель^L - 1)/(множитель) - 1)
xp.exponential.base=100
xp.exponential.multiplier=1.15
Разработчик API (примеры)
// Доступ к сервису
HTLevelSystem plugin = (HTLevelSystem) pluginManager.getPlugin («HTLevelSystem»);
ExperienceService xp = plugin.getExperienceService();
Дать XP
xp.addExperience (player.getUuid(), 50);
// Установить абсолютный XP
xp.setExperience (player.getUuid(), 1200);
// Читать текущий снимок
ExperienceSnapshot snap = xp.getOrCreate(player.getUuid());
Уровень int = snap.level();
Длинная сумма Xp = snap.experience();
Решить XP, требуемый для уровня
xpFor20 = xp.experienceForLevel(20);
Прослушивание XP событий
getEventRegistry(.registerGlobal)(LevelUpEvent.class, event ->)
getLogger(.info)("Player" + event.getPlayerId() + "достиг уровня" + event.getNewLevel())
);
getEventRegistry(.registerGlobal(ExperienceLossEvent.class, event ->)
getLogger(.info)("Player" + event.getPlayerId() + "Lost" + Math.abs(event.getDelta()) + "XP")
);
Административные команды
Все команды требуют разрешения htlevel.admin.
Корень: htxp (заблуждения: уровень, /htlvl)
/htxp get <playerName>- показать XP, уровень и максимальный уровень кэпа./htxp setxp <playerName> <mount>- установить абсолютный XP./htxp givexp <playerName> <mount>Добавить XP./htxp takexp <playerName> <mount>- удалить XP (полы при 0; относится к кепке максимального уровня)./htxp setlvl <playerName> <level>- непосредственно установленный уровень (авторегулировки XP)./htxp givelvl <playerName> <levels>— добавить уровни (honors max-level cap)./htxp takelvl <playerName> <levels>Удалить уровни (полы при 0).
Команды выполняются асинхронно и всегда соблюдают настроенную кривую XP и xp.max Уровень Кэп.
Заметки
- Если
xp.max УровеньXP зажат до максимального уровня; игроки не могут пройти мимо него. - Когда шина событий недоступна, XP все еще обновляется, но события пропускаются.
Показать оригинальное описание (English)
HTLevelSystem
Level/experience API for Hytale server plugins. Stores player XP in your choice of SQLite/Postgres/MySQL and exposes a flexible leveling curve plus events that other plugins can hook into.
Features
- Persistent player XP with database backends: SQLite (default), PostgreSQL, MySQL.
- Configurable leveling curve: quadratic, linear, or exponential.
- Optional max-level cap (clamps XP once reached).
- Custom events: experience change/gain/loss, level up/down.
- Simple public API so other plugins can read or modify XP.
Installation
- Drop the built JAR into your server's
pluginsfolder. 2) Start the server once;htlevel.confwill be generated inside the plugin data folder. 3) Edithtlevel.confto choose DB backend and XP curve, then restart.
Configuration (htlevel.conf)
# Database backend: sqlite | postgres | mysql
backend=sqlite
# SQLite
sqlite.file=users.sql
# PostgreSQL
postgres.host=localhost
postgres.port=5432
postgres.database=hytale
postgres.user=hytale
postgres.password=change_me
postgres.ssl=false
# MySQL
mysql.host=localhost
mysql.port=3306
mysql.database=hytale
mysql.user=hytale
mysql.password=change_me
mysql.useSSL=false
# XP / Leveling
xp.algorithm=quadratic # quadratic | linear | exponential
xp.maxLevel=100 # <=0 for no cap
# Quadratic: xp = basePerLevel * L + step * L^2
xp.quadratic.basePerLevel=100
xp.quadratic.step=25
# Linear: xp = basePerLevel * L
xp.linear.basePerLevel=150
# Exponential cumulative: base * (multiplier^L - 1)/(multiplier - 1)
xp.exponential.base=100
xp.exponential.multiplier=1.15
Developer API (examples)
// Access the service
HTLevelSystem plugin = (HTLevelSystem) pluginManager.getPlugin("HTLevelSystem");
ExperienceService xp = plugin.getExperienceService();
// Give XP
xp.addExperience(player.getUuid(), 50);
// Set absolute XP
xp.setExperience(player.getUuid(), 1200);
// Read current snapshot
ExperienceSnapshot snap = xp.getOrCreate(player.getUuid());
int level = snap.level();
long totalXp = snap.experience();
// Resolve XP required for a level
long xpFor20 = xp.experienceForLevel(20);
Listening to XP events
getEventRegistry().registerGlobal(LevelUpEvent.class, event ->
getLogger().info("Player " + event.getPlayerId() + " reached level " + event.getNewLevel())
);
getEventRegistry().registerGlobal(ExperienceLossEvent.class, event ->
getLogger().info("Player " + event.getPlayerId() + " lost " + Math.abs(event.getDelta()) + " XP")
);
Admin commands
All commands require permission htlevel.admin.
Root: /htxp (aliases: /htlevel, /htlvl)
/htxp get <playerName>— show XP, level, and max-level cap status./htxp setxp <playerName> <amount>— set absolute XP./htxp givexp <playerName> <amount>— add XP./htxp takexp <playerName> <amount>— remove XP (floors at 0; respects max-level cap)./htxp setlvl <playerName> <level>— set level directly (XP auto-adjusts)./htxp givelvl <playerName> <levels>— add levels (honors max-level cap)./htxp takelvl <playerName> <levels>— remove levels (floors at 0).
Commands execute asynchronously and always respect the configured XP curve and xp.maxLevel cap.
Notes
- If
xp.maxLevelis set, XP is clamped to the max-level requirement; players cannot progress past it. - When the event bus is unavailable, XP still updates but events are skipped.
Последние версии
HTLevelSystem-1.0.0.jar
Информация
Авторы:
Категории:
Версии игры:
Создан: 28.01.2026