Minotaur は、 CurseGradle に似た Gradle プラグインです。 このページでは、 Minotaur の基本についてのみ説明します。 詳細については、GitHub のドキュメント を確認してください。
まず、 Minotaur プラグインを build.gradle
ファイルのプラグインリストに次のように追加します:
plugins { id "com.modrinth.minotaur" version "2.+" }
Minotaur はあなたのために modrinth
タスクを登録します。構成は、 modrinth {…}
ブロックを介して行われます。
これが基本的な例です。
import com.modrinth.minotaur.dependencies.ModDependency modrinth { token = 'mySecretToken' // これには環境変数を使用してください!デフォルトは `$MODRINTH_TOKEN` です。 projectId = 'AABBCCDD' // Modrinth プロジェクトの ID。 Slugs は機能しません。 versionNumber = '1.0.0' // Mod の(できれば SemVer の)バージョン。指定しない場合は、 `version` 宣言を使用します。 versionName = 'My awesome release' // バージョンタイトル。指定しない場合は、バージョン番号が使用されます。 uploadFile = remapJar // 再マップされた jar を使用するように Minotaur に指示します。 gameVersions = ['1.18', '1.18.1', '1.18.2'] // バージョンがサポートするゲームバージョンの配列。 loaders = ['fabric'] dependencies = [ new ModDependency('P7dR8mSH', 'required') // Fabric API に必要な新しい依存関係を作成します。 ] }
ここ から Modrinth のトークンを入手します。このトークンを使用すると、 Minotaur を介して Modrinth API にアクセスできます。
ここで、 gradle modrinth
を実行すると、Mod がコンパイルされて Modrinth にアップロードされていることがわかります:
ただし、リリースするたびにファイル内の versionNumber
や versionName
などの値を編集する必要があり、この作業を繰り返すのは大変です。
ここで、 Java の stout
と stin
が登場します。
これで、基本的な実装ができました。これを動的にして、タスクの実行時にコマンドラインから値を入力できるようにします。通常、これは Gradle タスクでは実行されず、環境変数または同様の静的ソースをこれらの値に使用できますが、チュートリアルは後世のために残されます:
まず、 BufferedReader
を作成する必要があります。 なぜ System.out.readLine()
ではなく BufferedReader
なのでしょうか? System.out.readLine()
はコマンド端末でのみ機能し、Eclipse、IntelliJ Idea、Visual Studio Code などの通常の IDE 端末では機能しません。 Gradle タスクは IDE で実行されるのが最も一般的であるため、BufferedReader
を使用することをお勧めします。
System.in
からバッファを収集する新しい BufferedReader
を Modrinth タスクの先頭に追加します。
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
これで、メソッド br.readLine()
を呼び出すだけでユーザーの入力を得ることができるようになりました。
これをタスクに追加しましょう。また、Markdown 変更ログなどのデータを追加し、バージョン名をセマンティックバージョニング番号とは異なるものにします。
modrinth { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Enter a Modrinth token: "); token = br.readLine(); // このチュートリアルの"基本的な実装"で取得したトークンを入力します。 projectId = "" // ここに Modrinth プロジェクト ID を入力します。 System.out.println("Enter the version number:"); versionNumber = br.readLine(); System.out.println("Enter the version name:"); versionName = br.readLine(); uploadFile = remapJar System.out.println("Enter the game version number: (See minotaur docs for valids)"); gameVersions = [br.readLine()]; System.out.println("Enter changelog:"); changelog = br.readLine(); loaders = ["fabric"] }
これで、 gradle modrinth
が実行されると、ユーザーからいい感じに入力を求められます。それどころか、あなたは GUI を作るために Swing または JavaFX を使用することさえできるでしょう!
Minotaur は CurseGradle と同様に素晴らしいです。両方のタスクを一緒にマージできます。 Minotaur と CurseGradle のそれぞれで公開するためのタスクを一度に実行するためのタスクを作成します:
task publishToModSites { publishToModSites.dependsOn modrinth publishToModSites.dependsOn curseforge }
Minotaur 2.x では、ビルドスクリプトのフォーマットにいくつかの重大な変更が加えられました。
まず、独自の publishModrinth
タスクを登録する代わりに、 Minotaur は modrinth
タスクを自動的に作成するようになりました。そのため、task publishModrinth(type: TaskModrinthUpload) {
の行を modrinth {
だけに置き換えることができます。
サポートされている Minecraft バージョンと Mod ローダーを宣言するには、 gameVersions
配列と loaders
配列を使用する必要があります。これらの構文はかなり自明です。
releaseType
を使用する代わりに、 versionType
を使用する必要があります。 これは実際には v1.2.0 で変更されましたが、 v1.1.0 から移行したビルドスクリプトはほとんどありません。
最後に、依存関係も ModDependency
または VersionDependency
、あるいはその両方をとる配列です(com.modrinth.minotaur.dependencies
パッケージからインポートする必要がある場合があります)。最初のパラメーターは文字列としてのプロジェクトまたはバージョン ID であり、 2 番目のパラメーターは依存関係タイプ(required
〔必須〕、 optional
〔オプション〕、または unsupported
〔サポートされていない〕のいずれか)です。