FTB-modpacks.ch 服务器 v1.0.2

飒爽师叔 · 2026-06-30 08:35

更新日志

[AI翻译] 名称、描述、JSON描述、变量

版本内容

{
    "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PANEL",
    "meta": {
        "update_url": "https://eggs.pterodactyl.top/eggs/157/download/egg-ftb-modpacksch-server.json",
        "version": "PTDL_v2"
    },
    "exported_at": "2024-06-01T19:39:44+00:00",
    "name": "FTB-modpacks.ch Server",
    "author": "runemaster580@gmail.com",
    "description": "Since the release of the FTB APP, FTB modpacks are now distributed through modpacks.ch. This egg was developed for support for modpacks that are distributed through this.",
    "features": [
        "eula",
        "java_version",
        "pid_limit"
    ],
    "docker_images": {
        "Java 11": "registry.cn-shanghai.aliyuncs.com/pterodactyl-images/yolks:java_11",
        "Java 16": "registry.cn-shanghai.aliyuncs.com/pterodactyl-images/yolks:java_16",
        "Java 17": "registry.cn-shanghai.aliyuncs.com/pterodactyl-images/yolks:java_17",
        "Java 18": "registry.cn-shanghai.aliyuncs.com/pterodactyl-images/yolks:java_18",
        "Java 8": "registry.cn-shanghai.aliyuncs.com/pterodactyl-images/yolks:java_8"
    },
    "file_denylist": [],
    "startup": "java -javaagent:log4jfix/Log4jPatcher-1.0.0.jar -Xms128M -XX:MaxRAMPercentage=95.0 -Dterminal.jline=false -Dterminal.ansi=true $( [[  ! -f unix_args.txt ]] && printf %s \"-jar start-server.jar\" || printf %s \"@unix_args.txt\" )",
    "config": {
        "files": "{\r\n    \"server.properties\": {\r\n        \"parser\": \"properties\",\r\n        \"find\": {\r\n            \"server-ip\": \"0.0.0.0\",\r\n            \"server-port\": \"{{server.build.default.port}}\",\r\n            \"query.port\": \"{{server.build.default.port}}\"\r\n        }\r\n    }\r\n}",
        "logs": "{}",
        "startup": "{\r\n    \"done\": \")! For help, type \"\r\n}",
        "stop": "stop"
    },
    "scripts": {
        "installation": {
            "container": "registry.cn-shanghai.aliyuncs.com/pterodactyl-images/installers:java_8",
            "entrypoint": "bash",
            "script": "#!/bin/bash\r\n# FTB Pack Installation Script\r\n#\r\n# Server Files: /mnt/server\r\nif [ ! -d /mnt/server ]; then\r\n    mkdir -p /mnt/server\r\nfi\r\ncd /mnt/server\r\n\r\n\r\n# Download needed software.\r\nfunction install_required {\r\n    apt update\r\n    apt install -y curl jq\r\n}\r\n\r\nfunction get_modpack_id {\r\n    urlencode() {\r\n        local string=\"${1// /%20}\"\r\n        echo \"$string\"\r\n    }\r\n    \r\n    # if no modpack id is set and modpack search term is set.\r\n    if [ -z ${FTB_MODPACK_ID} ] && [ ! -z \"${FTB_SEARCH_TERM}\" ]; then\r\n        encoded_search_term=$(urlencode \"$FTB_SEARCH_TERM\")\r\n        JSON_DATA=$(curl -sSL https://api.modpacks.ch/public/modpack/search/8?term=\"${encoded_search_term}\")\r\n    \r\n        # grabs the first modpack in array.\r\n        FTB_MODPACK_ID=$(echo -e ${JSON_DATA} | jq -r \".packs[0]\")\r\n    fi\r\n    \r\n    if [ -z ${FTB_MODPACK_VERSION_ID} ] && [ ! -z ${FTB_VERSION_STRING} ]; then\r\n        # grabs the correct version id matching the string.\r\n        FTB_MODPACK_VERSION_ID=$(curl -sSL https://api.modpacks.ch/public/modpack/${FTB_MODPACK_ID} | jq -r --arg VSTRING ${FTB_VERSION_STRING} '.versions[] | select(.name == $VSTRING) | .id')\r\n    fi\r\n}\r\n\r\nfunction run_installer {\r\n    # get architecture for installer\r\n    INSTALLER_TYPE=$([ \"$(uname -m)\" == \"x86_64\" ] && echo \"linux\" || echo \"arm/linux\")\r\n    echo \"ModpackID: ${FTB_MODPACK_ID} VersionID: ${FTB_MODPACK_VERSION_ID} InstallerType: ${INSTALLER_TYPE}\"\r\n\r\n    # download installer\r\n    curl -L https://api.modpacks.ch/public/modpack/0/0/server/${INSTALLER_TYPE} --output serversetup\r\n    chmod +x ./serversetup\r\n    \r\n    # remove old forge files (to allow updating)\r\n    rm -rf libraries/net/minecraftforge/forge\r\n    rm -rf libraries/net/neoforged/forge\r\n    rm -f unix_args.txt\r\n    \r\n    # run installer\r\n    ./serversetup ${FTB_MODPACK_ID} ${FTB_MODPACK_VERSION_ID} --auto --noscript --nojava\r\n}\r\n\r\n# allows startup command to work\r\nfunction move_startup_files {\r\n    # create symlink for forge unix_args.txt if exists\r\n    if compgen -G \"libraries/net/minecraftforge/forge/*/unix_args.txt\"; then\r\n        ln -sf libraries/net/minecraftforge/forge/*/unix_args.txt unix_args.txt\r\n    fi\r\n    \r\n    # create symlink for neoforge unix_args.txt if exists\r\n    if compgen -G \"libraries/net/neoforged/forge/*/unix_args.txt\"; then\r\n        ln -sf libraries/net/neoforged/forge/*/unix_args.txt unix_args.txt\r\n    fi\r\n    \r\n    # move forge/neoforge/fabric jar file to start-server.jar if exists\r\n    if compgen -G \"forge-*.jar\"; then\r\n        mv -f forge-*.jar start-server.jar\r\n    elif compgen -G \"fabric-*.jar\"; then\r\n        mv -f fabric-*.jar start-server.jar\r\n    fi\r\n}\r\n\r\n# installer cleanup\r\nfunction installer_cleanup {\r\n    rm serversetup\r\n    rm -f run.bat\r\n    rm -f run.sh\r\n}\r\n\r\n# run installation steps\r\ninstall_required\r\nget_modpack_id\r\nrun_installer\r\nmove_startup_files\r\ninstaller_cleanup\r\n\r\necho \"Finished installing FTB modpack\""
        }
    },
    "variables": [
        {
            "name": "FTB Pack search term",
            "description": "the search term for finding the modpack. needs to be at least 4 characters long.\r\nFind out what term is needed by using the ftb app and searching with the term. make sure it only returns 1 result.\r\ncan also be searched for via: https://api.modpacks.ch/public/modpack/search/8?term={SEARCHTERM}\r\n\r\nonly needed if the modpack id and modpack version id is unknown.",
            "env_variable": "FTB_SEARCH_TERM",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "nullable|string",
            "field_type": "text"
        },
        {
            "name": "FTB modpack ID",
            "description": "The FTB Api modpack ID.\r\nNeeded if not using the search variable\r\n\r\nExample: FTB Interactions ID is 5.\r\nhttps://api.modpacks.ch/public/modpack/5",
            "env_variable": "FTB_MODPACK_ID",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "nullable|integer",
            "field_type": "text"
        },
        {
            "name": "FTB Pack Version",
            "description": "what version of the modpack to install. leave empty if using the modpack version id variable.",
            "env_variable": "FTB_VERSION_STRING",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "nullable|string",
            "field_type": "text"
        },
        {
            "name": "FTB Pack Version ID",
            "description": "The modpack api version ID.\r\nneeded if not using the string for the version.\r\n\r\nExample FTB Revelations version id for version \"2.0.2\" is 86.\r\nwhich would come out as: https://api.modpacks.ch/public/modpack/5/86",
            "env_variable": "FTB_MODPACK_VERSION_ID",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "nullable|integer",
            "field_type": "text"
        }
    ]
}