PlaceholderLib
Placeholder solution for all hytale mods in the making. Together we unite
Описание
Разработчик:Lib
Легкий API-интерфейс для плагинов Hytale. Предоставляет простую систему реестра для динамической замены текста.
Быстрый старт
1. Добавить зависимость
{implementation(files("libs/PlaceholderLib.jar")}
2. Регистрация владельцев
Публичный класс MyPlugin расширяет JavaPlugin {
@Override
Публичная установка void() {
// Статический заполнитель
PlaceholderLib.getRegistry().register()
SimplePlaceholder("server_name", "MyServer")
);
// Динамический заполнитель
PlaceholderLib.getRegistry().register()
Новый владелец() {
@Override
public String getIdentifier() { return "online_count"; }
@Override
Публичное решение струн (PlaceholderContext ctx)
вернуть String.valueOf (getServer().getOnlinePlayers(.size());
?
?
);
?
?
Как это работает
- РегистрацияПлагины регистрируют заполнителей с уникальными идентификаторами (нет)
%символы - Соответствие шаблоновМесторасположение Либ автоматически находит
%placeholder_id %шаблоны в тексте - РезолюцияЗарегистрированные держатели заменяют свои шаблоны фактическими значениями
- Обсуждение Fallback: Незарегистрированные заполнители остаются неизменными в тексте
Правила для владельцев
- Пространство имен:
pluginid_identifier(например,rpg_foodlevel) - Разрешенные персонажи:
a-z,0-9,_ - Случайно-чувствительный:
%rep_at_food_level %≠%Rep_Eat_Food_Level% - Обертывание в % при использовании:
%pluginid_identifier %
Пример осуществления
Общественный класс Custom Исполнитель Местонахождение {
@Override
Публичный String getIdentifier()
возврат «my_custom_value»;
?
@Override
Публичная струнная решимость (PlaceholderContext context)
// Доступ к игроку, миру и т.д. через контекст
возврат «custom_value»;
?
?
Построены в поддерживаемых заполнителях:
Игрок %player_name% %player_uuid% %player_x% %player_y% %player_z% %player_language %
сервер %server_name % %server_max% %server_default_world % %server_gamemode %
Лакпермс %luckperms_prefix% %luckperms_suffix% %luckperms_group%
Нужна помощь?
- Поддержка диссонанса: https://discord.gg/U4mH3weTsw
Показать оригинальное описание (English)
PlaceholderLib
A lightweight placeholder API for Hytale plugins. Provides a simple registry system for dynamic text replacement.
Quick Start
1. Add Dependency
dependencies {implementation(files("libs/PlaceholderLib.jar"))}
2. Register Placeholders
public class MyPlugin extends JavaPlugin {
@Override
public void setup() {
// Static placeholder
PlaceholderLib.getRegistry().register(
new SimplePlaceholder("server_name", "MyServer")
);
// Dynamic placeholder
PlaceholderLib.getRegistry().register(
new Placeholder() {
@Override
public String getIdentifier() { return "online_count"; }
@Override
public String resolve(PlaceholderContext ctx) {
return String.valueOf(getServer().getOnlinePlayers().size());
}
}
);
}
}
How It Works
- Registration: Plugins register placeholders with unique identifiers (no
%symbols) - Pattern Matching: PlaceholderLib automatically finds
%placeholder_id%patterns in text - Resolution: Registered placeholders replace their patterns with actual values
- Fallback: Unregistered placeholders remain unchanged in text
Placeholder Rules
- Namespace:
pluginid_identifier(e.g.,rpg_foodlevel) - Allowed characters:
a-z,0-9,_ - Case-sensitive:
%rep_eat_food_level%≠%Rep_Eat_Food_Level% - Wrap in % when using:
%pluginid_identifier%
Example Implementation
public class CustomPlaceholder implements Placeholder {
@Override
public String getIdentifier() {
return "my_custom_value";
}
@Override
public String resolve(PlaceholderContext context) {
// Access player, world, etc. through context
return "custom_value";
}
}
Built in supported placeholders:
Player %player_name% %player_uuid% %player_x% %player_y% %player_z% %player_language%
Server %server_name% %server_max% %server_default_world% %server_gamemode%
LuckPerms %luckperms_prefix% %luckperms_suffix% %luckperms_group%
📚 Need Help?
- Discord Support: https://discord.gg/U4mH3weTsw
Информация
Авторы:
Категории:
Версии игры:
Создан: 20.01.2026