forged-eggs/java/forge/pterodactyl-egg-forge-minecraft.json

80 lines
8.9 KiB
JSON
Raw Permalink Normal View History

{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v2",
"update_url": "https://raw.githubusercontent.com/pelican-eggs/minecraft/refs/heads/main/java/forge/pterodactyl-egg-forge-minecraft.json"
},
"exported_at": "2025-12-31T13:05:02+00:00",
"name": "Forge Minecraft",
"author": "panel@example.com",
"description": "Minecraft Forge Server. Minecraft Forge is a modding API (Application Programming Interface), which\nmakes it easier to create mods, and also make sure mods are compatible with each other.",
"features": [
"eula",
"java_version",
"pid_limit"
],
"docker_images": {
"Java 21": "ghcr.io\/pelican-eggs\/yolks:java_21",
"Java 17": "ghcr.io\/pelican-eggs\/yolks:java_17",
"Java 16": "ghcr.io\/pelican-eggs\/yolks:java_16",
"Java 11": "ghcr.io\/pelican-eggs\/yolks:java_11",
"Java 8": "ghcr.io\/pelican-eggs\/yolks:java_8"
},
"file_denylist": [],
"startup": "java -Xms128M -XX:MaxRAMPercentage=95.0 -Dterminal.jline=false -Dterminal.ansi=true $( [[ ! -f unix_args.txt ]] && printf %s \"-jar {{SERVER_JARFILE}}\" || printf %s \"@unix_args.txt\" )",
"config": {
"files": "{\n \"server.properties\": {\n \"parser\": \"properties\",\n \"find\": {\n \"server-ip\": \"\",\n \"server-port\": \"{{server.build.default.port}}\",\n \"query.port\": \"{{server.build.default.port}}\"\n }\n }\n}",
"startup": "{\n \"done\": \")! For help, type \"\n}",
"logs": "[]",
"stop": "stop"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\n# Forge Installation Script\n#\n# Server Files: \/mnt\/server\napt update\napt install -y curl jq\n\nif [[ ! -d \/mnt\/server ]]; then\n mkdir \/mnt\/server\nfi\n\ncd \/mnt\/server\n\n# Remove spaces from the version number to avoid issues with curl\nFORGE_VERSION=\"$(echo \"$FORGE_VERSION\" | tr -d ' ')\"\nMC_VERSION=\"$(echo \"$MC_VERSION\" | tr -d ' ')\"\n\nif [[ ! -z ${FORGE_VERSION} ]]; then\n DOWNLOAD_LINK=https:\/\/maven.minecraftforge.net\/net\/minecraftforge\/forge\/${FORGE_VERSION}\/forge-${FORGE_VERSION}\n FORGE_JAR=forge-${FORGE_VERSION}*.jar\nelse\n JSON_DATA=$(curl -sSL https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/promotions_slim.json)\n\n if [[ \"${MC_VERSION}\" == \"latest\" ]] || [[ \"${MC_VERSION}\" == \"\" ]]; then\n echo -e \"getting latest version of forge.\"\n MC_VERSION=$(echo -e ${JSON_DATA} | jq -r '.promos | del(.\"latest-1.7.10\") | del(.\"1.7.10-latest-1.7.10\") | to_entries[] | .key | select(contains(\"latest\")) | split(\"-\")[0]' | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | tail -1)\n BUILD_TYPE=latest\n fi\n\n if [[ \"${BUILD_TYPE}\" != \"recommended\" ]] && [[ \"${BUILD_TYPE}\" != \"latest\" ]]; then\n BUILD_TYPE=recommended\n fi\n\n echo -e \"minecraft version: ${MC_VERSION}\"\n echo -e \"build type: ${BUILD_TYPE}\"\n\n ## some variables for getting versions and things\n FILE_SITE=https:\/\/maven.minecraftforge.net\/net\/minecraftforge\/forge\/\n VERSION_KEY=$(echo -e ${JSON_DATA} | jq -r --arg MC_VERSION \"${MC_VERSION}\" --arg BUILD_TYPE \"${BUILD_TYPE}\" '.promos | del(.\"latest-1.7.10\") | del(.\"1.7.10-latest-1.7.10\") | to_entries[] | .key | select(contains($MC_VERSION)) | select(contains($BUILD_TYPE))')\n\n ## locating the forge version\n if [[ \"${VERSION_KEY}\" == \"\" ]] && [[ \"${BUILD_TYPE}\" == \"recommended\" ]]; then\n echo -e \"dropping back to latest from recommended due to there not being a recommended version of forge for the mc version requested.\"\n VERSION_KEY=$(echo -e ${JSON_DATA} | jq -r --arg MC_VERSION \"${MC_VERSION}\" '.promos | del(.\"latest-1.7.10\") | del(.\"1.7.10-latest-1.7.10\") | to_entries[] | .key | select(contains($MC_VERSION)) | select(contains(\"latest\"))')\n fi\n\n ## Error if the mc version set wasn't valid.\n if [ \"${VERSION_KEY}\" == \"\" ] || [ \"${VERSION_KEY}\" == \"null\" ]; then\n echo -e \"The install failed because there is no valid version of forge for the version of minecraft selected.\"\n exit 1\n fi\n\n FORGE_VERSION=$(echo -e ${JSON_DATA} | jq -r --arg VERSION_KEY \"$VERSION_KEY\" '.promos | .[$VERSION_KEY]')\n\n if [[ \"${MC_VERSION}\" == \"1.7.10\" ]] || [[ \"${MC_VERSION}\" == \"1.8.9\" ]]; then\n DOWNLOAD_LINK=${FILE_SITE}${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}\/forge-${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}\n FORGE_JAR=forge-${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}.jar\n if [[ \"${MC_VERSION}\" == \"1.7.10\" ]]; then\n FORGE_JAR=forge-${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}-universal.jar\n fi\n else\n DOWNLOAD_LINK=${FILE_SITE}${MC_VERSION}-${FORGE_VERSION}\/forge-${MC_VERSION}-${FORGE_VERSION}\n FORGE_JAR=forge-${MC_VERSION}-${FORGE_VERSION}.jar\n fi\nfi\n\n#Adding .jar when not eding by SERVER_JARFILE\nif [[ ! $SERVER_JARFILE = *\\.jar ]]; then\n SERVER_JARFILE=\"$SERVER_JARFILE.jar\"\nfi\n\n#Downloading jars\necho -e \"Downloading forge version ${FORGE_VERSION}\"\necho -e \"Download link is ${DOWNLOAD_LINK}\"\n\nif [[ ! -z \"${DOWNLOAD_LINK}\" ]]; then\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_LINK}-installer.jar; then\n echo -e \"installer jar download link is valid.\"\n else\n echo -e \"link is invalid. Exiting now\"\n exit 2\n fi\nelse\n echo -e \"no download link provided. Exiting now\"\n exit 3\nfi\n\ncurl -s -o installer.jar -sS ${DOWNLOAD_LINK}-installer.jar\n\n#Checking if downloaded jars exist\nif [[ ! -f .\/installer.jar ]]; then\n echo \"!!! Error downloading forge version ${FORGE_VERSION} !!!\"\n exit\nfi\n\nfunction un
"container": "ghcr.io\/pelican-eggs\/installers:java_8",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Build Type",
"description": "The type of server jar to download from forge.\r\n\r\nValid types are \"recommended\" and \"latest\".",
"env_variable": "BUILD_TYPE",
"default_value": "recommended",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:recommended,latest",
"field_type": "text"
},
{
"name": "Forge Version",
"description": "The full exact version.\r\n\r\nEx. 1.15.2-31.2.4\r\n\r\nOverrides MC_VERSION and BUILD_TYPE. If it fails to download the server files it will fail to\ninstall.",
"env_variable": "FORGE_VERSION",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|regex:\/^[0-9\\.\\-]+$\/",
"field_type": "text"
},
{
"name": "Minecraft Version",
"description": "The version of minecraft you want to install for.\r\n\r\nLeaving latest will install the latest recommended version.",
"env_variable": "MC_VERSION",
"default_value": "latest",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:9",
"field_type": "text"
},
{
"name": "Server Jar File",
"description": "The name of the Jarfile to use when running Forge version below 1.17.",
"env_variable": "SERVER_JARFILE",
"default_value": "server.jar",
"user_viewable": true,
"user_editable": true,
"rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/",
"field_type": "text"
}
]
}