78
78
79
79
SETLOCAL
80
80
REM Internal Scripty stuff
81
+ REM Define system root so we can run CORRECT version of things (like FIND)
82
+ SET MC_SYS32 = %SYSTEMROOT% \SYSTEM32
81
83
REM default an error code in case error block is ran without this var being defined first
82
84
SET MC_SERVER_ERROR_REASON = Unspecified
83
85
REM this is a temp variable to use for intermidiate calculations and such
@@ -88,6 +90,7 @@ REM set "crash time" to initial script start
88
90
SET MC_SERVER_CRASH_YYYYMMDD = %date:~10 ,4 %%date:~4 ,2 %%date:~7 ,2 %
89
91
SET MC_SERVER_CRASH_HHMMSS = %time:~0 ,2 %%time:~3 ,2 %%time:~6 ,2 %
90
92
93
+
91
94
REM delete log if already exists to start a fresh one
92
95
IF EXIST " %~dp0 serverstart.log" DEL /F /Q " %~dp0 serverstart.log"
93
96
ECHO . 1 >> " %~dp0 serverstart.log" 2 >& 1
@@ -115,52 +118,52 @@ ECHO DEBUG: settings.cfg Found. Logging full contents below: 1>> "%~dp0serverst
115
118
> nul COPY " %~dp0 serverstart.log" +" %~dp0 settings.cfg" " %~dp0 serverstart.log"
116
119
ECHO . 1 >> " %~dp0 serverstart.log" 2 >& 1
117
120
118
- > nul FIND /I " MAX_RAM=" " %~dp0 settings.cfg" || (
121
+ > nul %MC_SYS32% \ FIND.EXE /I " MAX_RAM=" " %~dp0 settings.cfg" || (
119
122
SET MC_SERVER_ERROR_REASON = Settings.cfg_Error:MAX_RAM
120
123
GOTO ERROR
121
124
)
122
125
123
- > nul FIND /I " JAVA_ARGS=" " %~dp0 settings.cfg" || (
126
+ > nul %MC_SYS32% \ FIND.EXE /I " JAVA_ARGS=" " %~dp0 settings.cfg" || (
124
127
SET MC_SERVER_ERROR_REASON = Settings.cfg_Error:JAVA_ARGS
125
128
GOTO ERROR
126
129
)
127
130
128
- > nul FIND /I " CRASH_COUNT=" " %~dp0 settings.cfg" || (
131
+ > nul %MC_SYS32% \ FIND.EXE /I " CRASH_COUNT=" " %~dp0 settings.cfg" || (
129
132
SET MC_SERVER_ERROR_REASON = Settings.cfg_Error:CRASH_COUNT
130
133
GOTO ERROR
131
134
)
132
135
133
- > nul FIND /I " CRASH_TIMER=" " %~dp0 settings.cfg" || (
136
+ > nul %MC_SYS32% \ FIND.EXE /I " CRASH_TIMER=" " %~dp0 settings.cfg" || (
134
137
SET MC_SERVER_ERROR_REASON = Settings.cfg_Error:CRASH_TIMER
135
138
GOTO ERROR
136
139
)
137
140
138
- > nul FIND /I " RUN_FROM_BAD_FOLDER=" " %~dp0 settings.cfg" || (
141
+ > nul %MC_SYS32% \ FIND.EXE /I " RUN_FROM_BAD_FOLDER=" " %~dp0 settings.cfg" || (
139
142
SET MC_SERVER_ERROR_REASON = Settings.cfg_Error:RUN_FROM_BAD_FOLDER
140
143
GOTO ERROR
141
144
)
142
145
143
- > nul FIND /I " IGNORE_OFFLINE=" " %~dp0 settings.cfg" || (
146
+ > nul %MC_SYS32% \ FIND.EXE /I " IGNORE_OFFLINE=" " %~dp0 settings.cfg" || (
144
147
SET MC_SERVER_ERROR_REASON = Settings.cfg_Error:IGNORE_OFFLINE
145
148
GOTO ERROR
146
149
)
147
150
148
- > nul FIND /I " IGNORE_JAVA_CHECK=" " %~dp0 settings.cfg" || (
151
+ > nul %MC_SYS32% \ FIND.EXE /I " IGNORE_JAVA_CHECK=" " %~dp0 settings.cfg" || (
149
152
SET MC_SERVER_ERROR_REASON = Settings.cfg_Error:IGNORE_JAVA_CHECK
150
153
GOTO ERROR
151
154
)
152
155
153
- > nul FIND /I " MCVER=" " %~dp0 settings.cfg" || (
156
+ > nul %MC_SYS32% \ FIND.EXE /I " MCVER=" " %~dp0 settings.cfg" || (
154
157
SET MC_SERVER_ERROR_REASON = Settings.cfg_Error:MCVER
155
158
GOTO ERROR
156
159
)
157
160
158
- > nul FIND /I " FORGEVER=" " %~dp0 settings.cfg" || (
161
+ > nul %MC_SYS32% \ FIND.EXE /I " FORGEVER=" " %~dp0 settings.cfg" || (
159
162
SET MC_SERVER_ERROR_REASON = Settings.cfg_Error:FORGEVER
160
163
GOTO ERROR
161
164
)
162
165
163
- > nul FIND /I " FORGEURL=" " %~dp0 settings.cfg" || (
166
+ > nul %MC_SYS32% \ FIND.EXE /I " FORGEURL=" " %~dp0 settings.cfg" || (
164
167
SET MC_SERVER_ERROR_REASON = Settings.cfg_Error:FORGEURL
165
168
GOTO ERROR
166
169
)
@@ -254,13 +257,13 @@ ECHO INFO: Checking java installation...
254
257
ECHO DEBUG: JAVA version output (java -d64 -version): 1 >> " %~dp0 serverstart.log" 2 >& 1
255
258
java -d64 -version || GOTO JAVAERROR 1 >> " %~dp0 serverstart.log" 2 >& 1
256
259
257
- java -d64 -version 2 >& 1 | FIND " 1.8" 1 >> " %~dp0 serverstart.log" 2 >& 1
260
+ java -d64 -version 2 >& 1 | %MC_SYS32% \ FIND.EXE " 1.8" 1 >> " %~dp0 serverstart.log" 2 >& 1
258
261
IF %ERRORLEVEL% EQU 0 (
259
262
ECHO INFO: Found 64-bit Java 1.8 1 >> " %~dp0 serverstart.log" 2 >& 1
260
263
ECHO ...64-bit Java 1.8 found! 1 >> " %~dp0 serverstart.log" 2 >& 1
261
264
GOTO CHECKFOLDER
262
265
) ELSE (
263
- java -d64 -version 2 >& 1 | FIND " 1.9" 1 >> " %~dp0 serverstart.log" 2 >& 1
266
+ java -d64 -version 2 >& 1 | %MC_SYS32% \ FIND.EXE " 1.9" 1 >> " %~dp0 serverstart.log" 2 >& 1
264
267
IF %ERRORLEVEL% EQU 0 (
265
268
ECHO INFO: Found 64-bit Java 1.9 1 >> " %~dp0 serverstart.log" 2 >& 1
266
269
ECHO ...64-bit Java 1.9 found!
@@ -299,26 +302,26 @@ ECHO INFO: Checking if current folder is valid... 1>> "%~dp0serverstart.log" 2>
299
302
300
303
REM Check if current directory is in ProgramFiles
301
304
IF NOT DEFINED ProgramFiles ( GOTO CHECKPROG86 )
302
- ECHO .x%CD% x | FINDSTR /I /C:" %ProgramFiles% " > nul
305
+ ECHO .x%CD% x | %MC_SYS32% \ FINDSTR.EXE /I /C:" %ProgramFiles% " > nul
303
306
REM ECHO Error Level: %ERRORLEVEL%
304
307
IF %ERRORLEVEL% EQU 0 (
305
308
SET MC_SERVER_ERROR_REASON = BadFolder-ProgramFiles;
306
309
GOTO FOLDERERROR
307
310
)
308
- ECHO .x%~dp0 x | FINDSTR /I /C:" %ProgramFiles% " > nul
311
+ ECHO .x%~dp0 x | %MC_SYS32% \ FINDSTR.EXE /I /C:" %ProgramFiles% " > nul
309
312
IF %ERRORLEVEL% EQU 0 (
310
313
SET MC_SERVER_ERROR_REASON = BadFolder-ProgramFiles;
311
314
GOTO FOLDERERROR
312
315
)
313
316
314
317
:CHECKPROG86
315
318
IF NOT DEFINED ProgramFiles^ (x86^ ) ( GOTO CHECKSYS )
316
- ECHO .x%CD% x | FINDSTR /I /C:" %ProgramFiles(x86)% " > nul
319
+ ECHO .x%CD% x | %MC_SYS32% \ FINDSTR.EXE /I /C:" %ProgramFiles(x86)% " > nul
317
320
IF %ERRORLEVEL% EQU 0 (
318
321
SET MC_SERVER_ERROR_REASON = BadFolder-ProgramFiles86;
319
322
GOTO FOLDERERROR
320
323
)
321
- ECHO .x%~dp0 x | FINDSTR /I /C:" %ProgramFiles(x86)% " > nul
324
+ ECHO .x%~dp0 x | %MC_SYS32% \ FINDSTR.EXE /I /C:" %ProgramFiles(x86)% " > nul
322
325
IF %ERRORLEVEL% EQU 0 (
323
326
SET MC_SERVER_ERROR_REASON = BadFolder-ProgramFiles86;
324
327
GOTO FOLDERERROR
@@ -327,12 +330,12 @@ IF %ERRORLEVEL% EQU 0 (
327
330
:CHECKSYS
328
331
REM Check if current directory is in SystemRoot
329
332
IF NOT DEFINED SystemRoot ( GOTO CHECKTEMP )
330
- ECHO .x%CD% x | FINDSTR /I /C:" %SystemRoot% " > nul
333
+ ECHO .x%CD% x | %MC_SYS32% \ FINDSTR.EXE /I /C:" %SystemRoot% " > nul
331
334
IF %ERRORLEVEL% EQU 0 (
332
335
SET MC_SERVER_ERROR_REASON = BadFolder-System;
333
336
GOTO FOLDERERROR
334
337
)
335
- ECHO .x%~dp0 x | FINDSTR /I /C:" %SystemRoot% " > nul
338
+ ECHO .x%~dp0 x | %MC_SYS32% \ FINDSTR.EXE /I /C:" %SystemRoot% " > nul
336
339
IF %ERRORLEVEL% EQU 0 (
337
340
SET MC_SERVER_ERROR_REASON = BadFolder-System;
338
341
GOTO FOLDERERROR
@@ -341,25 +344,25 @@ IF %ERRORLEVEL% EQU 0 (
341
344
:CHECKTEMP
342
345
REM Check if current directory is in TEMP
343
346
IF NOT DEFINED TEMP ( GOTO CHECKTMP )
344
- ECHO .x%CD% x | FINDSTR /I /C:" %TEMP% " > nul
347
+ ECHO .x%CD% x | %MC_SYS32% \ FINDSTR.EXE /I /C:" %TEMP% " > nul
345
348
IF %ERRORLEVEL% EQU 0 (
346
349
SET MC_SERVER_ERROR_REASON = BadFolder-Temp;
347
350
GOTO FOLDERERROR
348
351
)
349
- ECHO .x%~dp0 x | FINDSTR /I /C:" %TEMP% " > nul
352
+ ECHO .x%~dp0 x | %MC_SYS32% \ FINDSTR.EXE /I /C:" %TEMP% " > nul
350
353
IF %ERRORLEVEL% EQU 0 (
351
354
SET MC_SERVER_ERROR_REASON = BadFolder-Temp;
352
355
GOTO FOLDERERROR
353
356
)
354
357
355
358
:CHECKTMP
356
359
IF NOT DEFINED TMP ( GOTO CHECKONLINE )
357
- ECHO .x%CD% x | FINDSTR /I /C:" %TMP% " > nul
360
+ ECHO .x%CD% x | %MC_SYS32% \ FINDSTR.EXE /I /C:" %TMP% " > nul
358
361
IF %ERRORLEVEL% EQU 0 (
359
362
SET MC_SERVER_ERROR_REASON = BadFolder-Temp;
360
363
GOTO FOLDERERROR
361
364
)
362
- ECHO .x%~dp0 x | FINDSTR /I /C:" %TMP% " > nul
365
+ ECHO .x%~dp0 x | %MC_SYS32% \ FINDSTR.EXE /I /C:" %TMP% " > nul
363
366
IF %ERRORLEVEL% EQU 0 (
364
367
SET MC_SERVER_ERROR_REASON = BadFolder-Temp;
365
368
GOTO FOLDERERROR
@@ -385,7 +388,7 @@ ECHO Checking for basic internet connectivity...
385
388
ECHO INFO: Checking for basic internet connectivity... 1 >> " %~dp0 serverstart.log" 2 >& 1
386
389
387
390
REM Try with Google DNS
388
- PING -n 2 -w 1000 8.8.8.8 | find " TTL=" 1 >> " %~dp0 serverstart.log" 2 >& 1
391
+ %MC_SYS32% \ PING.EXE -n 2 -w 1000 8.8.8.8 | %MC_SYS32% \FIND.EXE " TTL=" 1 >> " %~dp0 serverstart.log" 2 >& 1
389
392
IF %ERRORLEVEL% EQU 0 (
390
393
SET MC_SERVER_TMP_FLAG = 0
391
394
ECHO INFO: Ping of " 8.8.8.8" Successfull 1 >> " %~dp0 serverstart.log" 2 >& 1
@@ -396,7 +399,7 @@ IF %ERRORLEVEL% EQU 0 (
396
399
397
400
REM If Google ping failed try one more time with L3 just in case
398
401
IF MC_SERVER_TMP_FLAG EQU 1 (
399
- PING -n 2 -w 1000 4.2.2.1 | find " TTL=" 1 >> " %~dp0 serverstart.log" 2 >& 1
402
+ %MC_SYS32% \ PING.EXE -n 2 -w 1000 4.2.2.1 | %MC_SYS32% \FIND.EXE " TTL=" 1 >> " %~dp0 serverstart.log" 2 >& 1
400
403
IF %ERRORLEVEL% EQU 0 (
401
404
SET MC_SERVER_TMP_FLAG = 0
402
405
INFO: Ping of " 4.4.2.1" Successfull 1 >> " %~dp0 serverstart.log" 2 >& 1
@@ -522,7 +525,7 @@ ECHO Clearing old files before installing forge/minecraft...
522
525
ECHO INFO: Clearing and installing forge/minecraft... 1 >> " %~dp0 serverstart.log" 2 >& 1
523
526
524
527
REM Just in case there's anything pending or dupe-named before starting...
525
- bitsadmin /reset 1 >> " %~dp0 serverstart.log" 2 >& 1
528
+ %MC_SYS32% \ bitsadmin.exe /reset 1 >> " %~dp0 serverstart.log" 2 >& 1
526
529
527
530
(FOR /f " tokens=* delims=*" %%x in ('dir " %~dp0 *forge*%MC_SERVER_MCVER% *%MC_SERVER_FORGEVER% *installer.jar" /B /O:-D') DO SET " MC_SERVER_TMP_FLAG = %%x " & GOTO INSTALL1) 1 >> " %~dp0 serverstart.log" 2 >& 1
528
531
@@ -550,7 +553,7 @@ IF NOT %MC_SERVER_IGNORE_OFFLINE% EQU 0 (
550
553
)
551
554
552
555
REM Ping minecraftforge before attempting download
553
- PING -n 2 -w 1000 minecraftforge.net | find " TTL=" 1 >> " %~dp0 serverstart.log" 2 >& 1
556
+ %MC_SYS32% \ PING.EXE -n 2 -w 1000 minecraftforge.net | %MC_SYS32% \FIND.EXE " TTL=" 1 >> " %~dp0 serverstart.log" 2 >& 1
554
557
IF %ERRORLEVEL% EQU 0 (
555
558
ECHO INFO: Ping of " minecraftforge.net" Successfull 1 >> " %~dp0 serverstart.log" 2 >& 1
556
559
) ELSE (
@@ -582,7 +585,7 @@ SET MC_SERVER_TMP_FLAG=0
582
585
:FETCHHTML
583
586
REM Download Forge Download Index HTML to parse the URL for the direct download
584
587
ECHO INFO: Fetching index html from forge ^ ( https://files.minecraftforge.net/maven/net/minecraftforge/forge/index_%MC_SERVER_MCVER% .html ^ ) 1 >> " %~dp0 serverstart.log" 2 >& 1
585
- bitsadmin /rawreturn /nowrap /transfer dlforgehtml /download /priority FOREGROUND " https://files.minecraftforge.net/maven/net/minecraftforge/forge/index_%MC_SERVER_MCVER% .html" " %~dp0 forge-%MC_SERVER_MCVER% .html" 1 >> " %~dp0 serverstart.log" 2 >& 1
588
+ %MC_SYS32% \ bitsadmin.exe /rawreturn /nowrap /transfer dlforgehtml /download /priority FOREGROUND " https://files.minecraftforge.net/maven/net/minecraftforge/forge/index_%MC_SERVER_MCVER% .html" " %~dp0 forge-%MC_SERVER_MCVER% .html" 1 >> " %~dp0 serverstart.log" 2 >& 1
586
589
587
590
IF NOT EXIST " %~dp0 forge-%MC_SERVER_MCVER% .html" (
588
591
IF " %MC_SERVER_TMP_FLAG% " == " 0" (
@@ -613,7 +616,7 @@ REM )
613
616
REM )
614
617
615
618
REM More complex wannabe-regex (aka magic)
616
- FOR /f tokens^ =^ 5^ delims^ =^ =^ < ^ > ^ " %%G in ('findstr /ir " http:\/\/files.*%MC_SERVER_FORGEVER% .*installer.jar" " %~dp0 forge-%MC_SERVER_MCVER% .html" ') DO SET MC_SERVER_FORGEURL=%%G & GOTO FETCHHTML1
619
+ FOR /f tokens^ =^ 5^ delims^ =^ =^ < ^ > ^ " %%G in ('%MC_SYS32% \FINDSTR.EXE /ir " http:\/\/files.*%MC_SERVER_FORGEVER% .*installer.jar" " %~dp0 forge-%MC_SERVER_MCVER% .html" ') DO SET MC_SERVER_FORGEURL=%%G & GOTO FETCHHTML1
617
620
618
621
:FETCHHTML1
619
622
IF " %MC_SERVER_FORGEURL% " == " %MC_SERVER_FORGEURL:installer.jar =% " (
@@ -633,7 +636,7 @@ SET MC_SERVER_TMP_FLAG=0
633
636
:DOWNLOADINSTALLER
634
637
REM Attempt to download installer to a temp download
635
638
ECHO DEBUG: Attempting to download " %MC_SERVER_FORGEURL% " 1 >> " %~dp0 serverstart.log" 2 >& 1
636
- bitsadmin /rawreturn /nowrap /transfer dlforgeinstaller /download /priority FOREGROUND %MC_SERVER_FORGEURL% " %~dp0 tmp-forgeinstaller.jar" 1 >> " %~dp0 serverstart.log" 2 >& 1
639
+ %MC_SYS32% \ bitsadmin.exe /rawreturn /nowrap /transfer dlforgeinstaller /download /priority FOREGROUND %MC_SERVER_FORGEURL% " %~dp0 tmp-forgeinstaller.jar" 1 >> " %~dp0 serverstart.log" 2 >& 1
637
640
638
641
REM Check that temp-download installer was downloaded
639
642
IF NOT EXIST " %~dp0 tmp-forgeinstaller.jar" (
@@ -756,7 +759,7 @@ GOTO CLEANUP
756
759
:RESTARTER
757
760
COLOR 6F
758
761
REM Quick-check EULA before commencing full restarter logic
759
- > nul FIND /I " eula=true" " %~dp0 eula.txt" || (
762
+ > nul %MC_SYS32% \ FIND.EXE /I " eula=true" " %~dp0 eula.txt" || (
760
763
TITLE ERROR: EULA.TXT Must be updated before %MC_SERVER_PACKNAME% server can start
761
764
CLS
762
765
ECHO .
@@ -895,7 +898,7 @@ SET MC_SERVER_CRASH_YYYYMMDD=
895
898
SET MC_SERVER_CRASH_HHMMSS =
896
899
897
900
REM Reset bitsadmin in case things got hung or errored
898
- bitsadmin /reset 1 >> " %~dp0 serverstart.log" 2 >& 1
901
+ %MC_SYS32% \ bitsadmin.exe /reset 1 >> " %~dp0 serverstart.log" 2 >& 1
899
902
900
903
COLOR
901
904
0 commit comments