###
# REMEMBER:
#   Escape \ and : in your Java path on Windows with another \
#   Example:
#     From: C:\Program Files\Eclipse Adoptium\jdk-17.0.9.9-hotspot\bin\java.exe
#     To:   C\:\\Program Files\\Eclipse Adoptium\\jdk-17.0.9.9-hotspot\\bin\\java.exe
#   More on escape characters at https://en.wikipedia.org/wiki/Escape_character
#
# WAIT_FOR_USER_INPUT true/false allows you to enable/disable user confirmation upon
#   graceful script ending.
# RESTART true/false allows you to enable/disable automatically restarting the server
#   should it crash.
# JAVA points towards the Java executable/binary the server should use for running. Default is `java`, so it
#   points towards the system-default, if you have one. Set this to an absolute path, as per the example above
#   in the "REMEMBER"-part, if you want to force the server to use a different Java installation/version.
#   When setting a custom path, set SKIP_JAVA_CHECK to true.
# JAVA_ARGS are arguments to pass to the JVM / your server. Typical args are 'Xmx4G Xms4g'. Arguments in this
#   variable are also written to the 'user_jvm_args.txt' when using modloaders such as Forge.
#   More information at https://minecraft.fandom.com/wiki/Tutorials/Setting_up_a_server
#   I recommend you read this page at least once.
# ADDITIONAL_ARGS are, as the name implies, additional arguments to pass to the server. These arguments are not
#   written to any file, they are directly used in the command to run the server.
# SKIP_JAVA_CHECK true/false allows you to disable/enable the compatibility check
#   of your Minecraft version and the provided Java version, as well as the automatic
#   installation of a compatible Java version, should JAVA be set to 'java'.
# JDK_VENDOR is for the automatic installation of a JDK compatible with the Minecraft
#   version of your server pack. For an extensive list of available vendors, check out
#   https://github.com/Jabba-Team/index/blob/main/index.json
#   Note - For the installation to take place:
#   - SKIP_JAVA_CHECK must be set to 'false'
#   - JAVA be set to 'java'
#   - No 'java' command be available OR
#   - The available Java version behind 'java' be incompatible with your Minecraft version.
# JABBA_INSTALL_VERSION has no effect on the installation of Jabba when using PowerShell.
# MINECRAFT_VERSION is tightly coupled with the modloader version. Be careful when changing this, as the new
#   new version you set may not be compatible with the modloader and modloader version combination.
# MODLOADER and MODLOADER_VERSION same thing as with MINECRAFT_VERSION. Changing any of these three values may
#   have unforseen consequences. Well, I say unforseen, it mostly causes the server to straight up not start,
#   because of incompatibilities. Be very careful when changing these!
# SERVERSTARTERJAR_FORCE_FETCH true/false allows you to enable/disable the force-refreshing of the server.jar
#   when using Forge or NeoForge as your modloader. Force-refreshing means the file is replaced with a freshly
#   downloaded one every time you run the start scripts.
# SERVERSTARTERJAR_VERSION allows you to manually set the version of the server.jar downloaded by the scripts.
#   If you want to always use the latest version, set this to exactly "latest". For a specific version, see
#   https://github.com/neoforged/ServerStarterJar/releases and use the tags on the left as the version,
#   e.g. 0.1.24 or 0.1.25. When setting a specific version, make sure the release you pick actually has a server.jar
#   available for download. When the download fails with the "latest"-setting, then pick a specific one and/or
#   contact the devs of the ServerStarterJar about the latest release not having a server.jar to download.
# USE_SSJ true/false allows you to enable/disable the usage of the ServerStarterJar by the NeoForge project when you are
#   using Forge. Some Forge versions may be incompatible with said ServerStarterJar. As of right now, people
#   ran into trouble when using Forge and Minecraft 1.20.2 and 1.20.3.
# SSJ_FORGE_ARGS are additional arguments to use when using the Server Starter Jar from the NeoForge project in
#   combination with the Forge-modloader. Some java versions require explicit allowing of the security manager,
#   for example.
# CLEANUP is a list of comma-separated files which get deleted permanently upon calling the start-script with either
#   the --cleanup argument, or when the script detected a previous run with differing versions/modloaders.
#   Edit with care!
#   Edit at your own risk!
#   Editing might lead to unwanted data corruption or deletion!
#
# DO NOT EDIT THE FOLLOWING VARIABLES MANUALLY
#   - FABRIC_INSTALLER_VERSION
#   - QUILT_INSTALLER_VERSION
#   - LEGACYFABRIC_INSTALLER_VERSION
#
# Variables are not reloaded between automatic restarts. If you've made changes to your
#   variables and you want them to take effect, stop the server and script, then
#   re-run it.
###
MINECRAFT_VERSION=1.21.1
MODLOADER=NeoForge
MODLOADER_VERSION=21.1.217
LEGACYFABRIC_INSTALLER_VERSION=1.1.1
FABRIC_INSTALLER_VERSION=1.1.1
QUILT_INSTALLER_VERSION=0.12.1
RECOMMENDED_JAVA_VERSION=21
WAIT_FOR_USER_INPUT=true
JAVA="java"
JAVA_ARGS="-Xmx4G -Xms4G"
ADDITIONAL_ARGS="-Dlog4j2.formatMsgNoLookups=true"
SSJ_FORGE_ARGS="-Djava.security.manager=allow"
RESTART=false
SKIP_JAVA_CHECK=false
JDK_VENDOR=temurin
JABBA_INSTALL_URL_SH=https://github.com/Jabba-Team/jabba/raw/main/install.sh
JABBA_INSTALL_URL_PS=https://github.com/Jabba-Team/jabba/raw/main/install.ps1
JABBA_INSTALL_VERSION=0.13.0
SERVERSTARTERJAR_FORCE_FETCH=true
SERVERSTARTERJAR_VERSION=latest
USE_SSJ=true
CLEANUP="libraries,run.sh,run.bat,*installer.jar,*installer.jar.log,server.jar,.mixin.out,ldlib,local,fabric-server-launcher.jar,fabric-server-launch.jar,.fabric-installer,fabric-installer.jar,legacyfabric-installer.jar,.fabric versions"