User Tools

Site Tools


zh_cn:tutorial:minotaur

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Last revisionBoth sides next revision
zh_cn:tutorial:minotaur [2021/07/23 19:19] – created breakicezh_cn:tutorial:minotaur [2023/06/21 06:14] – [让我们更加深入一些!] solidblock
Line 10: Line 10:
 <code groovy> <code groovy>
 plugins { plugins {
-    id "com.modrinth.minotaur" version "1.2.1"+    id "com.modrinth.minotaur" version "2.+"
 } }
 </code> </code>
Line 21: Line 21:
 import com.modrinth.minotaur.TaskModrinthUpload import com.modrinth.minotaur.TaskModrinthUpload
  
-task publishModrinth (type: TaskModrinthUpload) +modrinth 
-    token = 'mySecretToken' // 如果你想通过 Github 发布你的模组的话,请在这里使用环境配置! +    token = 'mySecretToken' // 这里使用环境变量默认为 `$MODRINTH_TOKEN`。 
-    projectId = 'modrinthModID' // 你的 modrinth 项目的 ID,错误的话 minotaur 会起作用。 +    projectId = 'AABBCCDD' // 你的 Modrinth 项目的 ID。Slug 。 
-    versionNumber = '1.0.0' // 上传模组版本。 +    versionNumber = '1.0.0' // 模组版本,最好要符合 SemVer如果未指定,则会使用 `version` 声明 
-    uploadFile = remapJar // This links to a task that builds your mod jar and sets "uploadFile" to the mod jar. +    versionName = 'My awesome release' // 版本标题。如果未指定,则使用 versionNumber 
-    addGameVersion('1.16.2'// Any minecraft version+    uploadFile = remapJar // 告诉 Minotaur 使用重映射的 jar 文件 
-    addLoader('fabric') // Can be fabric or forge. Modrinth will support liteloader and rift at a later date.+    gameVersions = ['1.18', '1.18.1', '1.18.2'// 版本支持的游戏版本的数组 
 +    loaders = ['fabric'] // Self-explanatory
 +    dependencies = [ 
 +            new ModDependency('P7dR8mSH', 'required') // 创建一个必需的 Fabric API 依赖 
 +    ]
 } }
 </code> </code>
  
-===== WIP =====+从[[https://modrinth.com/dashboard/settings|这里获得]]你的 Modrinth 令牌。您可以使用此令牌与 Minotaur 一起访问 Modrinth API。 
 + 
 +现在,当你运行 ''gradle modrinth'' 时,你应该看到你的模组已经被编译并上传到 Modrinth ,像是这样: 
 + 
 +{{https://iili.io/KYUDq7.png}} 
 + 
 +但是,这可能会受到限制,有时会重复上传,因为每次要发布版本时都需要编辑这些值。 
 +这便是 Java ''stout'' 和 ''stin'' 的用武之地了。 
 + 
 +===== 让我们更加深入一些! ===== 
 + 
 +所以,你有一个基本的实现。让我们让这个实现更加动态,以允许您在运行任务时通过命令行输入值。通常情况下,Gradle 任务不会这样做,环境变量或类似的静态源可用于这些值,但本教程留作有需要的人使用: 
 + 
 +首先,我们需要创建一个 ''BufferedReader''。为什么是 ''BufferedReader'' 而不是 ''System.out.readLine()''?因为 ''System.out.readLine()'' 仅适用于命令终端,不适用于普通 IDE 的终端,例如 Eclipse、IntelliJ Idea 和 Visual Studio Code。由于 Gradle 任务最常在 IDE 中运行,因此最好使用 ''BufferedReader'',因为它支持 IDE 的终端。 
 + 
 +在你的 Modrinth 任务的顶部添加一个新的 ''BufferedReader'' ,它为 ''System.in'' 产生一个缓冲区。 
 + 
 +<code Java> 
 +BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
 +</code> 
 + 
 +现在你可以通过简单的调用 ''br.readLine()'' 方法来收集用户的输入了。 
 + 
 +现在把这个添加到我们的任务中,并向里面添加更多的数据,比如 Markdown changelog ,并使版本名称与语义版本号不同。 
 + 
 +<code groovy> 
 +modrinth { 
 +    BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
 +    System.out.println("输入 Modrinth 令牌:"); 
 +    token = br.readLine(); // 输入你从此教程的“基础”部分获取到的令牌。 
 +    projectId = "" // 在这里输入你的 Modrinth 项目 ID。 
 +    System.out.println("输入 version number:"); 
 +    versionNumber = br.readLine(); 
 +    System.out.println("输入 version name:"); 
 +    versionName = br.readLine(); 
 +    uploadFile = remapJar 
 +    System.out.println("输入游戏版本(有效的游戏版本参见 minotaur docs):"); 
 +    gameVersions = [br.readLine()]; 
 +    System.out.println("Enter changelog:"); 
 +    changelog = br.readLine(); 
 +    loaders = ["fabric"
 +
 +</code> 
 + 
 +现在,当运行 ''gradle modrinth'' 时,它会要求你提供一些贴心的用户输入。你甚至可以使用 Swing 或 JavaFX 来制作 GUI。真是炫酷无比! 
 + 
 +Minotaur 与 CurseGradle 一起使用是很常见的现象。你可以将这两个任务合并在一起。在 Modrinth 完成后调用 CurseGradle 任务: 
 + 
 +<code groovy> 
 +task publishToModSites { 
 +    publishToModSites.dependsOn modrinth 
 +    publishToModSites.dependsOn curseforge 
 +
 +</code>
  
zh_cn/tutorial/minotaur.txt · Last modified: 2023/06/21 06:19 by solidblock