Skip to content

Hidden Modpacks

pama1234 edited this page Jun 6, 2024 · 2 revisions

可以创建仅在用户输入特定“密钥”时出现的模组包。

如果你有 PHP 支持,Modpack 创建工具可以为你自动生成支持此功能的包列表文件。参见 Creating-Modpacks

启动器设置

确保在 launcher.properties 中配置 packageListUrl 参数,使其包含一个“%s”,这个“%s”会被用户在设置中设置的游戏密钥(经过 URL 编码)替换。

工作原理

例如,如果你的属性文件如下所示:

packageListUrl=http://example.com/packages.json?key=%s

而在选项中,用户设置了这个:

Options

它会加载以下 URL:

http://example.com/packages.json?key=secret

手动包列表文件

你也可以使用下面提供的 PHP 脚本手动设置此功能。你的网站需要支持 PHP 脚本。Dropbox 会工作。

示例 PHP 脚本

以下是一个示例 PHP 脚本,它读取密钥参数以显示一个额外的模组包:

<?php
// 此文件自动生成 packages.json

function getPackageData($pathname) {
    $data = json_decode(file_get_contents($pathname));
    if (isset($data->name) && isset($data->version)) {
        return [
            'name' => $data->name,
            'title' => isset($data->title) ? $data->title : $data->name,
            'version' => $data->version,
            'location' => $pathname,
            'priority' => 1,
        ];
    } else {
        return null;
    }
}

$key = isset($_GET['key']) ? $_GET['key'] : "";
$files = glob("*.json");

if ($files === false) {
    $files = [];
}

$document = [
    'minimumVersion' => 1,
    'packages' => [],
];

// 获取同一文件夹中的包
foreach ($files as $file) {
    $data = getPackageData($file);
    if ($data !== null) {
        $document['packages'][] = $data;
    }
}

// 如果密钥是 'secret',则添加来自 'private/beta.json' 的包
if ($key == "secret") {
    $document['packages'][] = getPackageData("private/beta.json");
}

header("Content-Type: text/plain");
echo json_encode($document, JSON_PRETTY_PRINT);
?>

Launcher Wiki

教程

  1. Initial-Steps
  2. Creating-Modpacks
  3. Configuring-Self-Update

启动器功能:

自定义:

附加阅读:

觉得此启动器有用吗?

此分支由pama1234维护! 捐赠链接:Ko-fi

捐赠给obw,目前的主项目的维护者:

Support obw on Liberapay

捐赠给sk89q,最初的维护者:

Support sk89q on Patreon

Clone this wiki locally