mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-21 07:09:21 +08:00
d089acb3bd
ForgeFlower is better than Spigots FernFlower at decompiling the source. However, in order to maintain the CraftBukkit patches, we must keep using spigots for the primary. However, for any file that we import on top of Spigots imported files there is nothing stopping us from using better decompiled files. So these changes will use ForgeFlower to maintain a better set of decomped files, so anything we add on top of Paper can start off in a better spot.
52 lines
1.3 KiB
Bash
Executable File
52 lines
1.3 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)
|
|
spigotdecompiledir="$workdir/Minecraft/$minecraftversion/spigot"
|
|
nms="$spigotdecompiledir/net/minecraft/server"
|
|
cb="src/main/java/net/minecraft/server"
|
|
gitcmd="git -c commit.gpgsign=false"
|
|
|
|
patch=$(which patch 2>/dev/null)
|
|
if [ "x$patch" == "x" ]; then
|
|
patch="$basedir/hctap.exe"
|
|
fi
|
|
|
|
echo "Applying CraftBukkit patches to NMS..."
|
|
cd "$workdir/CraftBukkit"
|
|
$gitcmd checkout -B patched HEAD >/dev/null 2>&1
|
|
rm -rf "$cb"
|
|
mkdir -p "$cb"
|
|
# create baseline NMS import so we can see diff of what CB changed
|
|
for file in $(ls nms-patches)
|
|
do
|
|
patchFile="nms-patches/$file"
|
|
file="$(echo "$file" | cut -d. -f1).java"
|
|
cp "$nms/$file" "$cb/$file"
|
|
done
|
|
$gitcmd add src
|
|
$gitcmd commit -m "Minecraft $ $(date)" --author="Auto <auto@mated.null>"
|
|
|
|
# apply patches
|
|
for file in $(ls nms-patches)
|
|
do
|
|
patchFile="nms-patches/$file"
|
|
file="$(echo "$file" | cut -d. -f1).java"
|
|
|
|
echo "Patching $file < $patchFile"
|
|
set +e
|
|
sed -i 's/\r//' "$nms/$file" > /dev/null
|
|
set -e
|
|
|
|
"$patch" -s -d src/main/java/ "net/minecraft/server/$file" < "$patchFile"
|
|
done
|
|
|
|
$gitcmd add src
|
|
$gitcmd commit -m "CraftBukkit $ $(date)" --author="Auto <auto@mated.null>"
|
|
$gitcmd checkout -f HEAD~2
|
|
)
|