bfda50ae61
Собран так, чтобы его читал человек, который пишет первый мод. Показывает apiVersion, конфиги из rsxm-lib, события, everyTicks, типизированные обёртки Rsx.Player и Rsx.World, onError и onUnload. Ни одного обфусцированного имени: мод спрашивает логическими именами, бриф переводит их в имена текущей сборки. Ни рефлексии, ни чтения файлов игры - всё это либо не нужно, либо делает бриф. Компилируется против rsx-api.jar и rsxm-lib.jar, но не содержит ни одного: библиотека лежит в libs\ и подмешивается в системный class path при старте. Проверяется просто - если в jar мода нет net/rsxm/, он собран правильно.
39 lines
1.2 KiB
Batchfile
39 lines
1.2 KiB
Batchfile
@echo off
|
|
rem Builds the mod and drops the jar into the client's mods folder.
|
|
rem Only a JDK is needed: no Gradle, no network, nothing but javac and jar.
|
|
setlocal
|
|
cd /d "%~dp0"
|
|
|
|
if not exist "build\classes" mkdir "build\classes"
|
|
if not exist "build\mods" mkdir "build\mods"
|
|
|
|
set ENTRY=com.example.Diagnostics
|
|
|
|
rem where the modloader looks for mods; override with set MODS_DIR=...
|
|
if "%MODS_DIR%"=="" set MODS_DIR=%LOCALAPPDATA%\rsx-mod\mods
|
|
|
|
echo [1/3] compiling...
|
|
dir /s /b src\main\java\*.java > build\sources.txt
|
|
javac -encoding UTF-8 --release 8 -nowarn -cp "libs\rsx-api.jar;libs\rsxm-lib.jar" -d build\classes @build\sources.txt
|
|
if errorlevel 1 (
|
|
echo.
|
|
echo ?????? ?? ???????.
|
|
exit /b 1
|
|
)
|
|
|
|
echo [2/3] packaging rsxm-example.jar...
|
|
if exist "build\mods\rsxm-example.jar" del "build\mods\rsxm-example.jar"
|
|
jar cfm "build\mods\rsxm-example.jar" manifest.txt -C build/classes .
|
|
if errorlevel 1 exit /b 1
|
|
|
|
echo [3/3] installing...
|
|
if not exist "%MODS_DIR%" (
|
|
echo.
|
|
echo ????? ????? ?? ???????: %MODS_DIR%
|
|
echo ???????? build\mods\rsxm-example.jar ? ??? ???.
|
|
exit /b 0
|
|
)
|
|
copy /y "build\mods\rsxm-example.jar" "%MODS_DIR%\" >nul
|
|
echo.
|
|
echo ??????: build\mods\rsxm-example.jar ?????????? ? %MODS_DIR%
|