mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-15 07:01:36 +08:00
65e3df5cf4
This section seems to be a relatively common source of errors. We may as well be as verbose as the command output, at least for this section.
53 lines
1.3 KiB
Bash
Executable File
53 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)
|
|
decompiledir="$workdir/$minecraftversion"
|
|
nms="$decompiledir/net/minecraft/server"
|
|
cb="src/main/java/net/minecraft/server"
|
|
gpgsign="$(git config commit.gpgsign || echo "false")"
|
|
|
|
|
|
patch=$(which patch 2>/dev/null)
|
|
if [ "x$patch" == "x" ]; then
|
|
patch="$basedir/hctap.exe"
|
|
fi
|
|
|
|
function enableCommitSigningIfNeeded {
|
|
if [[ "$gpgsign" == "true" ]]; then
|
|
git config commit.gpgsign true
|
|
fi
|
|
}
|
|
|
|
echo "Applying CraftBukkit patches to NMS..."
|
|
cd "$workdir/CraftBukkit"
|
|
git checkout -B patched HEAD >/dev/null 2>&1
|
|
rm -rf "$cb"
|
|
mkdir -p "$cb"
|
|
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
|
|
|
|
cp "$nms/$file" "$cb/$file"
|
|
"$patch" -s -d src/main/java/ "net/minecraft/server/$file" < "$patchFile"
|
|
done
|
|
|
|
git add src
|
|
# We don't need to sign an automated commit
|
|
# All it does is make you input your key passphrase mid-patch
|
|
git config commit.gpgsign false
|
|
git commit -m "CraftBukkit $ $(date)" --author="Auto <auto@mated.null>"
|
|
enableCommitSigningIfNeeded
|
|
git checkout -f HEAD^
|
|
)
|