mirror of
https://github.com/parkervcp/eggs.git
synced 2024-11-30 11:12:55 +08:00
45 lines
7.4 KiB
JSON
45 lines
7.4 KiB
JSON
{
|
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
|
"meta": {
|
|
"version": "PTDL_v1"
|
|
},
|
|
"exported_at": "2019-07-23T19:59:03-04:00",
|
|
"name": "Forge Generic",
|
|
"author": "parker@parkervcp.com",
|
|
"description": "A generic egg for a forge modpack",
|
|
"image": "quay.io\/pterodactyl\/core:java",
|
|
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar server.jar",
|
|
"config": {
|
|
"files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"enable-query\": \"true\",\r\n \"server-port\": \"{{server.build.default.port}}\",\r\n \"query.port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}",
|
|
"startup": "{\r\n \"done\": \")! For help, type \",\r\n \"userInteraction\": [\r\n \"Go to eula.txt for more info.\"\r\n ]\r\n}",
|
|
"logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}",
|
|
"stop": "stop"
|
|
},
|
|
"scripts": {
|
|
"installation": {
|
|
"script": "#!\/bin\/ash\r\n# Forge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nfunction install_required {\r\n apk --no-cache --update add curl jq\r\n}\r\n\r\nfunction get_download {\r\n BASE_URL=${MODPACK_URL}\/files\r\n ID=`curl -sl ${BASE_URL} | grep -i -A9 \"${MODPACK_VERSION}\" | grep -m 1 -oE 'href=\"[^\\\"]+\"' | cut -d \"\/\" -f6 | grep -oE [0-9]+`\r\n echo \"ID: ${ID}\"\r\n\r\n SECONDURL=${BASE_URL}\/${ID}\r\n echo \"SECONDURL: ${SECONDURL}\"\r\n\r\n GOOD_ID=`curl -sl ${SECONDURL} | grep -i server | grep -i $MODPACK_VERSION | grep -Eo 'href=\"[^\\\"]+\"' | grep -o -E \"[0-9]+\" | tail -1`\r\n if [ -z \"$GOOD_ID\" ]; then\r\n GOOD_ID=$ID\r\n fi\r\n echo \"GOOD_ID: ${GOOD_ID}\"\r\n\r\n DL_URL=${MODPACK_URL}\/download\/${GOOD_ID}\/file\r\n echo \"Download_URL: ${DL_URL}\"\r\n\r\n cd \/mnt\/server\r\n\r\n echo \"Executing curl -L ${DL_URL} -o server.zip\"\r\n curl -L ${DL_URL} -o server.zip\r\n\r\n unzip -o server.zip\r\n\r\n rm -rf server.zip\r\n}\r\n\r\nfunction forge_install {\r\n echo -e \"\\nInstalling forge server using the installer jar file.\\n\"\r\n if [ -f \/mnt\/server\/*installer.jar ]; then\r\n java -jar *installer.jar --installServer\r\n else\r\n echo \"No forge installer found moving on.\"\r\n fi\r\n}\r\n\r\nfunction forge_cleanup {\r\n echo -e \"\\nDeleting installer jar file and cleaning up.\\n\"\r\n rm -rf *installer.jar\r\n if [ ! -f \/mnt\/server\/*universal.jar ]; then\r\n mv -v \/mnt\/server\/*\/* \/mnt\/server\/\r\n mv *universal.jar server.jar\r\n else\r\n mv *universal.jar server.jar\r\n fi\r\n}\r\n\r\nfunction json_download_prework {\r\n mkdir -p \/mnt\/server\/mods\r\n cd \/mnt\/server\/mods\r\n}\r\n\r\nfunction json_download_mods {\r\n MANIFEST=\/mnt\/server\/manifest.json\r\n for mod in $(jq -c '.files[]' ${MANIFEST} ); do\r\n projID=$(echo $mod | jq -r \".projectID\")\r\n fileID=$(echo $mod | jq -r \".fileID\")\r\n URL=\"https:\/\/minecraft.curseforge.com\/projects\/${projID}\/files\/${fileID}\/download\"\r\n echo \"mods file url: ${URL}\"\r\n # this is saving everything as \/mnt\/server\/mods\/download\r\n FINAL_URL=$(curl $URL -s -L -o \/dev\/null -w '%{url_effective}')\r\n echo \"Mod direct url: $FINAL_URL\"\r\n curl -JLO ${FINAL_URL}\r\n done\r\n}\r\n\r\nfunction json_download_forge {\r\n cd \/mnt\/server\r\n FORGE=$(jq -r '.minecraft.modLoaders[0].id' \/mnt\/server\/manifest.json | cut -d '-' -f2)\r\n MCVER=$(jq -r '.minecraft.version' \/mnt\/server\/manifest.json)\r\n\tif [ ${MCVER} == \"1.7.10\" ] || [ ${MCVER} == \"1.8.9\" ]; then\r\n\t\tFORGE=\"${FORGE}-${MCVER}\"\r\n\tfi\r\n FORGE_VERSION=\"${MCVER}-${FORGE}\"\r\n \r\n echo -e \"\\nDownloading Forge Version $FORGE_VERSION\\n\"\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O\r\n java -jar installer.jar --installServer\r\n mv *universal.jar server.jar\r\n rm installer.jar\r\n}\r\n\r\nfunction json_download_overrides {\r\n if [ -d \/mnt\/server\/overrides ]; then\r\n mv \/mnt\/server\/overrides\/mods\/* \/mnt\/server\/mods\/\r\n rmdir \/mnt\/server\/overrides\/mods\r\n mv \/mnt\/server\/overrides\/* \/mnt\/server\r\n rmdir \/mnt\/server\/overrides\r\n fi\r\n}\r\n\r\nfunction cfg_download_forge {\r\n dos2unix settings.cfg # In case the pack was distributed with Windows-style line endings in the cfg file\r\n MCVER=`grep 'MCVER' settings.cfg | sed 's\/;\/\/g' | cut -d '=' -f 2-`\r\n FORGE=`grep 'FORGEVER' settings.cfg | sed 's\/;\/\/g' | cut -d '=' -f 2-`\r\n\r\n\tif [ ${MCVER} == \"1.7.10\" ] || [ ${MCVER} == \"1.8.9\" ]; then\r\n\t\tFORGE=\"${FORGE}-${MCVER}\"\r\n\tfi\r\n \r\n FORGE_VERSION=\"${MCVER}-${FORGE}\"\r\n echo -e ${FORGE_VERSION}\r\n \r\n echo -e \"\\nDownloading Forge Version $FORGE_VERSION\\n\"\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O\r\n java -jar installer.jar --installServer\r\n mv *universal.jar server.jar\r\n rm installer.jar\r\n}\r\n\r\ninstall_required\r\nget_download\r\nif [ -f \/mnt\/server\/manifest.json ]; then\r\n json_download_prework\r\n json_download_mods\r\n json_download_overrides\r\n json_download_forge\r\nelif [ -f \/mnt\/server\/settings.cfg ]; then\r\n cfg_download_forge\r\nelse\r\n forge_install\r\n forge_cleanup\r\nfi",
|
|
"container": "openjdk:8-alpine",
|
|
"entrypoint": "ash"
|
|
}
|
|
},
|
|
"variables": [
|
|
{
|
|
"name": "modpack URL",
|
|
"description": "The modpack URL from the curseforge site.\r\n\r\n(Ex. https:\/\/minecraft.curseforge.com\/projects\/sevtech-ages)",
|
|
"env_variable": "MODPACK_URL",
|
|
"default_value": "",
|
|
"user_viewable": 1,
|
|
"user_editable": 1,
|
|
"rules": "required|string"
|
|
},
|
|
{
|
|
"name": "Modpack Version",
|
|
"description": "Version of the modpack to use.",
|
|
"env_variable": "MODPACK_VERSION",
|
|
"default_value": "",
|
|
"user_viewable": 1,
|
|
"user_editable": 1,
|
|
"rules": "required|string|max:20"
|
|
}
|
|
]
|
|
} |