2022-05-19 06:19:18 +02:00
|
|
|
#!/bin/bash
|
2022-05-19 06:28:57 +02:00
|
|
|
if [[ $1 == '' ]]; then
|
|
|
|
echo "usage: $0 <modpack.zip>"
|
|
|
|
exit 1
|
|
|
|
fi
|
2022-05-20 22:10:13 +02:00
|
|
|
token="$(dirname $(realpath $0))/token"
|
2022-05-19 06:19:18 +02:00
|
|
|
meow="$(realpath $1)"
|
|
|
|
|
2022-05-20 22:10:13 +02:00
|
|
|
if [[ ! -f "$token" ]]; then
|
|
|
|
echo "No tokenfile found. Try running ./getToken.sh..?"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2022-05-19 06:19:18 +02:00
|
|
|
mkdir packwrk; cd packwrk
|
|
|
|
7z -y x "$meow"
|
|
|
|
|
|
|
|
# fetch mods
|
|
|
|
if [[ ! -d mods ]]; then
|
|
|
|
mkdir mods; cd mods
|
2022-05-20 22:10:13 +02:00
|
|
|
mods="$(cat ../manifest.json | jq -r '.files[] | "\(.projectID),\(.fileID)"')"
|
|
|
|
echo "Downloading $(wc -l <<< "$mods") mods"
|
|
|
|
while read line; do
|
2022-05-19 06:19:18 +02:00
|
|
|
proj=${line/,*/}
|
|
|
|
file=${line/*,/}
|
|
|
|
|
2022-05-20 22:10:13 +02:00
|
|
|
url="$(curl -s -H "x-api-key: $(cat $token)" \
|
|
|
|
"https://api.curseforge.com/v1/mods/$proj/files/$file" \
|
2022-05-21 01:27:03 +02:00
|
|
|
| jq -r '.data.downloadUrl')"
|
|
|
|
url_fix="$(sed 's/\[/%5b/g;s/\]/%5d/g;'"s/'/%27/g;s/ /%20/g" <<< "$url")" #' handling for bad URLs
|
|
|
|
curl -s -o "$(basename "$url")" -L "$url_fix" || echo "Failed to download $url" &
|
2022-05-20 22:10:13 +02:00
|
|
|
printf "."
|
|
|
|
done <<< "$mods"
|
2022-05-19 06:19:18 +02:00
|
|
|
wait
|
2022-05-20 22:10:13 +02:00
|
|
|
echo "Done"
|
2022-05-19 06:19:18 +02:00
|
|
|
cd ..
|
|
|
|
fi
|
|
|
|
|
|
|
|
# fetch forge
|
|
|
|
modloader="$(cat manifest.json | jq -r '.minecraft | "\(.version),\(.modLoaders[] | select(.primary == true).id)"' | head -n1)"
|
|
|
|
if [[ $modloader == *"forge"* ]]; then
|
|
|
|
mc=${modloader/,*/}
|
|
|
|
forge=${modloader/*,forge-/}
|
2022-05-20 22:10:13 +02:00
|
|
|
|
|
|
|
# handling for old forge binary names
|
2022-05-21 20:46:40 +02:00
|
|
|
if [[ $(grep -Poh "(1\.10$|1\.9|1\.8|1\.7|1\.6|1\.5|1\.4|1\.3|1\.2|1\.1$)" <<< "$mc") == '' ]]; then
|
2022-05-20 22:10:13 +02:00
|
|
|
curl -L -O "https://maven.minecraftforge.net/net/minecraftforge/forge/$mc-$forge/forge-$mc-$forge-installer.jar"
|
|
|
|
java -jar "forge-$mc-$forge-installer.jar"
|
|
|
|
else
|
|
|
|
curl -L -O "https://maven.minecraftforge.net/net/minecraftforge/forge/$mc-$forge-$mc/forge-$mc-$forge-$mc-installer.jar"
|
|
|
|
java -jar "forge-$mc-$forge-$mc-installer.jar"
|
|
|
|
fi
|
2022-05-19 06:19:18 +02:00
|
|
|
else
|
|
|
|
echo "mmmm my attention span is too short for fabric rn"
|
|
|
|
fi
|