Text Placeholder API Expressions
Добавляет математические, условные выражения и выражения для работы со строками в Text Placeholder API.
- Загрузчики
- Fabric
- Скачиваний на Modrinth
- 2,1 тыс.
- Подписчиков на Modrinth
- 6
- версии
- 3
- Обновлён
- 19 февраля 202619 февр.
- Опубликован
- в 2024
Коротко о моде
Ставится только на сервер; игрокам ставить не нужно
Text Placeholder API Expressions
Добавляет в Text Placeholder API выражения для математики, условий и работы со строками.
Этот проект использует Keval для разбора математических выражений, и без него всё было бы в разы сложнее. Поддержите автора — поставьте звезду его репозиторию!
Использование плейсхолдеров в выражениях
Это расширение использует синтаксис ${category:placeholder}, позволяя подставлять плейсхолдеры, которые возвращают числа, как компоненты.
Например, чтобы показать здоровье игрока в процентах (скажем, в списке игроков), можно использовать следующее:%expr:math ${player:health} * 100 / ${player:max_health}%%
Математический плейсхолдер
Основная часть добавлений (каламбур не задумывался) в этом расширении доступна через плейсхолдер expr:math.
Можно считать, что этот плейсхолдер обрабатывает три разных «типа»:
- Компоненты — числа, функции, константы и плейсхолдеры, возвращающие числа.
- Бинарные операторы — например, сложение или вычитание, которые ставятся между двумя компонентами.
- Унарные операторы — например, отрицание и факториал, которые применяются к одному компоненту.
Компоненты и операторы, предоставляемые этим расширением
Бинарные операторы применяются между двумя компонентами.
| Бинарный оператор | Функция | Пример | Результат |
|---|---|---|---|
| + | Сложение | %expr:math 2 + 2% | 4 |
| - | Вычитание | %expr:math 4 - 1% | 3 |
| * | Умножение | %expr:math 3 * 3% | 9 |
| / | Деление | %expr:math 9 / 4% | 2.25 |
| ^ | Степень | %expr:math 3 ^ 3% | 27 |
Унарные операторы применяются к одному компоненту.
| Унарный оператор | Функция | Пример | Результат |
|---|---|---|---|
| - | Отрицание | %expr:math 1 + -1% | 0 |
| + | Тождество | %expr:math ??% | Что это вообще делает |
| ! | Факториал | %expr:math 5!% | 120 |
Функции — это компоненты, принимающие выражения в качестве аргументов.
| Функция | Аргументы | Описание | Пример | Результат |
|---|---|---|---|---|
| mod | 2 | Модуль / остаток | %expr:math mod(7, 2)% | 1 |
| neg | 1 | Отрицание / инверсия (как унарный -) | %expr:math neg(10)% | -10 |
| abs | 1 | Абсолютное значение | %expr:math abs(-10)% | 10 |
| sqrt | 1 | Квадратный корень | %expr:math sqrt(34)% | 5.8309 |
| cbrt | 1 | Кубический корень | %expr:math cbrt(30)% | 3.1072 |
| exp | 1 | Экспонента | %expr:math exp(4)% | 54.5981 |
| ln | 1 | Натуральный логарифм | %expr:math ln(4)% | 1.3862 |
| log10 | 1 | Логарифм по основанию 10 | %expr:math log10(4)% | 0.6020 |
| log2 | 1 | Логарифм по основанию 2 | %expr:math log2(4)% | 2 |
| rad | 1 | Градусы в радианы | %expr:math rad(30)% | 0.5235 |
| sin | 1 | Синус | %expr:math sin(rad(30))% | 0.4999 |
| cos | 1 | Косинус | %expr:math cos(rad(30))% | 0.8660 |
| tan | 1 | Тангенс | %expr:math tan(rad(30))% | 0.5773 |
| asin | 1 | Арксинус | %expr:math asin(rad(30))% | 0.5510 |
| acos | 1 | Арккосинус | %expr:math acos(rad(30))% | 1.0197 |
| atan | 1 | Арктангенс | %expr:math atan(rad(30))% | 0.4823 |
| ceil | 1 | Округление вверх | %expr:math ceil(0.4)% | 1 |
| floor | 1 | Округление вниз | %expr:math floor(0.6)% | 0 |
| round | 1 | Округление | %expr:math round(0.5)% | 1 |
| min | 2+ | Наименьший аргумент | %expr:math min(1, 0.3, 7)% | 0.3 |
| max | 2+ | Наибольший аргумент | %expr:math max(1, 0.3, 7)% | 7 |
| avg | 2+ | Среднее арифметическое аргументов | %expr:math avg(1, 0.3, 7)% | 2.7666 |
Константы — это компоненты, которые вычисляются в постоянное значение.
| Константа | Описание |
|---|---|
| PI | π |
| e | число Эйлера |
Условные плейсхолдеры
Аргументы этих плейсхолдеров должны разделяться точками с запятой (;), а не пробелами.
%expr:ifeq%
Проверяет, равны ли a и b, и возвращает c или d в зависимости от результата.
%expr:ifeq aIsMath a bIsMath b cIsMath c dIsMath d%
| Аргумент | Описание |
|---|---|
| aIsMath | Считать ли a математическим выражением. Либо true, либо false. |
| a | Математическое выражение или текст для сравнения с b. Если считается текстом, пробелы в начале и конце строки удаляются. |
| bIsMath | Считать ли b математическим выражением. Либо true, либо false. |
| b | Математическое выражение или текст для сравнения с a. Если считается текстом, пробелы в начале и конце строки удаляются. |
| cIsMath | Считать ли c математическим выражением. Либо true, либо false. |
| c | Математическое выражение или текст, используемый, если a и b равны. |
| dIsMath | Считать ли d математическим выражением. Либо true, либо false. |
| d | Математическое выражение или текст, используемый, если a и b не равны. |
Пример
Player %expr:ifeq false; ${player:equipment_slot mainhand}; false; Diamond Sword; false; is; false; is not% holding a Diamond Sword.
| Условие | Результат |
|---|---|
%player:equipment_slot mainhand% == "Diamond Sword" | Player is holding a Diamond Sword. |
%player:equipment_slot mainhand% != "Diamond Sword" | Player is not holding a Diamond Sword. |
%expr:iflt%
Проверяет, меньше ли a, чем b, и возвращает c или d в зависимости от результата.
%expr:iflt a b cIsMath c dIsMath d%
| Аргумент | Описание |
|---|---|
| a | Математическое выражение для сравнения с b. |
| b | Математическое выражение для сравнения с a. |
| cIsMath | Считать ли c математическим выражением. Либо true, либо false. |
| c | Математическое выражение или текст, используемый, если a меньше b. |
| dIsMath | Считать ли d математическим выражением. Либо true, либо false. |
| d | Математическое выражение или текст, используемый, если a не меньше b. |
Пример
Player is in %expr:iflt ${player:health}; 14; false; poor; false; good% health
| Условие | Результат |
|---|---|
%player:health% < 14 | Player is in poor health |
%player:health% >= 14 | Player is in good health |
%expr:ifgt%
Проверяет, больше ли a, чем b, и возвращает c или d в зависимости от результата.
%expr:ifgt a b cIsMath c dIsMath d%
| Аргумент | Описание |
|---|---|
| a | Математическое выражение для сравнения с b. |
| b | Математическое выражение для сравнения с a. |
| cIsMath | Считать ли c математическим выражением. Либо true, либо false. |
| c | Математическое выражение или текст, используемый, если a больше b. |
| dIsMath | Считать ли d математическим выражением. Либо true, либо false. |
| d | Математическое выражение или текст, используемый, если a не больше b. |
Пример
Health: %expr:ifgt ${player:health}; 4; true; ${player:health} * 100 / ${player:max_health}%; false; Nearly dead!%
| Условие | Результат |
|---|---|
%player:health% == 15 | Health: 75 |
%player:health% == 14 | Health: 70 |
%player:health% <= 4 | Health: Nearly dead! |
Строковые плейсхолдеры
Аргументы этих плейсхолдеров должны разделяться точками с запятой (;), а не пробелами.
%expr:pad%, %expr:padleft% и %expr:padright%
Дополняет одну или обе стороны str символом c, пока длина строки не достигнет length.
%expr:pad length; str; c% %expr:padleft length; str; c% %expr:padright length; str; c%
| Аргумент | Описание |
|---|---|
| length | Математическое выражение, целевая длина дополненной строки. |
| str | Исходная строка для дополнения. Пробелы в начале или конце строки удаляются. |
| c | Символ для дополнения. |
Пример
%expr:padleft 2 ${server:online} 0% / %server:max_players%
| Условие | Результат |
|---|---|
%server:online% == 12 | 12 / 40 |
%server:online% == 4 | 04 / 40 |
%expr:padmatch%, %expr:padmatchleft% и %expr:padmatchright%
Дополняет одну или обе стороны str символом c, пока длина строки не совпадёт с длиной match.
%expr:padmatch match; str; c% %expr:padmatchleft match; str; c% %expr:padmatchright match; str; c%
| Аргумент | Описание |
|---|---|
| match | Строка, длине которой нужно соответствовать. Пробелы в начале или конце строки удаляются. |
| str | Исходная строка для дополнения. Пробелы в начале или конце строки удаляются. |
| c | Символ для дополнения. |
Пример
%expr:padmatchleft ${server:max_players} ${server:online} 0% / %server:max_players%
| Условие | Результат |
|---|---|
%server:max_players% == 40, %server:online% == 4 | 04 / 40 |
%server:max_players% == 100, %server:online% == 4 | 004 / 100 |
Частые вопросы
Как установить Text Placeholder API Expressions?
Установите Fabric под свою версию Minecraft, скачайте Text Placeholder API Expressions под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть Text Placeholder API Expressions?
У Text Placeholder API Expressions есть сборки для Minecraft 1.21, 1.21.11.
Нужен ли Text Placeholder API Expressions на сервере?
Ставится только на сервер; игрокам ставить не нужно