feat: 准备 1.3.0 稳定版本
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
paper_version="${1:?必须提供 Paper 版本}"
|
||||
workspace="$(mktemp -d)"
|
||||
server_pid=""
|
||||
|
||||
cleanup() {
|
||||
if [[ -n "$server_pid" ]] && kill -0 "$server_pid" 2>/dev/null; then
|
||||
kill -TERM "$server_pid" 2>/dev/null || true
|
||||
wait "$server_pid" 2>/dev/null || true
|
||||
fi
|
||||
rm -rf "$workspace"
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
metadata_url="https://fill.papermc.io/v3/projects/paper/versions/${paper_version}/builds/latest"
|
||||
download_url="$(curl --fail --silent --show-error --location "$metadata_url" \
|
||||
| python3 -c 'import json,sys; print(json.load(sys.stdin)["downloads"]["server:default"]["url"])')"
|
||||
|
||||
curl --fail --silent --show-error --location "$download_url" --output "$workspace/paper.jar"
|
||||
mkdir -p "$workspace/plugins"
|
||||
cp build/libs/EssentialsC-*.jar "$workspace/plugins/EssentialsC.jar"
|
||||
printf 'eula=true\n' > "$workspace/eula.txt"
|
||||
printf 'online-mode=false\nserver-port=0\nenable-query=false\n' > "$workspace/server.properties"
|
||||
|
||||
(
|
||||
cd "$workspace"
|
||||
java -Xms512M -Xmx1G -jar paper.jar --nogui > server.log 2>&1
|
||||
) &
|
||||
server_pid=$!
|
||||
|
||||
for _ in $(seq 1 120); do
|
||||
if grep -Fq 'EssentialsC v1.4.0 已启用' "$workspace/server.log"; then
|
||||
if grep -Eq 'UnsupportedClassVersionError|Error occurred while enabling EssentialsC|Could not load.*EssentialsC' "$workspace/server.log"; then
|
||||
cat "$workspace/server.log"
|
||||
exit 1
|
||||
fi
|
||||
echo "Paper ${paper_version} 启动验证通过。"
|
||||
exit 0
|
||||
fi
|
||||
if ! kill -0 "$server_pid" 2>/dev/null; then
|
||||
cat "$workspace/server.log"
|
||||
exit 1
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
||||
cat "$workspace/server.log"
|
||||
echo "Paper ${paper_version} 启动验证超时。" >&2
|
||||
exit 1
|
||||
Reference in New Issue
Block a user