Table of Contents
Публикация вашего мода на Modrinth с помощью Minotaur
Minotaur - это плагин Gradle, похожий на CurseGradle. На этой странице только основы Minotaur, вы должны проверить документацию GitHub для дальнейшего понимания.
Основное
Прежде всего, добавьте плагин minotaur в список плагинов в файле build.gradle
следующим образом:
plugins { id "com.modrinth.minotaur" version "1.1.0" }
Теперь вы можете создать новую задачу Gradle для загрузки в Modrinth.
Вот простой пример.
import com.modrinth.minotaur.TaskModrinthUpload task publishModrinth (type: TaskModrinthUpload) { token = 'mySecretToken' // Используйте свойство environment при выпуске исходного кода на GitHub! projectId = 'modrinthModID' // Идентификатор вашего проекта modrinth, slugs не будет работать. versionNumber = '1.0.0' // Версия мода для загрузки. uploadFile = remapJar // Это ссылка на задачу, которая создает ваш mod jar и устанавливает "uploadFile" в mod jar. addGameVersion('1.16.2') // Любая версия майнкрафта. addLoader('fabric') // Может быть fabric или forge. Modrinth будет поддерживать liteloader и rift позже. }
Получите свой токен Modrinth отсюда. Вы можете использовать этот токен для доступа к API Modrinth и вместе с Minotaur.
Теперь, когда вы запускаете gradle publishModrinth
, вы должны увидеть, что ваш мод был скомпилирован и загружен в Modrinth:
Однако это может быть ограничивающим и иногда повторяющимся для загрузки, вам нужно будет редактировать значения каждый раз, когда вы хотите выпустить версию.
Вот тут-то и появляются Java stout
и stin
.
Продвинутый
Итак, у вас есть базовая реализация. Давайте сделаем его динамическим, позволяя вам вводить значения через командную строку при выполнении задачи.
Прежде всего, нам нужно было бы создать BufferedReader
. Почему BufferedReader
вместо System.out.readLine()
? System.out.readLine()
работает только на командных терминалах и не работает на обычных IDE-терминалах, таких как Eclipse, IntelliJ Idea и Visual Studio Code. Поскольку задачи Gradle чаще всего выполняются в IDE, было бы лучше использовать BufferedReader
, поскольку он поддерживает терминалы IDE.
Добавьте новый BufferedReader
выше задачи Modrinth.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Теперь вы можете обработать пользовательский ввод, просто вызвав метод: br.readLine()
.
Давайте добавим это к нашей задаче? Мы также добавим некоторые дополнительные данные, такие как список изменений markdown, и сделаем имя версии отличным от семантического номера управления версиями.
import com.modrinth.minotaur.TaskModrinthUpload task publishModrinth (type: TaskModrinthUpload) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Введите токен доступа к Github: "); token = br.readLine(); // Получите токен доступа GitHub, который вы получили из основной части этого урока. projectId = "" // Введите свой идентификатор мода modrinth здесь. System.out.println("Введите номер версии:"); versionNumber = br.readLine(); System.out.println("Введите название версии:"); versionName = br.readLine(); uploadFile = remapJar // Это ссылка на задачу, которая создает ваш mod jar и устанавливает "uploadFile" в mod jar. System.out.println("Введите версию игры: (См. Документы minotaur для valids)"); addGameVersion(br.readLine()); System.out.println("Введите список изменений:"); changelog = br.readLine(); addLoader("fabric") }
Теперь, когда запускается gradle publishModrinth
, он просит вас ввести данные. Черт возьми, вы могли бы даже зайти так далеко, чтобы использовать Swing или JavaFX для создания графического интерфейса!
Minotaur великолепен рядом с CurseGradle. Вы можете объединить обе задачи вместе. Вызов вашей задачи CurseGradle после завершения Modrinth:
task publishModrinth (type: TaskModrinthUpload) { // ... Modrinth загружает материал curseforge<id> // Начните задание cursegradle, с заменой идентификатора с идентификатором, который был установлен на cursegradle конфигурации. }