-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetupsingle.bat
More file actions
146 lines (119 loc) · 4.67 KB
/
setupsingle.bat
File metadata and controls
146 lines (119 loc) · 4.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
@echo off
setlocal EnableExtensions EnableDelayedExpansion
REM =============================================================================
REM Voxelearth Windows Setup (non-interactive)
REM =============================================================================
goto :MAIN
REM --------------------------- helper: set_prop --------------------------------
:set_prop
REM Usage: call :set_prop "file" "key" "value"
setlocal
set "SP_FILE=%~1"
set "SP_KEY=%~2"
set "SP_VAL=%~3"
if not exist "%SP_FILE%" type nul > "%SP_FILE%"
findstr /b /i /c:"%SP_KEY%=" "%SP_FILE%" >nul 2>nul
if errorlevel 1 (
>> "%SP_FILE%" echo %SP_KEY%=%SP_VAL%
endlocal & exit /b 0
)
> "%SP_FILE%.tmp" (
for /f "usebackq delims=" %%L in ("%SP_FILE%") do (
set "line=%%L"
setlocal EnableDelayedExpansion
echo !line! | findstr /b /i /c:"%SP_KEY%=" >nul
if not errorlevel 1 (
echo %SP_KEY%=%SP_VAL%
) else (
echo !line!
)
endlocal
)
)
move /y "%SP_FILE%.tmp" "%SP_FILE%" >nul
endlocal & exit /b 0
:MAIN
REM --------------------------- Free ports --------------------------------------
echo [*] Freeing ports 25568 and 25569 if busy...
for %%P in (25568 25569) do (
for /f "tokens=5" %%A in ('netstat -ano ^| findstr /R /C:":%%P[ ]" ^| findstr LISTENING') do (
echo - Killing PID %%A on port %%P ...
taskkill /F /PID %%A >nul 2>nul
)
)
REM --------------------------- Java 17+ ----------------------------------------
echo [*] Checking Java (JRE 17+)...
where java >nul 2>nul && goto :JAVA_FOUND
where winget >nul 2>nul || (
echo [!] Java not found and winget unavailable. Install Java 17+ (Adoptium Temurin JRE recommended).
goto :AFTER_JAVA
)
echo [*] Installing Temurin JRE 17 via winget...
winget install -e --id EclipseAdoptium.Temurin.17.JRE --silent >nul 2>nul
goto :AFTER_JAVA
:JAVA_FOUND
echo [OK] Java found:
REM IMPORTANT: run this OUTSIDE of parentheses to avoid ". was unexpected" errors.
java -version 2>&1
:AFTER_JAVA
REM =============================== Server config ===============================
set "ROOT_DIR=%CD%"
set "SERVER_DIR=%ROOT_DIR%\server"
set "ZIP_PATH=%ROOT_DIR%\velocity-server-folder-items\voxelearth.zip"
set "SERVER_JAR=paper.jar"
if not defined XMS set "XMS=2G"
if not defined XMX set "XMX=4G"
echo:
echo [*] Setting up Voxelearth Paper server...
if not exist "%SERVER_DIR%" mkdir "%SERVER_DIR%"
if not exist "%ZIP_PATH%" (
echo [!] ZIP not found: %ZIP_PATH%
echo Make sure velocity-server-folder-items\voxelearth.zip exists.
goto :END
)
echo [*] Unzipping "%ZIP_PATH%" into "%SERVER_DIR%" ...
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
"Try { Expand-Archive -Path '%ZIP_PATH%' -DestinationPath '%SERVER_DIR%' -Force } Catch { exit 1 }"
if errorlevel 1 (
echo [!] Unzip failed. Ensure PowerShell 'Expand-Archive' is available.
goto :END
)
set "SERVER_PROPS=%SERVER_DIR%\server.properties"
if not exist "%SERVER_PROPS%" ( type nul > "%SERVER_PROPS%" )
call :set_prop "%SERVER_PROPS%" "server-port" "25569"
call :set_prop "%SERVER_PROPS%" "view-distance" "32"
call :set_prop "%SERVER_PROPS%" "simulation-distance" "6"
if defined RCON_PORT if defined RCON_PASSWORD (
echo [*] Enabling RCON on port %RCON_PORT%
call :set_prop "%SERVER_PROPS%" "enable-rcon" "true"
call :set_prop "%SERVER_PROPS%" "rcon.port" "%RCON_PORT%"
call :set_prop "%SERVER_PROPS%" "rcon.password" "%RCON_PASSWORD%"
)
> "%SERVER_DIR%\eula.txt" echo eula=true
set "CUDA_DIR=%SERVER_DIR%\cuda_voxelizer"
if exist "%CUDA_DIR%" (
echo [*] Making cuda_voxelizer writable for Everyone...
set "ACE=*S-1-1-0:(OI)(CI)F"
icacls "%CUDA_DIR%" /grant "%ACE%" /T >nul 2>nul
attrib -R /S /D "%CUDA_DIR%\*" >nul 2>nul
)
if not exist "%SERVER_DIR%\%SERVER_JAR%" (
echo ERROR: "%SERVER_DIR%\%SERVER_JAR%" is missing. Does the ZIP include %SERVER_JAR%?
exit /b 3
)
echo:
echo [*] Starting Paper (Voxelearth) on port 25569...
cd /d "%SERVER_DIR%"
set "JAVA_FLAGS=-Xms%XMS% -Xmx%XMX% -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=100"
set "JAVA_FLAGS=%JAVA_FLAGS% -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=20 -XX:G1MaxNewSizePercent=30"
set "JAVA_FLAGS=%JAVA_FLAGS% -XX:G1HeapRegionSize=4M -XX:G1ReservePercent=15 -XX:InitiatingHeapOccupancyPercent=20"
set "JAVA_FLAGS=%JAVA_FLAGS% -XX:G1MixedGCLiveThresholdPercent=85 -XX:MaxTenuringThreshold=1 -XX:+DisableExplicitGC"
set "JAVA_FLAGS=%JAVA_FLAGS% -XX:+AlwaysPreTouch -XX:+PerfDisableSharedMem -Daikars.new.flags=true"
REM Foreground start. For background+log:
REM start "" /B cmd /c "java %JAVA_FLAGS% -jar "%SERVER_JAR%" ^> server.log 2^>^&1"
java %JAVA_FLAGS% -jar "%SERVER_JAR%"
echo [OK] Paper server stopped (or started successfully if no errors were shown).
goto :EOF
:END
endlocal
exit /b 0