mirror of
https://github.com/PaperMC/Paper.git
synced 2024-09-12 06:58:11 +02:00
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 lines
1.2 KiB
Bash
Executable File
43 lines
1.2 KiB
Bash
Executable File
#!/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
|
|
|
|
)
|