Compare commits

...

2 Commits

Author SHA1 Message Date
Dominika a422e84b6f + TODO and contact info in README 2022-05-20 22:14:23 +02:00
Dominika 0fd513fdfb * bugfixes 2022-05-20 22:10:13 +02:00
2 changed files with 39 additions and 6 deletions

View File

@ -22,4 +22,17 @@ Takes curseforge minecraft modpacks and installs them without the closed-source,
7. Launch `./install.sh`
8. Profit..?
### TODO
- Fabric support
- GUI, if I have too much time
- better urlencoding if the current bodge breaks
### Contact the author (suggestions, DMCA, etc.)
I can be reached for any inquires via my e-mail: me (at) sdomi.pl. I also have a webpage - https://sdomi.pl/
gosh i love not agreeing to TOS

View File

@ -3,22 +3,35 @@ if [[ $1 == '' ]]; then
echo "usage: $0 <modpack.zip>"
exit 1
fi
token="$(dirname $(realpath $0))/token"
meow="$(realpath $1)"
if [[ ! -f "$token" ]]; then
echo "No tokenfile found. Try running ./getToken.sh..?"
exit 1
fi
mkdir packwrk; cd packwrk
7z -y x "$meow"
# fetch mods
if [[ ! -d mods ]]; then
mkdir mods; cd mods
cat ../manifest.json | jq -r '.files[] | "\(.projectID),\(.fileID)"' | while read line; do
mods="$(cat ../manifest.json | jq -r '.files[] | "\(.projectID),\(.fileID)"')"
echo "Downloading $(wc -l <<< "$mods") mods"
while read line; do
proj=${line/,*/}
file=${line/*,/}
url="$(curl -r -s -H "x-api-key: $(cat ../../token)" "https://api.curseforge.com/v1/mods/$proj/files/$file" | jq -r '.data.downloadUrl')"
curl -s -O -J -L "$url" &
done
url="$(curl -s -H "x-api-key: $(cat $token)" \
"https://api.curseforge.com/v1/mods/$proj/files/$file" \
| jq -r '.data.downloadUrl' \
| sed 's/\[/%5b/g;s/\]/%5d/g;'"s/'/%27/g;s/ /%20/g")" #' handling for bad URLs
curl -s -o $(basename "$url") -L "$url" || echo "Failed to download $url" &
printf "."
done <<< "$mods"
wait
echo "Done"
cd ..
fi
@ -27,8 +40,15 @@ modloader="$(cat manifest.json | jq -r '.minecraft | "\(.version),\(.modLoaders[
if [[ $modloader == *"forge"* ]]; then
mc=${modloader/,*/}
forge=${modloader/*,forge-/}
curl -L -O "https://maven.minecraftforge.net/net/minecraftforge/forge/$mc-$forge/forge-$mc-$forge-installer.jar"
java -jar "forge-$mc-$forge-installer.jar"
# handling for old forge binary names
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
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
else
echo "mmmm my attention span is too short for fabric rn"
fi