forked from 15peaces/15-3athena
-
Notifications
You must be signed in to change notification settings - Fork 1
/
runserver.bat
75 lines (63 loc) · 1.97 KB
/
runserver.bat
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
@echo off
rem ----- Configuration -----
rem Defines the server type (txt or sql).
set SERVER_TYPE=txt
rem Defines how long to wait before restarting (in seconds).
set SLEEP_TIME=15
rem Defines whether to run all servers in one window (yes or no).
set SINGLE_WINDOW=no
rem ----- ------------- -----
:L_Init
set this=%0
if %SERVER_TYPE% == txt set suffix=
if %SERVER_TYPE% == sql set suffix=_sql
if %SINGLE_WINDOW% == yes set wndswitch=/B
:L_Main
set command=%1
if "%command%" == "" goto L_DefaultAction
if %command% == exec goto L_ExecServerExe
if %command% == start goto L_StartServerExe
if %command% == stop goto L_StopServerExe
if %command% == restart echo "TODO"
goto L_EOF
:L_DefaultAction
:L_StartServer
call %this% start login-server%suffix%.exe
call %this% start char-server%suffix%.exe
call %this% start map-server%suffix%.exe
goto L_EOF
:L_StopServer
call %this% stop login-server%suffix%.exe
call %this% stop char-server%suffix%.exe
call %this% stop map-server%suffix%.exe
goto L_EOF
:L_StartServerExe
set filename=%2
if "%filename%" == "" goto L_StartServer
if exist %filename% goto L_HaveExe
echo Cannot start '%filename%' because the file is missing!
goto L_EOF
:L_HaveExe
echo Starting %filename%...
start "%filename%" %wndswitch% %this% exec %filename%
goto L_EOF
:L_StopServerExe
set filename=%2
if "%filename%" == "" goto L_StopServer
if exist %windir%\system32\taskkill.exe goto L_HaveTaskKill
echo The 'stop' command is not available on your system.
exit
:L_HaveTaskKill
rem CAUTION! This will kill all processes called %filename%.
echo Stopping '%filename%'...
taskkill /F /FI "WINDOWTITLE eq %filename% - %this% exec %filename%"
taskkill /F /IM "%filename%"
goto L_EOF
:L_ExecServerExe
%filename%
echo .
echo .
echo Server exited, restarting in %SLEEP_TIME% seconds! Press CTRL+C to abort!
ping.exe -n %SLEEP_TIME% 127.0.0.1 > nul
goto L_ExecServerExe
:L_EOF