Unruled API
Активный0.0
Установок
Последнее обновление
Версии
Unruled API

Этот мод открывает новые возможности для создания игровых правил, выходящих за рамки стандартных целочисленных и логических значений. Разработчики теперь могут легко создавать правила с плавающей точкой, длинными числами, строками, текстом, перечислениями, выбором сущностей и даже элементами из реестров.
Регистрация игровых правил
Пример использования:
import mc.recraftors.unruled_api.UnruledApi;
public class MyClass {
private static final int STRING_RULE_MAX_LENGTH = 24;
public void gamerulesRegistration() {
var myFloatingRule = UnruledApi.floatRuleBuilder(1.5) // принимает начальное значение
.register("my_gamerule", category); // регистрация требует имя правила и категорию
var myStringRule = new StringRule.Builder("initial value", STRING_RULE_MAX_LENGTH)
.register("my_other_gamerule", category);
}
}
Для удобства добавлены методы быстрой регистрации:
import mc.reraftors.unruled_api.UnruledApi;
public static void quickGamerulesRegistration() {
var myLongRule = UnruledApi.registerLongRule("my_long_rule", category, 25L);
var myEnumRule = UnruledApi.registerEnumRule("my_enum_rule", category, MyEnum.class, MyEnum.FIRST);
}
enum MyEnum {
FIRST,
SECOND,
THIRD
}
Также доступна регистрация стандартных типов правил:
import mc.recraftors.unruled_api.UnruledApi;
public static void registerBasicRules() {
UnruledApi.registerInt("my_int_rule", category, 5);
UnruledApi.registerBoolean("my_bool_rule", category, false);
}
Получение значений правил:
public long getMyLongGamerules(ServerWorld dimension) {
return UnruledApi.getLong(dimension.getGameRules(), myLongGamerule);
}
public Block getMyBlockRule(ServerWorld dimension) {
return UnruledApi.getRegistryEntry(dimension.getGameRules(), myBlockRegistryEntryRule);
}
Переопределение правил по измерениям
Система позволяет устанавливать индивидуальные настройки правил для каждого измерения через команду gamerule-override.
Доступные команды:
gamerule-override- показывает список переопределений в текущем измеренииgamerule-override <идентификатор измерения>- показывает переопределения в указанном измеренииgamerule-override get <имя правила>- проверяет переопределение для правила в текущем измеренииgamerule-override set <имя правила> <значение>- устанавливает переопределениеgamerule-override unset <имя правила>- удаляет переопределение- Команды с
in <идентификатор измерения>работают аналогично для указанного измерения
Данные переопределений хранятся в файле gamerules.dat в папке измерения.
Использование в проекте
Добавьте репозиторий Modrinth Maven:
repositories {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
Для Loom:
dependencies {
modApi "maven.modrinth:unruled-api:${project.unruled_version}"
}
Для ForgeGradle:
dependencies {
implementation "maven.modrinth:unruled-api:${project.unruled_version}"
}
Мод не должен включаться в другие проекты через JiJ, shadow или аналогичные методы.