main
rsx-api.jar приходит из dist модлоадера и меняется вместе с ним, поэтому в репозитории ему не место: закоммиченная копия рано или поздно разойдётся с настоящей. build.cmd ждёт его в libs\.
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%