Comments (19)
Yep.
Might as well check for the existence of eula.txt too and if it doesn't exist create a file with one line
eula=true
Right before running the server.
Basically, what the Minecraft server hosting companies do.
=== Thus ===
Linux (start-forge.sh)
if [ ! -e "minecraft_server.1.16.5.jar" ]; then
wget -O minecraft_server.1.16.5.jar https://launcher.mojang.com/v1/objects/1b557e7b033b583cd9f66746b7a9ab1ec1673ced/server.jar
fi
if [ ! -e "eula.txt" ]; then
echo "eula=true" > eula.txt
fi
java -Xmx8G -Xms8G -jar forge.jar --nogui
Dos/PS (start-forge.bat)
IF NOT EXIST minecraft_server.1.16.5.jar powershell -Command "(New-Object Net.WebClient).DownloadFile('https://launcher.mojang.com/v1/objects/1b557e7b033b583cd9f66746b7a9ab1ec1673ced/server.jar', 'minecraft_server.1.16.5.jar')"
IF NOT EXIST eula.txt echo "eula=true" > eula.txt
java -Xmx8G -Xms8G -jar forge.jar --nogui
pause
from serverpackcreator.
This works as expected.
It's a marriage of dos and PowerShell, which is what you're clearly doing.
IF NOT EXIST minecraft_server.1.16.5.jar powershell -Command "(New-Object Net.WebClient).DownloadFile('https://launcher.mojang.com/v1/objects/1b557e7b033b583cd9f66746b7a9ab1ec1673ced/server.jar', 'minecraft_server.1.16.5.jar')"
Meaning, you can slide it right into the top of your start-forge.bat script. And the other thing I provided for the start-forge.sh.
from serverpackcreator.
So, update start-forge.sh script would look like this:
if [ ! -e "minecraft_server.1.16.5.jar" ]; then
wget -O minecraft_server.1.16.5.jar https://launcher.mojang.com/v1/objects/1b557e7b033b583cd9f66746b7a9ab1ec1673ced/server.jar
fi
java -Xmx8G -Xms8G -jar forge.jar --nogui
and the updated start-forge.bat like this:
IF NOT EXIST minecraft_server.1.16.5.jar powershell -Command "(New-Object Net.WebClient).DownloadFile('https://launcher.mojang.com/v1/objects/1b557e7b033b583cd9f66746b7a9ab1ec1673ced/server.jar', 'minecraft_server.1.16.5.jar')"
java -Xmx8G -Xms8G -jar forge.jar --nogui
pause
from serverpackcreator.
Heya Kreezxil,
thanks for putting in so much work on this issue! I'm definitely going to take a closer look at this. Currently busy with #80 🙂
I'll let you know when I start working on this.
Cheers,
Griefed
from serverpackcreator.
Right, that's all I can think of, implementing these on my side manually on each new server pack release.
from serverpackcreator.
Might also be a good idea to add a check for the forge/fabric jars, so if a user does not let ServerPackCreator install the server, the script can handle that, too.
from serverpackcreator.
from serverpackcreator.
So, for the bash-script for Forge I've now got this:
#!/usr/bin/env bash
# Start script generated by ServerPackCreator.
# This script checks for the Minecraft and Forge JAR-files, and if they are not found, they are downloaded.
# If everything is in order, the server is started.
MINECRAFT="1.16.5"
FORGE="36.2.4"
SERVER="1b557e7b033b583cd9f66746b7a9ab1ec1673ced"
ARGS="-Xmx8192M -Xms1024M -XX:+UseG1GC -Dsun.rmi.dgc.server.gcInterval=2147483646 -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=51 -XX:G1HeapRegionSize=32M -XX:InitiatingHeapOccupancyPercent=10 -XX:G1MixedGCLiveThresholdPercent=50"
if [[ ! -s "forge.jar" ]];then
echo "Forge Server JAR-file not found. Downloading installer...";
wget -O forge-installer.jar https://files.minecraftforge.net/maven/net/minecraftforge/forge/$MINECRAFT-$FORGE/forge-$MINECRAFT-$FORGE-installer.jar;
if [[ -s "forge-installer.jar" ]]; then
echo "Installer downloaded. Installing...";
java -jar forge-installer.jar --installServer;
mv forge-$MINECRAFT-$FORGE.jar forge.jar;
if [[ -s "forge.jar" ]];then
rm -f forge-installer.jar;
echo "Installation complete. forge-installer.jar deleted.";
fi
else
echo "forge-installer.jar not found. Maybe the Forges servers are having trouble.";
echo "Please try again in a couple of minutes.";
fi
else
echo "forge.jar present. Moving on..."
fi
if [[ ! -s "minecraft_server.$MINECRAFT.jar" ]];then
echo "Minecraft Server JAR-file not found. Downloading...";
wget -O minecraft_server.$MINECRAFT.jar https://launcher.mojang.com/v1/objects/$SERVER/server.jar;
else
echo "minecraft_server.$MINECRAFT.jar present. Moving on..."
fi
if [[ ! -s "eula.txt" ]];then
echo "eula.txt not found. Creating...";
echo "#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula)." > eula.txt;
echo "eula=true" >> eula.txt;
else
echo "eula.txt present. Moving on...";
fi
echo "Starting server...";
echo "Minecraft version: $MINECRAFT";
echo "Forge version: $FORGE";
echo "Java args: $ARGS";
java $ARGS -jar forge.jar --nogui
-s
because it also checks whether the file is greater than zero.
Now for the batch/ps script.
from serverpackcreator.
Batch script for Forge:
:: Start script generated by ServerPackCreator.
:: This script checks for the Minecraft and Forge JAR-files, and if they are not found, they are downloaded.
:: If everything is in order, the server is started.
@ECHO off
SET MINECRAFT="1.16.5"
SET FORGE="36.2.4"
SET SERVER="1b557e7b033b583cd9f66746b7a9ab1ec1673ced"
SET ARGS=-Xmx8192M -Xms1024M -XX:+UseG1GC -Dsun.rmi.dgc.server.gcInterval=2147483646 -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=51 -XX:G1HeapRegionSize=32M -XX:InitiatingHeapOccupancyPercent=10 -XX:G1MixedGCLiveThresholdPercent=50
IF NOT EXIST forge.jar (
ECHO "Forge Server JAR-file not found. Downloading installer..."
powershell -Command "(New-Object Net.WebClient).DownloadFile('https://files.minecraftforge.net/maven/net/minecraftforge/forge/%MINECRAFT%-%FORGE%/forge-%MINECRAFT%-%FORGE%-installer.jar', 'forge-installer.jar')"
IF EXIST forge-installer.jar (
ECHO "Installer downloaded. Installing..."
java -jar forge-installer.jar --installServer
MOVE forge-%MINECRAFT%-%FORGE%.jar forge.jar
IF EXIST forge.jar (
DEL forge-installer.jar
ECHO "Installation complete. forge-installer.jar deleted."
)
) ELSE (
ECHO "forge-installer.jar not found. Maybe the Forges servers are having trouble."
ECHO "Please try again in a couple of minutes."
)
) ELSE (
ECHO "forge.jar present. Moving on..."
)
IF NOT EXIST minecraft_server.%MINECRAFT%.jar (
ECHO "Minecraft Server JAR-file not found. Downloading..."
powershell -Command "(New-Object Net.WebClient).DownloadFile('https://launcher.mojang.com/v1/objects/%SERVER%/server.jar', 'minecraft_server.%MINECRAFT%.jar')"
) ELSE (
ECHO "minecraft_server.%MINECRAFT%.jar present. Moving on..."
)
IF NOT EXIST eula.txt (
ECHO "eula.txt not found. Creating..."
ECHO #By changing the setting below to TRUE you are indicating your agreement to our EULA ^(https://account.mojang.com/documents/minecraft_eula^).> eula.txt
ECHO eula=true>> eula.txt
) ELSE (
ECHO "eula.txt present. Moving on..."
)
ECHO "Starting server..."
ECHO "Minecraft version: %MINECRAFT%"
ECHO "Forge version: %FORGE%"
ECHO "Java args: %ARGS%"
java %ARGS% -jar forge.jar --nogui
PAUSE
from serverpackcreator.
Needless to say the Java args will be set by ServerPackCreator. That's just a placeholder, much like the download links, Minecraft and Forge versions.
from serverpackcreator.
Looking good, EPIC attribute has increased by 10
from serverpackcreator.
That's the Forge Windows and Linux script templates pretty much done.
Now we're just missing the Fabric Windows and Linux templates and finally the implementation of these new scripts in ServerPackCreator.
Also, question: Since we are combining the scripts, thus replacing the download scripts. it would make sense to remove the option "Generate start-scripts" and have ServerPackCreator always generate said scripts for every server pack.
Otherwise we run into the issue of people not knowing how to get their Minecraft server-jar when they downloaded a server pack zip-archive generated by ServerPackCreator.
Thoughts?
from serverpackcreator.
from serverpackcreator.
Fabric batch script:
:: Start script generated by ServerPackCreator.
:: This script checks for the Minecraft and Fabric JAR-files, and if they are not found, they are downloaded.
:: If everything is in order, the server is started.
@ECHO off
SET MINECRAFT="1.16.5"
SET FABRIC="0.12.1"
SET INSTALLER="0.8.0"
SET SERVER="1b557e7b033b583cd9f66746b7a9ab1ec1673ced"
SET ARGS=-Xmx8192M -Xms1024M -XX:+UseG1GC -Dsun.rmi.dgc.server.gcInterval=2147483646 -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=51 -XX:G1HeapRegionSize=32M -XX:InitiatingHeapOccupancyPercent=10 -XX:G1MixedGCLiveThresholdPercent=50
IF NOT EXIST fabric-server-launch.jar (
ECHO "Fabric Server JAR-file not found. Downloading installer..."
powershell -Command "(New-Object Net.WebClient).DownloadFile('https://maven.fabricmc.net/net/fabricmc/fabric-installer/%INSTALLER%/fabric-installer-%INSTALLER%.jar', 'fabric-installer.jar')"
IF EXIST fabric-installer.jar (
ECHO "Installer downloaded. Installing..."
java -jar fabric-installer.jar server -mcversion %MINECRAFT% -loader %FABRIC% -downloadMinecraft
IF EXIST fabric-server-launch.jar (
RMDIR /S /Q .fabric-installer
DEL fabric-installer.jar
ECHO "Installation complete. fabric-installer.jar and installation files deleted."
)
) ELSE (
ECHO "fabric-installer.jar not found. Maybe the Fabric servers are having trouble."
ECHO "Please try again in a couple of minutes."
)
) ELSE (
ECHO "fabric-server-launch.jar present. Moving on..."
)
IF NOT EXIST server.jar (
ECHO "Minecraft Server JAR-file not found. Downloading..."
powershell -Command "(New-Object Net.WebClient).DownloadFile('https://launcher.mojang.com/v1/objects/%SERVER%/server.jar', 'server.jar')"
) ELSE (
ECHO "server.jar present. Moving on..."
)
IF NOT EXIST eula.txt (
ECHO "eula.txt not found. Creating..."
ECHO #By changing the setting below to TRUE you are indicating your agreement to our EULA ^(https://account.mojang.com/documents/minecraft_eula^).> eula.txt
ECHO eula=true>> eula.txt
) ELSE (
ECHO "eula.txt present. Moving on..."
)
ECHO "Starting server..."
ECHO "Minecraft version: %MINECRAFT%"
ECHO "Fabric version: %FABRIC%"
ECHO "Java args: %ARGS%"
java %ARGS% -jar fabric-server-launch.jar --nogui
PAUSE
from serverpackcreator.
Fabric shell:
#!/usr/bin/env bash
# Start script generated by ServerPackCreator.
# This script checks for the Miencraft and Forge JAR-Files, and if they are not found, they are downloaded.
# If everything is in order, the server is started.
MINECRAFT="1.16.5"
FABRIC="0.12.1"
INSTALLER="0.8.0"
SERVER="1b557e7b033b583cd9f66746b7a9ab1ec1673ced"
ARGS="-Xmx8192M -Xms1024M -XX:+UseG1GC -Dsun.rmi.dgc.server.gcInterval=2147483646 -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMil>
if [[ ! -s "fabric-server-launch.jar" ]];then
echo "Fabric Server JAR-file not found. Downloading installer...";
wget -O fabric-installer.jar https://maven.fabricmc.net/net/fabricmc/fabric-installer/$INSTALLER/fabric-installer-$INSTALLER.jar;
if [[ -s "fabric-installer.jar" ]];then
echo "Installer downloaded. Installing...";
java -jar fabric-installer.jar server -mcversion $MINECRAFT -loader $FABRIC -downloadMinecraft;
if [[ -s "fabric-server-launch.jar" ]];then
rm -rf .fabric-installer;
rm -f fabric-installer.jar;
echo "Installation complete. fabric-installer.jar deleted.";
fi
else
echo "fabric-installer.jar not found. Maybe the Fabric server are having trouble.";
echo "Please try again in a couple of minutes.";
fi
else
echo "fabric-server-launch.jar present. Moving on...";
fi
if [[ ! -s "server.jar" ]];then
echo "Minecraft Server JAR-file not found. Downloading...";
wget -O server.jar https://launcher.mojang.com/v1/objects/$SERVER/server.jar;
else
echo "server.jar present. Moving on...";
fi
if [[ ! -s "eula.txt" ]];then
echo "eula.txt not found. Creating...";
echo "#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula)." > eula.txt;
echo "eula=true" >> eula.txt;
else
echo "eula.txt present. Moving on...";
fi
echo "Starting server...";
echo "Minecraft version: $MINECRAFT";
echo "Fabric version: $FABRIC";
echo "Java args: $ARGS";
java $ARGS -jar fabric-server-launch.jar --nogui
from serverpackcreator.
from serverpackcreator.
Will be available in the next alpha release (or from the test pipeline if you so desire). scripts will no longer be called start-<modloader>.bat|sh
but rather start.bat|sh
instead, now.
from serverpackcreator.
from serverpackcreator.
See alpha.7
from serverpackcreator.
Related Issues (20)
- [Improvement Ask]: Verification method HOT 3
- [Bug]: Watermedia bug HOT 2
- [Improvement Ask]: Add REI Plugin Compatabilities and YUNG's Menu Tweaks (Forge) to the fallback list HOT 4
- [Feature ask]: To have the mod Jump Over Fences added to the Client side only mod list
- [Bug]: colon between the libs? HOT 5
- [Improvement Ask]: Remove Farsight from server pack as client side.
- [Improvement Ask]: "True" Portable HOT 2
- [Bug]: cant click "open filebrowser" button HOT 1
- [Improvement Ask]: Client-side mod blacklists: HOT 2
- [Clientside-mod Addition Request]: fast-ip-ping HOT 2
- [Bug]: Program does not notify user of a Startup crash && Issue Starting HOT 11
- [Bug]: can not start Server (NeoForge 1.20.4) HOT 8
- [Clientside-mod Addition Request]: Fading NIght Vision and Presence Footsteps HOT 1
- [Bug]: Translation pt-BR HOT 1
- [Improvement Ask]: PLEASE do not remove previous server pack files when generating a new server pack under the same name. HOT 6
- [Bug]: not able to redirect java path HOT 7
- [Clientside-mod Addition Request]: ItemLocks HOT 4
- [Bug]: NeoForge 1.21 compat HOT 2
- [Clientside-mod Addition Request]: freecam
- [Clientside-mod Addition Request]: BetterClouds
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from serverpackcreator.