e7bc91b5976abb651783bb7afabeb0015f2ee4c3
Мод печатает Rsxm.describe() при старте, и несовпадение версий видно сразу, а не превращается в NoSuchMethodError посреди сессии.
rsxm-lib
Общая библиотека для модов RustexRemake. Лежит в libs\ рядом с mods\, и
агент подмешивает её в системный class path при старте — поэтому моды видят её
без дублирования: один jar, одна копия в памяти.
Загрузчик игры даёт каждому моду свой class loader, и напрямую моды друг друга не видят. Но у всех этих загрузчиков родитель — системный, а значит всё, что в нём, доступно каждому. На этом и построена библиотека.
Что внутри
net.rsxm.lib.json.Json— маленький разборщик и писатель JSON. Без внешних зависимостей: мод — это jar, который друг бросил в папку, тащить туда ещё и библиотеку незачем.net.rsxm.lib.config.Config— настройки мода вconfig\<mod>.json. Значения по умолчанию задаёт сам мод, битый файл не роняет игру, а заменяется дефолтами с записью в лог.net.rsxm.lib.config.Home— где вообще лежит модлоадер, чтобы мод не гадал.net.rsxm.lib.config.Log— логирование с именем мода.
Сборка
build.cmd
Нужен только JDK. Скрипт собирает dist\rsxm-lib.jar и сразу прогоняет тесты
JSON и конфигов.
Использование
Компилируйте мод против rsx-api.jar и rsxm-lib.jar, но не кладите
rsxm-lib.jar внутрь мода — он и так на class path:
javac -cp "rsx-api.jar;rsxm-lib.jar" ...
Config cfg = Config.of("hud");
boolean show = cfg.bool("show", true);
cfg.set("x", 8);
cfg.save();
Description
Languages
Java
95.5%
Batchfile
4.5%