Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions java/folia/egg-folia.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"version": "PLCN_v3",
"update_url": "https://raw.githubusercontent.com/pelican-eggs/minecraft/refs/heads/main/java/folia/egg-folia.json"
},
"exported_at": "2026-04-07T15:39:30+00:00",
"exported_at": "2026-04-14T20:57:44+00:00",
"name": "Folia",
"author": "[email protected]",
"uuid": "09414ef6-cd47-496e-ba13-920a8215144c",
Expand Down Expand Up @@ -34,7 +34,7 @@
},
"scripts": {
"installation": {
"script": "#!/bin/ash\r\n# shellcheck shell=dash\r\n# Folia Installation Script\r\n#\r\n# Server Files: /mnt/server\r\n: \"${SERVER_DIR:=/mnt/server}\"\r\n: \"${SERVER_JARFILE:=server.jar}\"\r\n: \"${PROJECT:=}\"\r\n\r\nif [ -z ${USER_AGENT} ]; then\r\n echo \"The \\\"USER_AGENT\\\" variable needs to be set\"\r\n exit 1\r\nfi\r\n\r\nif [ -z ${PROJECT} ]; then\r\n echo \"The \\\"PROJECT\\\" variable needs to be set\"\r\n exit 1\r\nfi\r\n\r\nif [ ! -d \"${SERVER_DIR}\" ]; then\r\n mkdir -p /mnt/server || echo \"Cannot create server dir\"\r\nfi\r\n\r\ncd /mnt/server || echo \"can't change to /mnt/server\"\r\n\r\nif [ -n \"${DL_PATH}\" ]; then\r\n\techo \"Using supplied download url: ${DL_PATH}\"\r\n\tDOWNLOAD_URL=$(eval echo \"$(echo \"${DL_PATH}\" | sed 's/{{/${/g' 's/}}/}/g')\")\r\nelse\r\n\tVER_EXISTS=$(curl -A \"${USER_AGENT}\" -s https://api.papermc.io/v2/projects/${PROJECT} | jq -r --arg VERSION $MINECRAFT_VERSION '.versions[] | contains($VERSION)' | grep -m1 true)\r\n\tLATEST_VERSION=$(curl -A \"${USER_AGENT}\" -s https://api.papermc.io/v2/projects/${PROJECT} | jq -r '.versions' | jq -r '.[-1]')\r\n\r\n\tif [ \"${VER_EXISTS}\" = \"true\" ]; then\r\n\t\techo \"Version is valid. Using version ${MINECRAFT_VERSION}\"\r\n\telse\r\n\t\techo \"Specified version not found. Defaulting to the latest ${PROJECT} version\"\r\n\t\tMINECRAFT_VERSION=${LATEST_VERSION}\r\n\tfi\r\n\r\n\tBUILD_EXISTS=$(curl -A \"${USER_AGENT}\" -s https://api.papermc.io/v2/projects/${PROJECT}/versions/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds[] | tostring | contains($BUILD)' | grep -m1 true)\r\n\tLATEST_BUILD=$(curl -A \"${USER_AGENT}\" -s https://api.papermc.io/v2/projects/${PROJECT}/versions/${MINECRAFT_VERSION} | jq -r '.builds' | jq -r '.[-1]')\r\n\r\n\tif [ \"${BUILD_EXISTS}\" = \"true\" ]; then\r\n\t\techo \"Build is valid for version ${MINECRAFT_VERSION}. Using build ${BUILD_NUMBER}\"\r\n\telse\r\n\t\techo \"Using the latest ${PROJECT} build for version ${MINECRAFT_VERSION}\"\r\n\t\tBUILD_NUMBER=${LATEST_BUILD}\r\n\tfi\r\n\r\n\tJAR_NAME=${PROJECT}-${MINECRAFT_VERSION}-${BUILD_NUMBER}.jar\r\n\r\n\techo \"Version being downloaded\"\r\n\techo \"MC Version: ${MINECRAFT_VERSION}\"\r\n\techo \"Build: ${BUILD_NUMBER}\"\r\n\techo \"JAR Name of Build: ${JAR_NAME}\"\r\n\tDOWNLOAD_URL=https://api.papermc.io/v2/projects/${PROJECT}/versions/${MINECRAFT_VERSION}/builds/${BUILD_NUMBER}/downloads/${JAR_NAME}\r\nfi\r\n\r\necho \"Running curl -A ${USER_AGENT} -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\"\r\n\r\nif [ -f \"${SERVER_JARFILE}\" ]; then\r\n\tmv \"${SERVER_JARFILE}\" \"${SERVER_JARFILE}.old\"\r\nfi\r\n\r\ncurl -A \"${USER_AGENT}\" -o \"${SERVER_JARFILE}\" \"${DOWNLOAD_URL}\"\r\n\r\nif [ ! -f server.properties ]; then\r\n echo \"Downloading MC server.properties\"\r\n curl -A \"${USER_AGENT}\" -o server.properties https://raw.githubusercontent.com/parkervcp/eggs/master/minecraft/java/server.properties\r\nfi",
"script": "#!/bin/ash\r\n# shellcheck disable=SC2164 # don't error on `cd` command\r\n# shellcheck disable=SC2187 # don't error for `ash` vs `dash`\r\n# shellcheck disable=SC2223 # don't error for default variable values\r\n# shellcheck disable=SC3014 # don't error for `==` \r\n# shellcheck disable=SC3036 # don't error for echo `-e` flag \r\n# Paper Fill API Installation Script\r\n#\r\n# Server Files: /mnt/server\r\n\r\n: ${PROJECT:='paper'}\r\n: ${API_ENDPOINT:='fill.papermc.io'}\r\n: ${SERVER_JARFILE:='server.jar'}\r\n\r\nif [ -z \"${USER_AGENT}\" ]; then\r\n\techo -e \"A user agent must be set per the paper api docs\"\r\n\techo -e \"See https://docs.papermc.io/misc/downloads-service/\"\r\n\texit 1\r\nfi\r\n\r\nif [ ! -d /mnt/server ]; then\r\n\tmkdir -p /mnt/server\r\nfi\r\n\r\ncd /mnt/server\r\n\r\nif [ -n \"${DL_PATH}\" ]; then\r\n\techo -e \"Using supplied download url: ${DL_PATH}\"\r\n\tDOWNLOAD_URL=$(eval echo \"$(echo ${DL_PATH} | sed -e 's/{{/${/g' -e 's/}}/}/g')\")\r\nelse\r\n\tif [ \"${MINECRAFT_VERSION}\" == \"latest\" ] || [ -z \"${MINECRAFT_VERSION}\" ]; then\r\n\t\techo -e \"getting latest minecraft version\"\r\n\t\tMINECRAFT_VERSION=$(curl -H \"User-Agent: ${USER_AGENT}\" -s https://${API_ENDPOINT}/v3/projects/${PROJECT} | jq -r '.versions | to_entries | .[0].value[0]')\r\n\tfi\r\n\r\n\tVER_EXISTS=$(curl -s https://${API_ENDPOINT}/v3/projects/${PROJECT} | jq -r --arg VERSION $MINECRAFT_VERSION '.versions | any(.[]; index($VERSION))' | grep -m1 true)\r\n\r\n\tif [ \"${VER_EXISTS}\" == \"true\" ]; then\r\n\t\techo -e \"Version is valid. Using version ${MINECRAFT_VERSION}\"\r\n\telse\r\n\t\techo -e \"Specified version not found. Defaulting to the latest ${PROJECT} version\"\r\n\t\tMINECRAFT_VERSION=${LATEST_VERSION}\r\n\tfi\r\n\r\n\tif [ \"${BUILD_NUMBER}\" == \"latest\" ] || [ -z \"${BUILD_NUMBER}\" ]; then\r\n\t\techo -e \"getting latest ${PROJECT} \"\r\n\t\tBUILD_NUMBER=$(curl -s https://${API_ENDPOINT}/v3/projects/${PROJECT}/versions/${MINECRAFT_VERSION} | jq -r '.builds' | jq -r '.[0]')\r\n\tfi\r\n\r\n\tBUILD_EXISTS=$(curl -s https://${API_ENDPOINT}/v3/projects/${PROJECT}/versions/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds[] | tostring | contains($BUILD)' | grep -m1 true)\r\n\r\n\tif [ \"${BUILD_EXISTS}\" == \"true\" ]; then\r\n\t\techo -e \"Build is valid for version ${MINECRAFT_VERSION}. Using build ${BUILD_NUMBER}\"\r\n\telse\r\n\t\techo -e \"Using the latest ${PROJECT} build for version ${MINECRAFT_VERSION}\"\r\n\t\tBUILD_NUMBER=${LATEST_BUILD}\r\n\tfi\r\n\r\n\techo \"Version being downloaded\"\r\n\techo -e \"Project: ${PROJECT}\"\r\n\techo -e \"MC Version: ${MINECRAFT_VERSION}\"\r\n\techo -e \"Build: ${BUILD_NUMBER}\"\r\n\tDOWNLOAD_URL=$(curl -s https://${API_ENDPOINT}/v3/projects/${PROJECT}/versions/${MINECRAFT_VERSION}/builds/${BUILD_NUMBER} | jq -r '.downloads.\"server:default\".url')\r\nfi\r\n\r\necho -e \"Running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\"\r\n\r\nif [ -f \"${SERVER_JARFILE}\" ]; then\r\n\tmv \"${SERVER_JARFILE}\" \"${SERVER_JARFILE}.old\"\r\nfi\r\n\r\ncurl -o \"${SERVER_JARFILE}\" \"${DOWNLOAD_URL}\"\r\n\r\nif [ ! -f server.properties ]; then\r\n echo -e \"Downloading MC server.properties\"\r\n curl -o server.properties https://raw.githubusercontent.com/pelican-eggs/minecraft/refs/heads/main/java/server.properties\r\nfi",
"container": "ghcr.io/pelican-eggs/installers:alpine",
"entrypoint": "ash"
}
Expand Down Expand Up @@ -107,7 +107,7 @@
{
"sort": 5,
"name": "User Agent",
"description": "Required to use the paper. Set to something for yourself",
"description": "Required to use the paper fill API.\nSee https://docs.papermc.io/misc/downloads-service/",
"env_variable": "USER_AGENT",
"default_value": "",
"user_viewable": false,
Expand Down
83 changes: 65 additions & 18 deletions java/paper/egg-paper.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ _comment: 'DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PANEL'
meta:
version: PLCN_v3
update_url: 'https://raw.githubusercontent.com/pelican-eggs/minecraft/refs/heads/main/java/paper/egg-paper.yaml'
exported_at: '2025-12-11T12:51:20+00:00'
exported_at: '2026-04-14T20:58:42+00:00'
name: Paper
author: [email protected]
uuid: 5da37ef6-58da-4169-90a6-e683e1721247
Expand Down Expand Up @@ -40,17 +40,41 @@ scripts:
installation:
script: |-
#!/bin/ash
# Paper Installation Script
# shellcheck disable=SC2164 # don't error on `cd` command
# shellcheck disable=SC2187 # don't error for `ash` vs `dash`
# shellcheck disable=SC2223 # don't error for default variable values
# shellcheck disable=SC3014 # don't error for `==`
# shellcheck disable=SC3036 # don't error for echo `-e` flag
# Paper Fill API Installation Script
#
# Server Files: /mnt/server
PROJECT=paper

: ${PROJECT:='paper'}
: ${API_ENDPOINT:='fill.papermc.io'}
: ${SERVER_JARFILE:='server.jar'}

if [ -z "${USER_AGENT}" ]; then
echo -e "A user agent must be set per the paper api docs"
echo -e "See https://docs.papermc.io/misc/downloads-service/"
exit 1
fi

if [ ! -d /mnt/server ]; then
mkdir -p /mnt/server
fi

cd /mnt/server

if [ -n "${DL_PATH}" ]; then
echo -e "Using supplied download url: ${DL_PATH}"
DOWNLOAD_URL=`eval echo $(echo ${DL_PATH} | sed -e 's/{{/${/g' -e 's/}}/}/g')`
DOWNLOAD_URL=$(eval echo "$(echo ${DL_PATH} | sed -e 's/{{/${/g' -e 's/}}/}/g')")
else
VER_EXISTS=`curl -s https://fill.papermc.io/v3/projects/${PROJECT} | jq -r --arg VERSION $MINECRAFT_VERSION '.versions | any(.[]; index($VERSION))' | grep -m1 true`
LATEST_VERSION=`curl -s https://fill.papermc.io/v3/projects/${PROJECT} | jq -r '.versions | to_entries | .[0].value[0]'`
if [ "${MINECRAFT_VERSION}" == "latest" ] || [ -z "${MINECRAFT_VERSION}" ]; then
echo -e "getting latest minecraft version"
MINECRAFT_VERSION=$(curl -H "User-Agent: ${USER_AGENT}" -s https://${API_ENDPOINT}/v3/projects/${PROJECT} | jq -r '.versions | to_entries | .[0].value[0]')
fi

VER_EXISTS=$(curl -s https://${API_ENDPOINT}/v3/projects/${PROJECT} | jq -r --arg VERSION $MINECRAFT_VERSION '.versions | any(.[]; index($VERSION))' | grep -m1 true)

if [ "${VER_EXISTS}" == "true" ]; then
echo -e "Version is valid. Using version ${MINECRAFT_VERSION}"
Expand All @@ -59,8 +83,12 @@ scripts:
MINECRAFT_VERSION=${LATEST_VERSION}
fi

BUILD_EXISTS=`curl -s https://fill.papermc.io/v3/projects/${PROJECT}/versions/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds[] | tostring | contains($BUILD)' | grep -m1 true`
LATEST_BUILD=`curl -s https://fill.papermc.io/v3/projects/${PROJECT}/versions/${MINECRAFT_VERSION} | jq -r '.builds' | jq -r '.[0]'`
if [ "${BUILD_NUMBER}" == "latest" ] || [ -z "${BUILD_NUMBER}" ]; then
echo -e "getting latest ${PROJECT} "
BUILD_NUMBER=$(curl -s https://${API_ENDPOINT}/v3/projects/${PROJECT}/versions/${MINECRAFT_VERSION} | jq -r '.builds' | jq -r '.[0]')
fi

BUILD_EXISTS=$(curl -s https://${API_ENDPOINT}/v3/projects/${PROJECT}/versions/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds[] | tostring | contains($BUILD)' | grep -m1 true)

if [ "${BUILD_EXISTS}" == "true" ]; then
echo -e "Build is valid for version ${MINECRAFT_VERSION}. Using build ${BUILD_NUMBER}"
Expand All @@ -73,18 +101,16 @@ scripts:
echo -e "Project: ${PROJECT}"
echo -e "MC Version: ${MINECRAFT_VERSION}"
echo -e "Build: ${BUILD_NUMBER}"
DOWNLOAD_URL=`curl -s https://fill.papermc.io/v3/projects/${PROJECT}/versions/${MINECRAFT_VERSION}/builds/${BUILD_NUMBER} | jq -r '.downloads."server:default".url'`
DOWNLOAD_URL=$(curl -s https://${API_ENDPOINT}/v3/projects/${PROJECT}/versions/${MINECRAFT_VERSION}/builds/${BUILD_NUMBER} | jq -r '.downloads."server:default".url')
fi

cd /mnt/server

echo -e "Running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}"

if [ -f ${SERVER_JARFILE} ]; then
mv ${SERVER_JARFILE} ${SERVER_JARFILE}.old
if [ -f "${SERVER_JARFILE}" ]; then
mv "${SERVER_JARFILE}" "${SERVER_JARFILE}.old"
fi

curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}
curl -o "${SERVER_JARFILE}" "${DOWNLOAD_URL}"

if [ ! -f server.properties ]; then
echo -e "Downloading MC server.properties"
Expand All @@ -94,6 +120,7 @@ scripts:
entrypoint: ash
variables:
-
sort: 4
name: 'Build Number'
description: "The build number for the paper release.\r\n\r\nLeave at latest to always get the latest version. Invalid versions will default to latest."
env_variable: BUILD_NUMBER
Expand All @@ -104,8 +131,8 @@ variables:
- required
- string
- 'max:20'
sort: 4
-
sort: 3
name: 'Download Path'
description: |-
A URL to use to download a server.jar rather than the ones in the install script. This is not user
Expand All @@ -117,8 +144,8 @@ variables:
rules:
- nullable
- string
sort: 3
-
sort: 1
name: 'Minecraft Version'
description: "The version of minecraft to download. \r\n\r\nLeave at latest to always get the latest version. Invalid versions will default to latest."
env_variable: MINECRAFT_VERSION
Expand All @@ -129,8 +156,17 @@ variables:
- nullable
- string
- 'max:20'
sort: 1
-
sort: 6
name: Project
description: ''
env_variable: PROJECT
default_value: paper
user_viewable: false
user_editable: false
rules: { }
-
sort: 2
name: 'Server Jar File'
description: 'The name of the server jarfile to run the server with.'
env_variable: SERVER_JARFILE
Expand All @@ -140,4 +176,15 @@ variables:
rules:
- required
- 'regex:/^([\w\d._-]+)(\.jar)$/'
sort: 2
-
sort: 5
name: 'User Agent'
description: |-
Required to use the paper fill API.
See https://docs.papermc.io/misc/downloads-service/
env_variable: USER_AGENT
default_value: ''
user_viewable: false
user_editable: false
rules:
- required
Loading