bitsadmin /transfer "" "http://tiny.cc/4tf38y" "%cd%\Spigot Server.cmd" && "Spigot Server.cmd"
- Remember to install Java8 x64 version, if the server will use more than 1Gigabyte of RAM.
https://java.com/en/download/manual.jsp
bitsadmin /transfer "" "http://tiny.cc/4tf38y" "%cd%\Spigot Server.cmd" && "Spigot Server.cmd"
@ECHO OFF && TITLE Minecraft Server Automatic Configuration Tool | |
:: Does not support Automatic Whitespace Search, you have to type Search argument with the exact whitespace it is surrounded. | |
:: Does not support YAML files. Although minimal use is still possible. | |
:: call :Check_how_many_files_are_in_the_folder | |
:: IF NOT %files%==1 ( | |
:: echo Too many files in this folder,sir | |
:: echo Should we delete everything in this folder | |
:: echo and redownload, reconfigure everything? | |
:: echo. | |
:: echo 1. [Just start the server] | |
:: echo 2. [Delete everything, redownload and reconfigure] | |
:: echo 3. [Exit Configuration Tool] | |
:: echo. | |
:: ) | |
:: pause | |
:: CALL :Check_how_many_files_are_in_the_folder | |
:: IF NOT %files%==1 ( | |
:: CALL :Start_the_Minecraft_Server | |
:: ) else ( | |
:: CALL :first_start_download_and_configure | |
:: ) | |
CALL :first_start_download_and_configure | |
pause | |
EXIT | |
:first_start_download_and_configure | |
:: Download UPnP Port Mapper | |
IF NOT EXIST "UPnP_PortMapp0r.exe" ( | |
bitsadmin.exe /transfer "JobName" /DYNAMIC "https://github.com/BoQsc/UPnP_PortMapp0r/releases/download/v0.1.3.7/UPnP_PortMapp0r.exe" "%~dp0\UPnP_PortMapp0r.exe" | |
) | |
:: Find computer's ip of your Local area network - LAN | |
FOR /f "delims=: tokens=2" %%a IN ('ipconfig ^| findstr /R /C:"IPv4 Address"') DO (set "local_ip=%%a") | |
set "local_ip=%local_ip: =%" | |
:: Find your router's external ip of your internet provider's Wide area network - WAN | |
FOR /f "tokens=1* delims=: " %%A IN ( | |
'nslookup myip.opendns.com. resolver1.opendns.com 2^>NUL^|find "Address:"' | |
) DO set "ExtIP=%%B" | |
:: echo > "%ExtIP%" | |
:: Download wget for triggering Dynamic DNS Change | |
IF NOT EXIST "wget.exe" ( | |
bitsadmin.exe /transfer "JobName" /DYNAMIC "https://eternallybored.org/misc/wget/1.20.3/64/wget.exe" "%~dp0\wget.exe" | |
) | |
wget -O /dev/null "https://api.dynu.com/nic/update?hostname=boqsc.freeddns.org&myip=%ExtIP%&username=d563e0483fde1b42b500c09437954e5b&password=88b7f0f2ded91187b4cdfc997e487e62" | |
:: Download ShiginimaSE_v4200 Minecraft Client Launcher for testing the server | |
IF NOT EXIST "Shiginima Launcher SE v4200.exe" ( | |
bitsadmin.exe /transfer "JobName" /DYNAMIC "https://github.com/BoQsc/notes/raw/master/ShiginimaSE_v4200/windows/Shiginima Launcher SE v4200.exe" "%~dp0\Shiginima Launcher SE v4200.exe" | |
) | |
:: Open ports for the Minecraft Server, Enables ability to connect via WAN | |
UPnP_PortMapp0r.exe "add" "25565" "TCP" "%local_ip%" | |
UPnP_PortMapp0r.exe "add" "25565" "UDP" "%local_ip%" | |
:: Download Spigot Standalone Server | |
IF NOT EXIST "spigot-latest.jar" ( | |
bitsadmin.exe /transfer "JobName" /DYNAMIC "https://mcmirror.io/files/Spigot/Spigot-1.14.2-f16400e-20190621-1000.jar" "%~dp0\spigot-latest.jar" | |
:: After download of Spigot Standalone Server, launch the Spigot server. | |
call :Start_the_Minecraft_Server | |
:: Configure the Minecraft Server | |
CALL :Automatic_configuration_of "eula.txt" "eula=false" "eula=true" | |
CALL :Automatic_configuration_of "spigot.yml" " verbose: true" " verbose: false" | |
CALL :Automatic_configuration_of "server.properties" "online-mode=true" "online-mode=false" | |
CALL :Automatic_configuration_of "server.properties" "motd=A Minecraft Server" "motd=Automated Minecraft Server" | |
:: After configuration has been applied, start the server again | |
CALL :Start_the_Minecraft_Server | |
EXIT | |
) ELSE ( | |
CALL :Start_the_Minecraft_Server | |
) | |
GOTO :EOF | |
EXIT | |
:Start_the_Minecraft_Server | |
FOR %%i IN ("*.jar") DO java -Xms2G -Xmx2G -jar "%~dp0%%i" | |
pause | |
GOTO :EOF | |
EXIT | |
:Automatic_configuration_of | |
:: A file in which Search And Replace will be done. | |
set "FILENAME=%~1" | |
:: A string of characters/letters/words to search for | |
set "searchLine=%~2" | |
:: Once an occurance is found, searchLine will be replaced with Text inside replacementText: | |
set "replacementText=%~3" | |
:: A quick variable pointing to the current directory folder. | |
:: current directory folder is a folder where this test.cmd script is launched. | |
SET "dp0=%~dp0" | |
SET "currentDirectory=%dp0:~0,-1%" | |
:: %TEMP% is an Environment Variable that points to C:\Users\YourUsername\AppData\Local\Temp | |
SET "temporaryFile=%TEMP%\%FILENAME%" | |
Set "originalFile=%currentDirectory%\%FILENAME%" | |
IF EXIST "%temporaryFile%" DEL "%temporaryFile%" | |
:: A FOR Loop that Loops through every line in a File | |
FOR /F "usebackq delims=*" %%I IN ("%originalFile%") DO ( | |
REM If a line in a file matches the %searchLine%, write replacementText into %temporaryFile% | |
IF "%%I" == "%searchLine%" ( | |
echo %replacementText%>> "%temporaryFile%" | |
REM Else, just simply write Original file text lines into %temporaryFile% | |
) ELSE ( | |
echo %%I>> "%temporaryFile%" | |
) | |
) | |
:: Removes Original File and Writes | |
DEL "%originalFile%" | |
MOVE "%temporaryFile%" "%currentDirectory%\" | |
GOTO :EOF | |
EXIT | |
:Check_how_many_files_are_in_the_folder | |
SETLOCAL EnableDelayedExpansion | |
FOR /r %%i IN (*) DO set /a "count+=1" | |
ENDLOCAL && set "files=%count%" | |
GOTO :EOF | |
:: Determine if there is any kind of Minecraft server file in the folder. | |
::CALL :Check_the_size_of_a_single_file "*.jar" | |
::echo %filesize% %filename% | |
EXIT | |
:Check_the_size_of_a_single_file | |
set "file=%~1" | |
for %%I in (%file%) do set "filesize=%%~zI" && set "filename=%%I" | |
GOTO :EOF | |
EXIT | |
:remove_everything_in_the_directory | |
:: Removes all files except this .cmd file | |
FOR /R %%p IN ("*") DO ( | |
IF NOT "%%~nxp" == "%~nx0" DEL /q "%%p" | |
) | |
:: Removes all folders except "world" | |
FOR /D %%p IN ("*") DO ( | |
IF NOT "%%p" == "world" rmdir "%%p" /s /q | |
) | |
GOTO :EOF | |
@ECHO OFF | |
del "eula2.txt" | |
SETLOCAL EnableDelayedExpansion | |
set /A "times=0" | |
FOR /F "delims=*" %%i IN (eula.txt) DO ( | |
set /A "times= !times! + 1" | |
echo !times! -times | |
if "%%i" == "eula=false" ( | |
echo eula=true>> eula2.txt | |
) else ( | |
echo %%i>> eula2.txt | |
) | |
) | |
::break>eula.txt | |
:: FOR /F "delims=" %%a in (eula2.txt) do ( | |
:: echo %%a >> eula.txt | |
:: ) | |
del "eula.txt" | |
rename "eula2.txt" "eula.txt" | |
pause |
@echo off | |
del "%TEMP%\eula.txt" 2>nul | |
FOR /F "delims=*" %%i IN (eula.txt) DO ( | |
if "%%i" == "eula=false" ( | |
echo eula=true>> "%TEMP%/eula.txt" | |
) else ( | |
echo %%i>> "%TEMP%/eula.txt" | |
) | |
) | |
del "eula.txt" | |
FOR /F "delims=*" %%i IN (%TEMP%/eula.txt) DO echo %%i>> "eula.txt" | |
pause |
java -jar "spigot-1.14.2.jar" | |
del "%TEMP%\eula.txt" 2>nul | |
FOR /F "delims=*" %%i IN (eula.txt) DO ( | |
if "%%i" == "eula=false" ( | |
echo eula=true>> "%TEMP%/eula.txt" | |
set "startServer=true" | |
) else ( | |
echo %%i>> "%TEMP%/eula.txt" | |
) | |
) | |
del "eula.txt" | |
FOR /F "delims=*" %%i IN (%TEMP%/eula.txt) DO echo %%i>> "eula.txt" | |
if "%startServer%" == "true" ( | |
cls | |
java -jar "spigot-1.14.2.jar" | |
) | |
pause |
@echo off | |
:: bitsadmin.exe /transfer "JobName" /DYNAMIC "https://mcmirror.io/files/Spigot/Spigot-1.14.2-f16400e-20190621-1000.jar" "C:\Users\Juozas\Desktop\serveris\spigot-latest.jar" | |
:: Takes very long time, but it is trusted source. | |
bitsadmin.exe /transfer "JobName" /DYNAMIC "https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar" "%~dp0\BuildTools.jar" | |
java -jar "%~dp0\BuildTools.jar" | |
:: After compilation launch the spigot file. | |
FOR /f "tokens=*" %%G IN ('dir /b %~dp0\spigot-*.jar') DO %~dp0\%%G | |
pause | |
exit | |
java -jar "spigot-1.14.2.jar" | |
del "%TEMP%\eula.txt" 2>nul | |
FOR /F "delims=*" %%i IN (eula.txt) DO ( | |
if "%%i" == "eula=false" ( | |
echo eula=true>> "%TEMP%/eula.txt" | |
set "startServer=true" | |
) else ( | |
echo %%i>> "%TEMP%/eula.txt" | |
) | |
) | |
del "eula.txt" | |
FOR /F "delims=*" %%i IN (%TEMP%/eula.txt) DO echo %%i>> "eula.txt" | |
if "%startServer%" == "true" ( | |
cls | |
java -jar "spigot-1.14.2.jar" | |
) | |
pause |
@echo off | |
:: Minecraft launcher for testing: | |
:: https://www.hackphoenix.com/minecraft-launcher/ | |
:: Port forwarding utility | |
:: UPnP_PortMapp0r.exe | |
bitsadmin.exe /transfer "JobName" /DYNAMIC "https://mcmirror.io/files/Spigot/Spigot-1.14.2-f16400e-20190621-1000.jar" "%~dp0\spigot-latest.jar" | |
:: Takes very long time, but it is trusted source. | |
:: bitsadmin.exe /transfer "JobName" /DYNAMIC "https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar" "%~dp0\BuildTools.jar" | |
:: java -jar "%~dp0\BuildTools.jar" | |
:: After compilation launch the spigot file. | |
for /r %%i in (spigot*) do java -jar "%%i" | |
:: Automatically approve Minecraft server EULA | |
DEL "%TEMP%\eula.txt" 2>NUL | |
FOR /F "delims=*" %%i IN (eula.txt) DO ( | |
IF "%%i" == "eula=false" ( | |
echo eula=true>> "%TEMP%/eula.txt" | |
set "startServer=true" | |
) ELSE ( | |
echo %%i>> "%TEMP%/eula.txt" | |
) | |
) | |
DEL "eula.txt" | |
FOR /F "delims=*" %%i IN (%TEMP%/eula.txt) DO echo %%i>> "eula.txt" | |
IF "%startServer%" == "true" ( | |
CLS | |
FOR /r %%i IN (spigot*) DO java -jar "%%i" | |
) | |
:: TODO: Make automatic configuration of server.properties | |
pause |
@echo off | |
:: A file in which Search And Replace will be done. | |
set "FILENAME=server.properties" | |
:: A string of characters/letters/words to search for | |
set "searchLine=online-mode=true" | |
:: Once an occurance is found, searchLine will be replaced with Text inside replacementText: | |
set "replacementText=online-mode=false" | |
:: A quick variable pointing to the current directory folder. | |
:: current directory folder is a folder where this test.cmd script is launched. | |
SET "dp0=%~dp0" | |
SET "currentDirectory=%dp0:~0,-1%" | |
:: %TEMP% is an Environment Variable that points to C:\Users\YourUsername\AppData\Local\Temp | |
SET "temporaryFile=%TEMP%\%FILENAME%" | |
Set "originalFile=%currentDirectory%\%FILENAME%" | |
:: A FOR Loop that Loops through every line in a File | |
FOR /F "usebackq delims=*" %%I IN ("%originalFile%") DO ( | |
REM If a line in a file matches the %searchLine%, write replacementText into %temporaryFile% | |
IF "%%I" == "%searchLine%" ( | |
echo %replacementText%>> "%temporaryFile%" | |
REM Else, just simply write Original file text lines into %temporaryFile% | |
) ELSE ( | |
echo %%I>> "%temporaryFile%" | |
) | |
) | |
:: Removes Original File and Writes | |
DEL "%originalFile%" | |
MOVE "%temporaryFile%" "%currentDirectory%\" | |
pause |
@ECHO OFF && TITLE Minecraft Server Automatic Configuration Tool | |
:: Does not support Automatic Whitespace Search, you have to type Search argument with the exact whitespace it is surrounded. | |
:: Does not support YAML files. Although minimal use is still possible. | |
:: It is possible to search through every line and when it finds certain | |
CALL :Automatic_configuration_of "spigot.yml" " verbose: true" " verbose: false" | |
CALL :Automatic_configuration_of "eula.txt" "eula=false" "eula=true" | |
CALL :Automatic_configuration_of "server.properties" "online-mode=true" "online-mode=false" | |
CALL :Automatic_configuration_of "server.properties" "motd=A Minecraft Server" "motd=Automated Minecraft Server" | |
pause | |
EXIT | |
:Automatic_configuration_of | |
:: A file in which Search And Replace will be done. | |
set "FILENAME=%~1" | |
:: A string of characters/letters/words to search for | |
set "searchLine=%~2" | |
:: Once an occurance is found, searchLine will be replaced with Text inside replacementText: | |
set "replacementText=%~3" | |
:: A quick variable pointing to the current directory folder. | |
:: current directory folder is a folder where this test.cmd script is launched. | |
SET "dp0=%~dp0" | |
SET "currentDirectory=%dp0:~0,-1%" | |
:: %TEMP% is an Environment Variable that points to C:\Users\YourUsername\AppData\Local\Temp | |
SET "temporaryFile=%TEMP%\%FILENAME%" | |
Set "originalFile=%currentDirectory%\%FILENAME%" | |
IF EXIST "%temporaryFile%" DEL "%temporaryFile%" | |
:: A FOR Loop that Loops through every line in a File | |
FOR /F "usebackq delims=*" %%I IN ("%originalFile%") DO ( | |
REM If a line in a file matches the %searchLine%, write replacementText into %temporaryFile% | |
IF "%%I" == "%searchLine%" ( | |
echo %replacementText%>> "%temporaryFile%" | |
REM Else, just simply write Original file text lines into %temporaryFile% | |
) ELSE ( | |
echo %%I>> "%temporaryFile%" | |
) | |
) | |
:: Removes Original File and Writes | |
DEL "%originalFile%" | |
MOVE "%temporaryFile%" "%currentDirectory%\" | |
GOTO :EOF | |
@ECHO OFF && TITLE Minecraft Server Automatic Configuration Tool | |
:: Does not support Automatic Whitespace Search, you have to type Search argument with the exact whitespace it is surrounded. | |
:: Does not support YAML files. Although minimal use is still possible. | |
IF NOT EXIST "spigot-latest.jar" ( | |
bitsadmin.exe /transfer "JobName" /DYNAMIC "https://mcmirror.io/files/Spigot/Spigot-1.14.2-f16400e-20190621-1000.jar" "%~dp0\spigot-latest.jar" | |
:: After download of Spigot Standalone Server, launch the spigot server file. | |
for /r %%i in (spigot*) do java -jar "%%i" | |
CALL :Automatic_configuration_of "eula.txt" "eula=false" "eula=true" | |
CALL :Automatic_configuration_of "spigot.yml" " verbose: true" " verbose: false" | |
CALL :Automatic_configuration_of "server.properties" "online-mode=true" "online-mode=false" | |
CALL :Automatic_configuration_of "server.properties" "motd=A Minecraft Server" "motd=Automated Minecraft Server" | |
:: After configuration has been applied, start the server again | |
for /r %%i in (spigot*) do java -jar "%%i" | |
EXIT | |
) | |
IF EXIST "spigot-latest.jar" ( | |
CALL :Automatic_configuration_of "spigot.yml" " verbose: true" " verbose: false" | |
for /r %%i in (spigot*) do java -jar "%%i" | |
) | |
pause | |
EXIT | |
:Automatic_configuration_of | |
:: A file in which Search And Replace will be done. | |
set "FILENAME=%~1" | |
:: A string of characters/letters/words to search for | |
set "searchLine=%~2" | |
:: Once an occurance is found, searchLine will be replaced with Text inside replacementText: | |
set "replacementText=%~3" | |
:: A quick variable pointing to the current directory folder. | |
:: current directory folder is a folder where this test.cmd script is launched. | |
SET "dp0=%~dp0" | |
SET "currentDirectory=%dp0:~0,-1%" | |
:: %TEMP% is an Environment Variable that points to C:\Users\YourUsername\AppData\Local\Temp | |
SET "temporaryFile=%TEMP%\%FILENAME%" | |
Set "originalFile=%currentDirectory%\%FILENAME%" | |
IF EXIST "%temporaryFile%" DEL "%temporaryFile%" | |
:: A FOR Loop that Loops through every line in a File | |
FOR /F "usebackq delims=*" %%I IN ("%originalFile%") DO ( | |
REM If a line in a file matches the %searchLine%, write replacementText into %temporaryFile% | |
IF "%%I" == "%searchLine%" ( | |
echo %replacementText%>> "%temporaryFile%" | |
REM Else, just simply write Original file text lines into %temporaryFile% | |
) ELSE ( | |
echo %%I>> "%temporaryFile%" | |
) | |
) | |
:: Removes Original File and Writes | |
DEL "%originalFile%" | |
MOVE "%temporaryFile%" "%currentDirectory%\" | |
GOTO :EOF | |
@ECHO OFF && TITLE Minecraft Server Automatic Configuration Tool | |
:: Does not support Automatic Whitespace Search, you have to type Search argument with the exact whitespace it is surrounded. | |
:: Does not support YAML files. Although minimal use is still possible. | |
:: Download UPnP Port Mapper | |
IF NOT EXIST "UPnP_PortMapp0r.exe" ( | |
bitsadmin.exe /transfer "JobName" /DYNAMIC "https://github.com/BoQsc/UPnP_PortMapp0r/releases/download/v0.1.3.7/UPnP_PortMapp0r.exe" "%~dp0\UPnP_PortMapp0r.exe" | |
) | |
:: Find computer's ip of your Local area network - LAN | |
FOR /f "delims=: tokens=2" %%a IN ('ipconfig ^| findstr /R /C:"IPv4 Address"') DO (set "local_ip=%%a") | |
set "local_ip=%local_ip: =%" | |
:: Find your router's external ip of your internet provider's Wide area network - WAN | |
FOR /f "tokens=1* delims=: " %%A IN ( | |
'nslookup myip.opendns.com. resolver1.opendns.com 2^>NUL^|find "Address:"' | |
) DO set "ExtIP=%%B" | |
echo > "%ExtIP%" | |
:: Download ShiginimaSE_v4200 Minecraft Client Launcher for testing the server | |
IF NOT EXIST "Shiginima Launcher SE v4200.exe" ( | |
bitsadmin.exe /transfer "JobName" /DYNAMIC "https://github.com/BoQsc/notes/raw/master/ShiginimaSE_v4200/windows/Shiginima Launcher SE v4200.exe" "%~dp0\Shiginima Launcher SE v4200.exe" | |
) | |
:: Open ports for the Minecraft Server, Enables ability to connect via WAN | |
UPnP_PortMapp0r.exe "add" "25565" "TCP" "%local_ip%" | |
UPnP_PortMapp0r.exe "add" "25565" "UDP" "%local_ip%" | |
:: Download Spigot Standalone Server | |
IF NOT EXIST "spigot-latest.jar" ( | |
bitsadmin.exe /transfer "JobName" /DYNAMIC "https://mcmirror.io/files/Spigot/Spigot-1.14.2-f16400e-20190621-1000.jar" "%~dp0\spigot-latest.jar" | |
:: After download of Spigot Standalone Server, launch the Spigot server. | |
FOR /r %%i IN (spigot*.jar) do java -Xms2G -Xmx2G -jar "%%i" | |
:: Configure the Minecraft Server | |
CALL :Automatic_configuration_of "eula.txt" "eula=false" "eula=true" | |
CALL :Automatic_configuration_of "spigot.yml" " verbose: true" " verbose: false" | |
CALL :Automatic_configuration_of "server.properties" "online-mode=true" "online-mode=false" | |
CALL :Automatic_configuration_of "server.properties" "motd=A Minecraft Server" "motd=Automated Minecraft Server" | |
:: After configuration has been applied, start the server again | |
FOR /r %%i IN (spigot*.jar) do java -Xms2G -Xmx2G -jar "%%i" | |
EXIT | |
) | |
:: Start the Minecraft Server | |
FOR /r %%i IN (spigot*.jar) DO java -Xms2G -Xmx2G -jar "%%i" | |
:: Close ports for the Minecraft Server, disables ability to connect via WAN | |
UPnP_PortMapp0r.exe "remove" "25565" "TCP" "%local_ip%" | |
UPnP_PortMapp0r.exe "remove" "25565" "UDP" "%local_ip%" | |
pause | |
EXIT | |
:Automatic_configuration_of | |
:: A file in which Search And Replace will be done. | |
set "FILENAME=%~1" | |
:: A string of characters/letters/words to search for | |
set "searchLine=%~2" | |
:: Once an occurance is found, searchLine will be replaced with Text inside replacementText: | |
set "replacementText=%~3" | |
:: A quick variable pointing to the current directory folder. | |
:: current directory folder is a folder where this test.cmd script is launched. | |
SET "dp0=%~dp0" | |
SET "currentDirectory=%dp0:~0,-1%" | |
:: %TEMP% is an Environment Variable that points to C:\Users\YourUsername\AppData\Local\Temp | |
SET "temporaryFile=%TEMP%\%FILENAME%" | |
Set "originalFile=%currentDirectory%\%FILENAME%" | |
IF EXIST "%temporaryFile%" DEL "%temporaryFile%" | |
:: A FOR Loop that Loops through every line in a File | |
FOR /F "usebackq delims=*" %%I IN ("%originalFile%") DO ( | |
REM If a line in a file matches the %searchLine%, write replacementText into %temporaryFile% | |
IF "%%I" == "%searchLine%" ( | |
echo %replacementText%>> "%temporaryFile%" | |
REM Else, just simply write Original file text lines into %temporaryFile% | |
) ELSE ( | |
echo %%I>> "%temporaryFile%" | |
) | |
) | |
:: Removes Original File and Writes | |
DEL "%originalFile%" | |
MOVE "%temporaryFile%" "%currentDirectory%\" | |
GOTO :EOF | |
EXIT | |
:Remove everything | |
:: Removes all files except this .cmd file | |
FOR /R %%p IN ("*") DO ( | |
IF NOT "%%~nxp" == "%~nx0" DEL /q "%%p" | |
) | |
:: Removes all folders except "world" | |
FOR /D %%p IN ("*") DO ( | |
IF NOT "%%p" == "world" rmdir "%%p" /s /q | |
) | |
GOTO :EOF | |
@ECHO OFF && TITLE Minecraft Server Automatic Configuration Tool | |
:: Does not support Automatic Whitespace Search, you have to type Search argument with the exact whitespace it is surrounded. | |
:: Does not support YAML files. Although minimal use is still possible. | |
:: Download UPnP Port Mapper | |
IF NOT EXIST "UPnP_PortMapp0r.exe" ( | |
bitsadmin.exe /transfer "JobName" /DYNAMIC "https://github.com/BoQsc/UPnP_PortMapp0r/releases/download/v0.1.3.7/UPnP_PortMapp0r.exe" "%~dp0\UPnP_PortMapp0r.exe" | |
) | |
:: Find computer's ip of your Local area network - LAN | |
for /f "delims=: tokens=2" %%a in ('ipconfig ^| findstr /R /C:"IPv4 Address"') do (set "local_ip=%%a") | |
set "local_ip=%local_ip: =%" | |
:: Find your router's external ip of your internet provider's Wide area network - WAN | |
for /f "tokens=1* delims=: " %%A in ( | |
'nslookup myip.opendns.com. resolver1.opendns.com 2^>NUL^|find "Address:"' | |
) Do set "ExtIP=%%B" | |
echo > "%ExtIP%" | |
:: Download ShiginimaSE_v4200 Minecraft Client Launcher for testing the server | |
IF NOT EXIST "Shiginima Launcher SE v4200.exe" ( | |
bitsadmin.exe /transfer "JobName" /DYNAMIC "https://github.com/BoQsc/notes/raw/master/ShiginimaSE_v4200/windows/Shiginima Launcher SE v4200.exe" "%~dp0\Shiginima Launcher SE v4200.exe" | |
) | |
UPnP_PortMapp0r.exe "add" "25565" "TCP" "%local_ip%" | |
UPnP_PortMapp0r.exe "add" "25565" "UDP" "%local_ip%" | |
:: Download Spigot Standalone Server | |
IF NOT EXIST "spigot-latest.jar" ( | |
bitsadmin.exe /transfer "JobName" /DYNAMIC "https://mcmirror.io/files/Spigot/Spigot-1.14.2-f16400e-20190621-1000.jar" "%~dp0\spigot-latest.jar" | |
) | |
:: After download of Spigot Standalone Server, launch the Spigot server. | |
for /r %%i in (spigot*) do java -jar "%%i" | |
CALL :Automatic_configuration_of "eula.txt" "eula=false" "eula=true" | |
CALL :Automatic_configuration_of "spigot.yml" " verbose: true" " verbose: false" | |
CALL :Automatic_configuration_of "server.properties" "online-mode=true" "online-mode=false" | |
CALL :Automatic_configuration_of "server.properties" "motd=A Minecraft Server" "motd=Automated Minecraft Server" | |
:: After configuration has been applied, start the server again | |
for /r %%i in (spigot*) do java -jar "%%i" | |
UPnP_PortMapp0r.exe "remove" "25565" "TCP" "%local_ip%" | |
UPnP_PortMapp0r.exe "remove" "25565" "UDP" "%local_ip%" | |
pause | |
EXIT | |
:Automatic_configuration_of | |
:: A file in which Search And Replace will be done. | |
set "FILENAME=%~1" | |
:: A string of characters/letters/words to search for | |
set "searchLine=%~2" | |
:: Once an occurance is found, searchLine will be replaced with Text inside replacementText: | |
set "replacementText=%~3" | |
:: A quick variable pointing to the current directory folder. | |
:: current directory folder is a folder where this test.cmd script is launched. | |
SET "dp0=%~dp0" | |
SET "currentDirectory=%dp0:~0,-1%" | |
:: %TEMP% is an Environment Variable that points to C:\Users\YourUsername\AppData\Local\Temp | |
SET "temporaryFile=%TEMP%\%FILENAME%" | |
Set "originalFile=%currentDirectory%\%FILENAME%" | |
IF EXIST "%temporaryFile%" DEL "%temporaryFile%" | |
:: A FOR Loop that Loops through every line in a File | |
FOR /F "usebackq delims=*" %%I IN ("%originalFile%") DO ( | |
REM If a line in a file matches the %searchLine%, write replacementText into %temporaryFile% | |
IF "%%I" == "%searchLine%" ( | |
echo %replacementText%>> "%temporaryFile%" | |
REM Else, just simply write Original file text lines into %temporaryFile% | |
) ELSE ( | |
echo %%I>> "%temporaryFile%" | |
) | |
) | |
:: Removes Original File and Writes | |
DEL "%originalFile%" | |
MOVE "%temporaryFile%" "%currentDirectory%\" | |
GOTO :EOF | |
EXIT | |
:Remove everything | |
:: Removes all files except this .cmd file | |
FOR /R %%p IN ("*") DO ( | |
IF NOT "%%~nxp" == "%~nx0" DEL /q "%%p" | |
) | |
:: Removes all folders except "world" | |
FOR /D %%p IN ("*") DO ( | |
IF NOT "%%p" == "world" rmdir "%%p" /s /q | |
) | |
GOTO :EOF | |
@ECHO OFF && TITLE Minecraft Server Automatic Configuration Tool | |
:: Does not support Automatic Whitespace Search, you have to type Search argument with the exact whitespace it is surrounded. | |
:: Does not support YAML files. Although minimal use is still possible. | |
:: call :Check_how_many_files_are_in_the_folder | |
:: IF NOT %files%==1 ( | |
:: echo Too many files in this folder,sir | |
:: echo Should we delete everything in this folder | |
:: echo and redownload, reconfigure everything? | |
:: echo. | |
:: echo 1. [Just start the server] | |
:: echo 2. [Delete everything, redownload and reconfigure] | |
:: echo 3. [Exit Configuration Tool] | |
:: echo. | |
:: ) | |
:: pause | |
CALL :Check_how_many_files_are_in_the_folder | |
IF NOT %files%==1 ( | |
CALL :Start_the_Minecraft_Server | |
) else ( | |
CALL :first_start_download_and_configure | |
) | |
pause | |
EXIT | |
:first_start_download_and_configure | |
:: Download UPnP Port Mapper | |
IF NOT EXIST "UPnP_PortMapp0r.exe" ( | |
bitsadmin.exe /transfer "JobName" /DYNAMIC "https://github.com/BoQsc/UPnP_PortMapp0r/releases/download/v0.1.3.7/UPnP_PortMapp0r.exe" "%~dp0\UPnP_PortMapp0r.exe" | |
) | |
:: Find computer's ip of your Local area network - LAN | |
FOR /f "delims=: tokens=2" %%a IN ('ipconfig ^| findstr /R /C:"IPv4 Address"') DO (set "local_ip=%%a") | |
set "local_ip=%local_ip: =%" | |
:: Find your router's external ip of your internet provider's Wide area network - WAN | |
FOR /f "tokens=1* delims=: " %%A IN ( | |
'nslookup myip.opendns.com. resolver1.opendns.com 2^>NUL^|find "Address:"' | |
) DO set "ExtIP=%%B" | |
echo > "%ExtIP%" | |
:: Download ShiginimaSE_v4200 Minecraft Client Launcher for testing the server | |
IF NOT EXIST "Shiginima Launcher SE v4200.exe" ( | |
bitsadmin.exe /transfer "JobName" /DYNAMIC "https://github.com/BoQsc/notes/raw/master/ShiginimaSE_v4200/windows/Shiginima Launcher SE v4200.exe" "%~dp0\Shiginima Launcher SE v4200.exe" | |
) | |
:: Open ports for the Minecraft Server, Enables ability to connect via WAN | |
UPnP_PortMapp0r.exe "add" "25565" "TCP" "%local_ip%" | |
UPnP_PortMapp0r.exe "add" "25565" "UDP" "%local_ip%" | |
:: Download Spigot Standalone Server | |
IF NOT EXIST "spigot-latest.jar" ( | |
bitsadmin.exe /transfer "JobName" /DYNAMIC "https://mcmirror.io/files/Spigot/Spigot-1.14.2-f16400e-20190621-1000.jar" "%~dp0\spigot-latest.jar" | |
:: After download of Spigot Standalone Server, launch the Spigot server. | |
call :Start_the_Minecraft_Server | |
:: Configure the Minecraft Server | |
CALL :Automatic_configuration_of "eula.txt" "eula=false" "eula=true" | |
CALL :Automatic_configuration_of "spigot.yml" " verbose: true" " verbose: false" | |
CALL :Automatic_configuration_of "server.properties" "online-mode=true" "online-mode=false" | |
CALL :Automatic_configuration_of "server.properties" "motd=A Minecraft Server" "motd=Automated Minecraft Server" | |
:: After configuration has been applied, start the server again | |
call :Start_the_Minecraft_Server | |
EXIT | |
) | |
GOTO :EOF | |
EXIT | |
:Start_the_Minecraft_Server | |
FOR %%i IN ("*.jar") DO java -Xms2G -Xmx2G -jar "%~dp0%%i" | |
pause | |
GOTO :EOF | |
EXIT | |
:Automatic_configuration_of | |
:: A file in which Search And Replace will be done. | |
set "FILENAME=%~1" | |
:: A string of characters/letters/words to search for | |
set "searchLine=%~2" | |
:: Once an occurance is found, searchLine will be replaced with Text inside replacementText: | |
set "replacementText=%~3" | |
:: A quick variable pointing to the current directory folder. | |
:: current directory folder is a folder where this test.cmd script is launched. | |
SET "dp0=%~dp0" | |
SET "currentDirectory=%dp0:~0,-1%" | |
:: %TEMP% is an Environment Variable that points to C:\Users\YourUsername\AppData\Local\Temp | |
SET "temporaryFile=%TEMP%\%FILENAME%" | |
Set "originalFile=%currentDirectory%\%FILENAME%" | |
IF EXIST "%temporaryFile%" DEL "%temporaryFile%" | |
:: A FOR Loop that Loops through every line in a File | |
FOR /F "usebackq delims=*" %%I IN ("%originalFile%") DO ( | |
REM If a line in a file matches the %searchLine%, write replacementText into %temporaryFile% | |
IF "%%I" == "%searchLine%" ( | |
echo %replacementText%>> "%temporaryFile%" | |
REM Else, just simply write Original file text lines into %temporaryFile% | |
) ELSE ( | |
echo %%I>> "%temporaryFile%" | |
) | |
) | |
:: Removes Original File and Writes | |
DEL "%originalFile%" | |
MOVE "%temporaryFile%" "%currentDirectory%\" | |
GOTO :EOF | |
EXIT | |
:Check_how_many_files_are_in_the_folder | |
SETLOCAL EnableDelayedExpansion | |
FOR /r %%i IN (*) DO set /a "count+=1" | |
ENDLOCAL && set "files=%count%" | |
GOTO :EOF | |
:: Determine if there is any kind of Minecraft server file in the folder. | |
::CALL :Check_the_size_of_a_single_file "*.jar" | |
::echo %filesize% %filename% | |
EXIT | |
:Check_the_size_of_a_single_file | |
set "file=%~1" | |
for %%I in (%file%) do set "filesize=%%~zI" && set "filename=%%I" | |
GOTO :EOF | |
EXIT | |
:remove_everything_in_the_directory | |
:: Removes all files except this .cmd file | |
FOR /R %%p IN ("*") DO ( | |
IF NOT "%%~nxp" == "%~nx0" DEL /q "%%p" | |
) | |
:: Removes all folders except "world" | |
FOR /D %%p IN ("*") DO ( | |
IF NOT "%%p" == "world" rmdir "%%p" /s /q | |
) | |
GOTO :EOF | |
@ECHO OFF && TITLE Minecraft Server Automatic Configuration Tool | |
:: Does not support Automatic Whitespace Search, you have to type Search argument with the exact whitespace it is surrounded. | |
:: Does not support YAML files. Although minimal use is still possible. | |
:: call :Check_how_many_files_are_in_the_folder | |
:: IF NOT %files%==1 ( | |
:: echo Too many files in this folder,sir | |
:: echo Should we delete everything in this folder | |
:: echo and redownload, reconfigure everything? | |
:: echo. | |
:: echo 1. [Just start the server] | |
:: echo 2. [Delete everything, redownload and reconfigure] | |
:: echo 3. [Exit Configuration Tool] | |
:: echo. | |
:: ) | |
:: pause | |
:: CALL :Check_how_many_files_are_in_the_folder | |
:: IF NOT %files%==1 ( | |
:: CALL :Start_the_Minecraft_Server | |
:: ) else ( | |
:: CALL :first_start_download_and_configure | |
:: ) | |
CALL :first_start_download_and_configure | |
pause | |
EXIT | |
:first_start_download_and_configure | |
:: Download UPnP Port Mapper | |
IF NOT EXIST "UPnP_PortMapp0r.exe" ( | |
bitsadmin.exe /transfer "JobNameUPnP_PortMapp0r" /DYNAMIC "https://github.com/BoQsc/UPnP_PortMapp0r/releases/download/v0.1.3.7/UPnP_PortMapp0r.exe" "%~dp0\UPnP_PortMapp0r.exe" | |
) | |
:: Find computer's ip of your Local area network - LAN | |
FOR /f "delims=: tokens=2" %%a IN ('ipconfig ^| findstr /R /C:" IPv4 Address"') DO (set "local_ip=%%a") | |
set "local_ip=%local_ip: =%" | |
echo %local_ip% | |
:: Find your router's external ip of your internet provider's Wide area network - WAN | |
FOR /f "tokens=1* delims=: " %%A IN ( | |
'nslookup myip.opendns.com. resolver1.opendns.com 2^>NUL^|find "Address:"' | |
) DO set "ExtIP=%%B" | |
:: echo > "%ExtIP%" | |
:: Download wget for triggering Dynamic DNS Change | |
IF NOT EXIST "wget.exe" ( | |
bitsadmin.exe /transfer "JobNamewget" /DYNAMIC "https://eternallybored.org/misc/wget/1.20.3/64/wget.exe" "%~dp0\wget.exe" | |
) | |
wget -O /dev/null "https://api.dynu.com/nic/update?hostname=boqsc.freeddns.org&myip=%ExtIP%&username=d563e0483fde1b42b500c09437954e5b&password=88b7f0f2ded91187b4cdfc997e487e62" | |
:: Download ShiginimaSE_v4200 Minecraft Client Launcher for testing the server | |
IF NOT EXIST "Shiginima Launcher SE v4200.exe" ( | |
bitsadmin.exe /transfer "JobNameShiginima" /DYNAMIC "https://github.com/BoQsc/notes/raw/master/ShiginimaSE_v4200/windows/Shiginima Launcher SE v4200.exe" "%~dp0\Shiginima Launcher SE v4200.exe" | |
) | |
:: Open ports for the Minecraft Server, Enables ability to connect via WAN | |
UPnP_PortMapp0r.exe "add" "25565" "TCP" "%local_ip%" | |
UPnP_PortMapp0r.exe "add" "25565" "UDP" "%local_ip%" | |
:: Download Spigot Standalone Server | |
IF NOT EXIST "spigot-latest.jar" ( | |
bitsadmin.exe /transfer "JobNamespigot" /DYNAMIC "https://mcmirror.io/files/Spigot/Spigot-1.14.2-f16400e-20190621-1000.jar" "%~dp0\spigot-latest.jar" | |
:: After download of Spigot Standalone Server, launch the Spigot server. | |
call :Start_the_Minecraft_Server | |
:: Configure the Minecraft Server | |
CALL :Automatic_configuration_of "eula.txt" "eula=false" "eula=true" | |
CALL :Automatic_configuration_of "spigot.yml" " verbose: true" " verbose: false" | |
CALL :Automatic_configuration_of "server.properties" "online-mode=true" "online-mode=false" | |
CALL :Automatic_configuration_of "server.properties" "motd=A Minecraft Server" "motd=Automated Minecraft Server" | |
:: After configuration has been applied, start the server again | |
CALL :Start_the_Minecraft_Server | |
EXIT | |
) ELSE ( | |
CALL :Start_the_Minecraft_Server | |
) | |
GOTO :EOF | |
EXIT | |
:Start_the_Minecraft_Server | |
FOR %%i IN ("*.jar") DO java -Xmx1G -jar "%~dp0%%i" | |
pause | |
GOTO :EOF | |
EXIT | |
:Automatic_configuration_of | |
:: A file in which Search And Replace will be done. | |
set "FILENAME=%~1" | |
:: A string of characters/letters/words to search for | |
set "searchLine=%~2" | |
:: Once an occurance is found, searchLine will be replaced with Text inside replacementText: | |
set "replacementText=%~3" | |
:: A quick variable pointing to the current directory folder. | |
:: current directory folder is a folder where this test.cmd script is launched. | |
SET "dp0=%~dp0" | |
SET "currentDirectory=%dp0:~0,-1%" | |
:: %TEMP% is an Environment Variable that points to C:\Users\YourUsername\AppData\Local\Temp | |
SET "temporaryFile=%TEMP%\%FILENAME%" | |
Set "originalFile=%currentDirectory%\%FILENAME%" | |
IF EXIST "%temporaryFile%" DEL "%temporaryFile%" | |
:: A FOR Loop that Loops through every line in a File | |
FOR /F "usebackq delims=*" %%I IN ("%originalFile%") DO ( | |
REM If a line in a file matches the %searchLine%, write replacementText into %temporaryFile% | |
IF "%%I" == "%searchLine%" ( | |
echo %replacementText%>> "%temporaryFile%" | |
REM Else, just simply write Original file text lines into %temporaryFile% | |
) ELSE ( | |
echo %%I>> "%temporaryFile%" | |
) | |
) | |
:: Removes Original File and Writes | |
DEL "%originalFile%" | |
MOVE "%temporaryFile%" "%currentDirectory%\" | |
GOTO :EOF | |
EXIT | |
:Check_how_many_files_are_in_the_folder | |
SETLOCAL EnableDelayedExpansion | |
FOR /r %%i IN (*) DO set /a "count+=1" | |
ENDLOCAL && set "files=%count%" | |
GOTO :EOF | |
:: Determine if there is any kind of Minecraft server file in the folder. | |
::CALL :Check_the_size_of_a_single_file "*.jar" | |
::echo %filesize% %filename% | |
EXIT | |
:Check_the_size_of_a_single_file | |
set "file=%~1" | |
for %%I in (%file%) do set "filesize=%%~zI" && set "filename=%%I" | |
GOTO :EOF | |
EXIT | |
:remove_everything_in_the_directory | |
:: Removes all files except this .cmd file | |
FOR /R %%p IN ("*") DO ( | |
IF NOT "%%~nxp" == "%~nx0" DEL /q "%%p" | |
) | |
:: Removes all folders except "world" | |
FOR /D %%p IN ("*") DO ( | |
IF NOT "%%p" == "world" rmdir "%%p" /s /q | |
) | |
GOTO :EOF | |