geforkt von Mirrors/Paper
fa8406dab4
This is useful for project developers switching back and forth between 1.12.2 and 1.13 so we can have our IDE automatically use the current version we are working on for included mc-dev files.
43 Zeilen
1.2 KiB
Bash
Ausführbare Datei
43 Zeilen
1.2 KiB
Bash
Ausführbare Datei
#!/usr/bin/env bash
|
|
|
|
(
|
|
set -e
|
|
PS1="$"
|
|
basedir="$(cd "$1" && pwd -P)"
|
|
workdir="$basedir/work"
|
|
minecraftversion=$(cat "$workdir/BuildData/info.json" | grep minecraftVersion | cut -d '"' -f 4)
|
|
windows="$([[ "$OSTYPE" == "cygwin" || "$OSTYPE" == "msys" ]] && echo "true" || echo "false")"
|
|
decompiledir="$workdir/Minecraft/$minecraftversion"
|
|
classdir="$decompiledir/classes"
|
|
echo "Extracting NMS classes..."
|
|
if [ ! -d "$classdir" ]; then
|
|
mkdir -p "$classdir"
|
|
cd "$classdir"
|
|
jar xf "$decompiledir/$minecraftversion-mapped.jar" net/minecraft/server
|
|
if [ "$?" != "0" ]; then
|
|
cd "$basedir"
|
|
echo "Failed to extract NMS classes."
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
echo "Decompiling classes..."
|
|
if [ ! -d "$decompiledir/net/minecraft/server" ]; then
|
|
cd "$basedir"
|
|
java -jar "$workdir/BuildData/bin/fernflower.jar" -dgs=1 -hdc=0 -asc=1 -udv=0 "$classdir" "$decompiledir"
|
|
if [ "$?" != "0" ]; then
|
|
echo "Failed to decompile classes."
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# set a symlink to current
|
|
currentlink="$workdir/Minecraft/current"
|
|
if ([ ! -e "$currentlink" ] || [ -L "$currentlink" ]) && [ "$windows" == "false" ]; then
|
|
echo "Pointing $currentlink to $minecraftversion"
|
|
rm -rf "$currentlink"
|
|
ln -sfn "$minecraftversion" "$currentlink"
|
|
fi
|
|
|
|
)
|