Created
March 8, 2020 23:38
-
-
Save D3strukt0r/18a18616bf4318863b670566cae8fe27 to your computer and use it in GitHub Desktop.
Download a Spigot version and run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Verify versions | |
echo "[ ] Check if Java is available..." | |
if java -version 2>&1 >/dev/null | grep -q "openjdk version" ; then | |
echo -e "\e[1A[ \e[32mOK\e[39m ]" | |
elif java -version 2>&1 >/dev/null | grep -q "java version"; then | |
echo -e "\e[1A[ \e[32mOK\e[39m ]" | |
else | |
echo -e "\e[1A[\e[31mFAIL\e[39m]" >&2 | |
exit 2 | |
fi | |
java -version | |
# Array for known Spigot versions having a different name | |
declare -A spigot_versions | |
spigot_versions=( | |
[latest]="1.14.3" | |
[1.10.2]="1.10.2-R0.1-SNAPSHOT-latest" | |
[1.10]="1.10-R0.1-SNAPSHOT-latest" | |
[1.9.4]="1.9.4-R0.1-SNAPSHOT-latest" | |
[1.9.2]="1.9.2-R0.1-SNAPSHOT-latest" | |
[1.9]="1.9-R0.1-SNAPSHOT-latest" | |
[1.8.8]="1.8.8-R0.1-SNAPSHOT-latest" | |
[1.8.7]="1.8.7-R0.1-SNAPSHOT-latest" | |
[1.8.6]="1.8.6-R0.1-SNAPSHOT-latest" | |
[1.8.5]="1.8.5-R0.1-SNAPSHOT-latest" | |
[1.8.4]="1.8.4-R0.1-SNAPSHOT-latest" | |
[1.8.3]="1.8.3-R0.1-SNAPSHOT-latest" | |
[1.8]="1.8-R0.1-SNAPSHOT-latest" | |
[1.7.10]="1.7.10-SNAPSHOT-b1657" | |
[1.7.9]="1.7.9-R0.2-SNAPSHOT" | |
[1.7.8]="1.7.8-R0.1-SNAPSHOT" | |
[1.7.5]="1.7.5-R0.1-SNAPSHOT-1387" | |
[1.7.2]="1.7.2-R0.4-SNAPSHOT-1339" | |
[1.6.4]="1.6.4-R2.1-SNAPSHOT" | |
[1.6.2]="1.6.2-R1.1-SNAPSHOT" | |
[1.5.2]="1.5.2-R1.1-SNAPSHOT" | |
[1.5.1]="1.5.1-R0.1-SNAPSHOT" | |
[1.4.7]="1.4.7-R1.1-SNAPSHOT" | |
[1.4.6]="1.4.6-R0.4-SNAPSHOT" | |
) | |
# Download specified Spigot version if file doesn't already exist | |
SPIGOT_LOCATION=spigot.jar | |
if [[ ! -e $SPIGOT_LOCATION ]]; then | |
# getbukkit.org uses different names with older versions. Get the proper one. | |
SPIGOT_BASE_URL=${SPIGOT_BASE_URL:=https://cdn.getbukkit.org/spigot/spigot-} | |
SPIGOT_VERSION=${SPIGOT_VERSION:=latest} | |
# Check if the default domain hasn't been changed | |
if [[ $SPIGOT_BASE_URL == *"getbukkit.org"* ]]; then | |
# Check whether the given version is in the known naming scheme | |
if [[ -v spigot_versions["$SPIGOT_VERSION"] ]]; then | |
SPIGOT_VERSION=${spigot_versions[$SPIGOT_VERSION]} | |
fi | |
fi | |
echo "[ ] Downloading ${SPIGOT_URL:=${SPIGOT_BASE_URL}${SPIGOT_VERSION}${SPIGOT_FILE_URL:=.jar}}" | |
if ! curl -o $SPIGOT_LOCATION -fL "$SPIGOT_URL"; then | |
echo -e "\e[1A\e[1A\e[1A\e[1A[\e[31mFAIL\e[39m]\n\n\n" >&2 | |
exit 2 | |
else | |
echo -e "\e[1A\e[1A\e[1A\e[1A[ \e[32mOK\e[39m ]\n\n\n" | |
fi | |
fi | |
# Link all words | |
for dir in /data/*/ ; do | |
if [ -f "$dir"/level.dat ]; then | |
echo "[ ] Linking $dir from the volume" | |
ln -s "$dir" . | |
if [ $? -eq 0 ]; then | |
echo -e "\e[1A[ \e[32mOK\e[39m ]" | |
else | |
echo -e "\e[1A[\e[31mFAIL\e[39m]" | |
fi | |
fi | |
done | |
# Set variables for java runtime | |
echo "[ ] Setting initial memory to ${JAVA_BASE_MEMORY:=${JAVA_MEMORY:=512M}} and max to ${JAVA_MAX_MEMORY:=${JAVA_MEMORY}}" | |
JAVA_OPTIONS="-Xms${JAVA_BASE_MEMORY} -Xmx${JAVA_MAX_MEMORY} ${JAVA_OPTIONS}" | |
echo -e "\e[1A[ \e[32mOK\e[39m ]" | |
java "$JAVA_OPTIONS" -jar spigot.jar "$@" | |
# Worlds that have been created should be moved to /data (TODO: Symlinks are not recognized "if [ ! -L "$dir" ]") | |
echo "" | |
for dir in */ ; do | |
if [[ -d $dir && ! -L $dir && -f $dir/level.dat ]]; then | |
echo "[ ] Move $dir to the volume" | |
mv "$dir" /data/ | |
if [[ $? -eq 0 ]]; then | |
echo -e "\e[1A[ \e[32mOK\e[39m ]" | |
else | |
echo -e "\e[1A\e[1A[\e[31mFAIL\e[39m]\n" | |
fi | |
fi | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment