0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Minecraft】CurseGradleを使ってCurseForgeへ自動アップロードする方法

Posted at

【Minecraft】CurseForgeへ自動アップロードする方法

はじめに

大手Mod配布プラットフォームであるCurseForgeに自作ModをCurseGradleを使ってGradleでアップロードできます。
build.gradle を変更するだけでアップロードできるので、一度設定してしまえば楽にアップロードできます。

毎度ウェブ開いてModをリリースするのって面倒ですからこういうの使って効率化していくこともできます。

この記事の前提

  • Windows 11での操作を前提としていますので、そうではない場合は適宜読み替えてください
  • CurseForgeのアカウントを持っていること
  • 既にCurseForgeにプロジェクトを作成していること
  • 自作Modを作成していること
  • Gradleでビルドできること

以上のことを前提として話を進めていきます。

API Token の作成

まずはAPI Tokenを作成します。

(1) 右上のアイコンをクリックして、Settingsをクリックします。
image.png

(2) General Settingsをクリックします。
image.png

(3) My API Tokensをクリックします。

(4) トークン名を入力して、Generate Tokenをクリックします。
image.png

トークン名はなんでもいいのですが、私はとりあえずupload_tokenにしました。

(5) トークンが生成されるので、コピーしておきます。
image.png

環境変数でAPI Tokenを設定 (任意)

Windows 11での操作を前提としていますので、そうではない場合は適宜読み替えてください (二度目)

Gitのリモート先を設定している場合、トークンを間違えてコミットしてしまうと問題なので環境変数を使いましょう。
それにこうすることで他のプロジェクトでも使い回せますし

開く方法はいくつかありますが、ここではタスクバーの検索を使って開く方法を紹介します。

(1) 検索バーに「環境変数」と入力して、環境変数を編集をクリックします。
image.png

(2) ユーザー環境変数側(上)の新規をクリックします。(システム環境変数側でもいいですが、その場合はシステム環境変数の編集を開く必要があります)
image.png

(3) 変数名にCURSEFORGE_TOKEN、変数値に先ほどコピーしたトークンを入力して、OKをクリックします。
image.png

トークンがコピーできていなければ再度General SettingsのMy API Tokensからコピーしてください。

build.gradle の設定

(1) pluginsのところに

  • id 'com.matthewprenger.cursegradle' version '1.+'

を追加します。plugins {} がなければpluginsブロックを作成してください。

build.gradle
plugins {
    [...]
    id 'com.matthewprenger.cursegradle' version '1.+'
}

(2) curseforgeブロックを追加します。

build.gradle
// CURSEFORGE_TOKEN環境変数が設定されている場合、curseforgeブロックを追加
if (System.getenv("CURSEFORGE_TOKEN") != null) {
    curseforge {
        apiKey = System.getenv("CURSEFORGE_TOKEN")
        project {
            id = '123456' // Project ID
            releaseType = 'release' // release, beta, alpha
            changelog = '' // 変更点
            
            addGameVersion '1.12' // ゲームバージョン
            addGameVersion '1.12.1'
            addGameVersion '1.12.2'
            
            // 依存関係
            relations {
                requiredDependency 'fabric-api' // 前提ModのProject IDもしくはSlug (SlugはURLの最後の部分)
                optionalDependency 'modmenu' // 前提Mod (任意)
            }
            
            mainArtifact(remapJar)
        }
        options {
            // forgeGradleIntegration = false
        }
    }
}

Project IDは以下のようにCurseForgeのプロジェクトのページの右のサイドバーにあるAbout ProjectのProject IDに記載されています。
image.png

Architectury LoomやらGradleでサブプロジェクトがある場合は、

build.gradle
subprojects {
    apply plugin: "com.matthewprenger.cursegradle"
    [...]
    
    curseforge {...}
    
    [...]
}

上記のようにapply plugin: ...で適用してください。

アップロード

あとはGradleタスクを実行するだけです。

gradlew curseforge

IntelliJ IDEAの場合は右のGradleタブからでもタスクを実行できます。
image.png

アップロードが成功すると、CurseForgeのプロジェクトの管理画面のFilesタブにアップロードされたファイルが表示されます。

最後に

これでワンクリック、タイプ一つでアップロードできるようになりました。
余談ですが、ModrinthではMinotaurというのもあります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?