blob: 81a1f900fdc8f2582109ad12a709c32c91e69c93 (
plain)
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
|
#!/usr/bin/env bash
# As a LOT of minecraft players (and people anyways) are still using Java 8 while this program
# requires Java 17+. I wrote this quick & dirty script that automatically chooses the right
# Java version using archlinux-java status.
# It prioritizes the "default" version, but if it's lower than 17 it'll choose another one.
# Could also be used in other programs (eg. Recaf)
# Grab the current available Java versions
JAVAS=$(archlinux-java status)
JAVAS="${JAVAS/Available Java environments:/""}"
# Split into an array for easier access in the loop (thanks https://stackoverflow.com/a/24628676)
SAVEIFS=$IFS
IFS=$'\n'
JAVAS_ARR=($JAVAS)
IFS=$SAVEIFS
# Define vars
DEFAULT_JAVA_VERSION=''
DEFAULT_JAVA_VERSION_VALID=false
OTHER_VALID_JAVA_VERSIONS=()
# Checks for the version
# 0 if valid, 1 if invalid
is_java_version_valid() {
if [[ $1 =~ ^java-(([2-9][1-9]|[3-9][0-9]|[1-9][0-9]{2,}))-(.*)$ ]]; then
return 0
fi
return 1
}
arrLen="${#JAVAS_ARR[@]}"
# Loop over every version
for (( i=0; i<${arrLen}; i++ )); do
VER="${JAVAS_ARR[$i]/ /""}"
if [[ "$VER" == *"(default)"* ]]; then
DEFAULT_JAVA_VERSION="${VER/ (default)/""}"
if is_java_version_valid $VER; then DEFAULT_JAVA_VERSION_VALID=true
fi
else
if is_java_version_valid $VER; then OTHER_VALID_JAVA_VERSIONS+=($VER)
fi
fi
done
# Choose the right Java path from the data above
JAVA_PATH=''
if [ "$DEFAULT_JAVA_VERSION_VALID" = true ] ; then
JAVA_PATH="/usr/lib/jvm/${DEFAULT_JAVA_VERSION}"
elif [[ "${#OTHER_VALID_JAVA_VERSIONS[@]}" = 0 ]]; then
echo "No suitable Java version found. Exiting."
exit 1
else
# just doing it the lazy way choosing the 1st one
JAVA_PATH="/usr/lib/jvm/${OTHER_VALID_JAVA_VERSIONS[0]}"
fi
# Find the executable in the path
JAVA_EXECUTABLE=$(find $JAVA_PATH -type f -name "java")
# & finally launch the world downloader jar
$JAVA_EXECUTABLE -jar "/usr/share/java/minecraft-world-downloader/world-downloader.jar"
|