User Tools

Site Tools


zh_cn:tutorial:minotaur

This is an old revision of the document!


使用 Minotaur 在 Modrinth 上发布模组

Minotaur 是一个和 CurseGradle 很相似的 Gradle 插件。 这个页面只是简单的介绍一下 Minotaur 的基础用法,然后你需要在它的文档中学习更加深入的知识

基础

在此之前,添加 minotaur 插件到你的 build.gradle 文件的插件列表当中,像是以下这样:

plugins {
    id "com.modrinth.minotaur" version "1.2.1"
}

现在你可以创建一个新的 Gradle 任务去发布你的模组到 Modrinth 了。

这里有一个基础的示例。

import com.modrinth.minotaur.TaskModrinthUpload
 
task publishModrinth (type: TaskModrinthUpload) {
    token = 'mySecretToken' // 如果你想通过 Github 发布你的模组的话,请在这里使用环境配置!
    projectId = 'modrinthModID' // 你的 modrinth 项目的 ID,错误的话 minotaur 会不起作用。
    versionNumber = '1.0.0' // 上传模组的版本。
    uploadFile = remapJar // 这链接到一个构建你的 mod jar的任务,并将 "uploadFile "设置为 mod jar。
    addGameVersion('1.16.2') // 任何可行的 minecraft 版本。
    addLoader('fabric') // 可以为 fabric 或者 forge 。Modrinth 以后会支持 liteloader 和 rift 。
}

这里获得你的 Modrinth token。你可以通过这个token获得权限使用 Modrinth API 通过 Minotaur 上传文件。

现在,当你运行gradle publishModrinth时,你应该看到你的 mod 已经被编译并上传到 Modrinth ,像是这样:

但是,这可能会受到限制,有时会重复上传,因为每次要发布版本时都需要编辑这些值。 这便是 Java stoutstin 的用武之地了。

让我们更加深入一些!

好了,你现在有了一个很基本的实现。我们来让他更加的符合实际需求,允许你在任务运行的时候通过命令行输入值。一般情况下这些是不足以让 Gradle 完成任务的,我们需要搭配诸如环境变量,静态数据等相似的内容。但是这份手册会留给学习者思考的空间,因此我们不会介绍太深入。

首先,我们需要创建一个 BufferedReader。为什么是 BufferedReader 而不是 System.out.readLine()?因为 System.out.readLine() 仅适用于命令终端,不适用于普通 IDE 的终端,例如 Eclipse、IntelliJ Idea 和 Visual Studio Code。由于 Gradle 任务最常在 IDE 中运行,因此最好使用 BufferedReader,因为它支持 IDE 的终端。

在你的 Modrinth 任务的顶部添加一个新的 BufferedReader ,它为 System.in 产生一个缓冲区。

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

现在你可以通过简单的调用 br.readLine() 方法来收集用户的输入了。

让我们把这个添加到我们的任务中,然后我们还将向里面添加更多的数据,比如 markdown changelog ,并使版本名称与语义版本号不同。

import com.modrinth.minotaur.TaskModrinthUpload
 
task publishModrinth (type: TaskModrinthUpload) {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    System.out.println("Enter a Github Access Token: ");
    token = br.readLine(); // 获取你在本教程的基础部分得到的GitHub访问令牌。
    projectId = "" // 在此输入你的modrinth mod ID。
    System.out.println("Enter the version number:");
    versionNumber = br.readLine();
    System.out.println("Enter the version name:");
    versionName = br.readLine();
    uploadFile = remapJar // 这链接到一个构建你的 mod jar 文件的任务,并将 "uploadFile" 设置为 mod jar。
    System.out.println("Enter the game version number: (See minotaur docs for valids)");
    addGameVersion(br.readLine());
    System.out.println("Enter changelog:");
    changelog = br.readLine();
    addLoader("fabric")
}

现在,当运行 gradle publishModrinth 时,它会要求你提供一些贴心的用户输入。你甚至可以使用 Swing 或 JavaFX 来制作 GUI。真是炫酷无比!

Minotaur 与 CurseGradle 一起使用是很常见的现象。你可以将这两个任务合并在一起。在 Modrinth 完成后调用 CurseGradle 任务:

task publishModrinth (type: TaskModrinthUpload) {
    // ... Modrinth 的上传工作
    curseforge<id> // 开始执行 cursegradle 任务。用你在 cursegradle 配置中设置的 ID 替换 id。
}
zh_cn/tutorial/minotaur.1627147894.txt.gz · Last modified: 2021/07/24 17:31 by breakice