
Unruled API
Unruled API - мод для Майнкрафт, который расширяет стандартные игровые правила (геймрулы), добавляя новые типы значений и возможность задавать правила отдельно для каждого измерения.
Unruled API - Расширение игровых правил для Minecraft
Unruled API - это мод для Майнкрафт, который решает давнюю проблему ванильных геймрулов. В обычной игре вы ограничены только целыми числами и булевыми значениями (true/false). Этот мод ломает эти рамки, позволяя создавать правила с плавающей точкой, строками, текстом, перечислениями (enum), селекторами сущностей и даже ссылками на игровые регистры.
Зачем это нужно?
Если вы когда-нибудь хотели настроить игру точнее - например, задать не просто "включить" или "выключить" моб-грифинг, а указать конкретные значения для разных миров - Unruled API даёт такую возможность. Особенно это оценят создатели сборок модов и серверов, где гибкость настроек критична.
Как это работает?
Разработчики могут легко создавать новые типы геймрулов через статические методы класса com.nerjal.unruled_api.UnruledApi. Например:
import com.nerjal.unruled_api.UnruledApi;
public class MyClass {
private static final int STRING_RULE_MAX_LENGTH = 24;
public void gamerulesRegistration() {
var myFloatingRule = UnruledApi.floatRuleBuilder(category, 1.5)
.register("mymod:my_gamerule");
var myStringRule = new StringRule.Builder(category, "initial value", STRING_RULE_MAX_LENGTH)
.register("mymod:my_other_gamerule");
}
}
Для быстрого создания есть упрощённые методы:
import com.nerjal.unruled_api.UnruledApi;
public static void quickGamerulesRegistration() {
var myLongRule = UnruledApi.registerLong(Identifier.of("mymod:my_long_rule"), category, 25L);
var myEnumRule = UnruledApi.registerEnumRule(Identifier.of("mymod:my_enum_rule"), category, MyEnum.FIRST, MyEnum.class);
}
enum MyEnum {
FIRST,
SECOND,
THIRD
}
Также можно добавлять валидаторы значений - например, разрешить только нечётные числа в целочисленном правиле.
Переопределение правил по измерениям
Одна из самых мощных фич Unruled API - возможность задавать разные значения геймрулов для каждого измерения. Это делается через команду gamerule-override:
gamerule-override- список переопределений в текущем измеренииgamerule-override <id измерения>- список переопределений в указанном измеренииgamerule-override get <id геймрула>- проверить значение в текущем измеренииgamerule-override set <id геймрула> <значение>- установить переопределениеgamerule-override unset <id геймрула>- удалить переопределениеgamerule-override in <id измерения> get <id геймрула>- проверить в другом измеренииgamerule-override in <id измерения> set <id геймрула> <значение>- установить в другом измеренииgamerule-override in <id измерения> unset <id геймрула>- удалить в другом измерении
Переопределения хранятся в файле gamerules.dat в папке измерения. Если удалить этот файл при выключенном сервере, все переопределения для этого измерения сбросятся.
Улучшенная навигация по командам
В ванильном Майнкрафт искать нужный геймрул среди длинного списка - то ещё удовольствие. Unruled API добавляет фильтрацию по категориям прямо в команду /gamerule. Например:
/gamerule CHAT
Покажет только правила из категории "чат". Это работает и с модифицированными правилами.
Настройка значений по умолчанию
Особенно полезно для создателей сборок модов. Можно задать кастомные значения по умолчанию для любых геймрулов при создании мира. Для этого создайте файл config/default_gamerules.json:
{
"doDaylightCycle": "false",
"mobGriefing": "false"
}
Работает и с модифицированными правилами!
Кастомные категории геймрулов
Разработчики могут добавлять свои категории геймрулов. Для версий до 1.21.11 это делается через реализацию CategoryProvider и добавление её в UnruledEarlyUtils.CATEGORY_PROVIDERS. На Fabric - через preLaunch entrypoint, на (Neo)Forge - при инициализации @Mod класса.
Как подключить в свой проект?
Добавьте репозиторий Modrinth в ваш build.gradle:
repositories {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
И импортируйте мод:
Для Fabric (loom):
dependencies {
modApi "maven.modrinth:unruled-api:${project.unruled_version}"
}
Для (Neo)Forge:
dependencies {
implementation "maven.modrinth:unruled-api:${project.unruled_version}"
}
Важно: не включайте этот мод внутрь своего (JiJ, shadow) - используйте как внешнюю зависимость.
Итог
Unruled API - это must-have для тех, кто хочет выйти за рамки ванильных геймрулов в Майнкрафт. Если вы собираете сервер или сборку модов с тонкой настройкой под разные измерения - этот мод даст вам гибкость, которой так не хватало в обычной игре. Скачайте Unruled API и настройте Minecraft под себя!
Как поиграть с друзьями с модом Unruled API?
Мод Unruled API куда интереснее в компании: поднимите сервер Майнкрафт с уже установленным модом, позовите друзей и играйте по своим правилам. Хостинг Майнкрафт для мода Unruled API будет готов за пару минут - BungeeHost сделает всё за вас.
