環境構築 2 (1.7.10)

1.7.10の開発講座を修正中です。このページには誤りや古い情報が含まれる可能性があります。

MODを開発するための環境を整えます。基本的にWindows 10で確認しているので、MacやLinuxでは異なる部分があります。

複数のMODを開発する時は、Forgeの手順3以降を行います。

目次

Forge

GradleとForge Gradleプラグインのバージョンに関する問題が確認されています。詳しくはコメント欄をご覧ください。

  1. ダウンロードページからほしいバージョンの「src」を選択すると、「AdFoc.us」というページに移動します。推奨版という意味の「Recommended」を選択するとよいでしょう。
  2. 5秒待つと右上に「SKIP」というボタンが出るので、これをクリックしてダウンロードしてください。下の方の「ダウンロード」などのボタンは広告です。
  3. ダウンロードしたzipファイルを解凍してください。日本語の入っていない場所がよいでしょう。今回は例として"C:/Modding/AluminiumMod"を使用します。"C:/Modding/AluminiumMod/"に"src"フォルダや"build.gradle"などがあるようにしてください。
  4. IntelliJ IDEAを起動して「Open」から"C:/Modding/AluminiumMod"を選択し、出てきたダイアログで「OK」ボタンを押します。この時、"AluminiumMod"がGradleの緑色のマークで表示されていることを確認してください。
  5. しばらく待って画面右下に表示されている処理が終了したら、エクスプローラで"C:/Modding/AluminiumMod"を開いてウィンドウ上部のアドレスバーに「cmd」と入力し、コマンドプロンプトを開いてください。
  6. コマンドプロンプトに「gradlew setupDecompWorkspace」と入力して実行すると、自動で環境が整えられます。しばらくして「BUILD SUCCESSFUL」と出たら成功です。
  7. コマンドプロンプトに「gradlew idea」と入力して実行すると、IntelliJ IDEAに対応した環境が整えられます。しばらくして「BUILD SUCCESSFUL」と出たら成功です。
  8. コマンドプロンプトに「gradlew genIntellijRuns」と入力して実行すると、IntelliJ IDEAでテストプレイするための環境が整えられます。これも「BUILD SUCCESSFUL」と出たら成功です。
  9. IntelliJ IDEAに戻って右上の下向き三角のボタンから「Minecraft Client」を選択し、緑色の右向き三角のボタンで実行してください。Minecraftが起動すれば、成功です。

準備

  1. IntelliJ IDEAで「com.example.examplemod.ExampleMod」を開き、クラスの宣言部分にカーソルを移動させてAlt+Enterから「Suppress for class annotated by ...」を選択すると、@Modをつけたクラスに対する未使用の警告がなくなります。
  2. initメソッドの宣言部分でも同様にし、@EventHandlerを登録してください。
  3. 「Project View」で"AluminiumMod/src/main/java/"にある"com.example.examplemod"を削除してください。中にはサンプル用のMODが入っています。
  4. "com.example"が残るのでもう一度削除してください。
  5. "AluminiumMod/src/main/resources/"にある"mcmod.info"を削除してください。MODの情報を登録するファイルですが、この開発講座では使いません。
  6. "AluminiumMod/src/main/java/"を右クリックし、「New>Package」から"tutorial.aluminiummod"パッケージを作成してください。
  7. "tutorial.aluminiummod"を右クリックし、「New>Java Class」から"AluminiumMod"を作成してください。
  8. これで準備は完了です。今後は必要に応じてファイルを追加してください。

31件のコメント

  1. うーず

    もう遅いかもしれませんが、自分も同じようなことになったので、解決方法を残しておきます。
    Forge #1448
    gradle/wrapper/gradle-wrapper.propertiesを編集して、

    distributionUrl=https://services.gradle.org/distributions/gradle-4.2.1-all.zip
    distributionBase=GRADLE_USER_HOME
    distributionPath=wrapper/dists
    zipStorePath=wrapper/dists
    zipStoreBase=GRADLE_USER_HOME

    にしました。そして、タスクバーのView>Tool Window>Gradleを表示して、出てきたウィンドウのTasks>forgegradle>runClientでデバッグ起動ができました。出来ない場合は上記の、gradle-4.2.1-all.zipのところをいろいろ弄ってみると、幸せになれると思います。

  2. 因みに、ぬるぽは
    java.lang.NullPointerException
    at net.minecraftforge.gradle.user.UserBasePlugin.add(UserBasePlugin.java:586)
    at net.minecraftforge.gradle.user.UserBasePlugin.injectIntellijRuns(UserBasePlugin.java:552)
    at net.minecraftforge.gradle.user.UserBasePlugin$3.execute(UserBasePlugin.java:468)
    at net.minecraftforge.gradle.user.UserBasePlugin$3.execute(UserBasePlugin.java:431)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:570)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:553)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
    at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
    at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
    at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:296)
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79)
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63)
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:23)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:86)
    at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:29)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
    at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)
    at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67)
    at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:54)
    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:148)
    at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:105)
    at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:85)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:81)
    at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33)
    at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:39)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:29)
    at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:50)
    at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:171)
    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:237)
    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:210)
    at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35)
    at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24)
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:206)
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169)
    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
    at org.gradle.launcher.Main.doAction(Main.java:33)
    at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:54)
    at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:35)
    at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:30)
    at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:127)
    at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:56)
    の様な物です。
    原因分かりますか?
    (スパムに引っ掛かりそうな気が...おっと誰か来た様だ)

  3. 更に追記:
    マイクラインストールしました。
    手動でテスト出来る様にはなりましたが、
    やはり手間が...
    (そういえば、テクスチャ全部バグってた様なorz)

  4. 同じ様な投稿を何回もしてしまって、すみません。
    投稿して直ぐには表示されないんですね...
    次からは気を付けます。

  5. P.S.
    MODのソースコード自体はgeditで作ってあります。
    (geditのSyntaxHighlight超便利!)

    • Tom Kate

      ありがとうございます。
      こちらでは現状同様の事象が確認できておりませんので、再現が取れましたら追って連絡致します。

  6. 私も「たかし」さんと同じく、Minecraft* が表示されていません。
    手順6~8では一応「BUILD SUCCESSFUL」とはなっています。
    (手順8だけぬるぽ吐いてたけどBUILDSU(ry)
    因みに環境は、
    OS:Windows 10 Home 64-bit
    IDE:IntelliJ IDEA Community Edition 2019.1.1 x64
    JDK:Java SE Development Kit 8u212 Windows x64
    MF:Minecraft Forge 10.13.4.1614 Src
    です。

  7. たかし

    「Edit Configurations…」は見つかったが、マインクラフトクライアントとサーバーが見つからなかったという意図です。あとUse class path of moduleというのはどこに出てくるのでしょうか?ほかの状況はご更新いただいた情報の通りです。

    • 赤砂蛇 凪浜

      「Minecraft Client」及び「Minecraft Server」が表示されていないのは、Forge Gradleによる自動設定ができていないためと考えられます。
      (自分の書いたソースコードがあるなら一度別の場所に保存して)フォルダの中身をすべて消してから、Forgeの手順3以降をやり直してみてください。
      その際、特に手順5以降を正確に行い、手順6, 7, 8ですべて「BUILD SUCCESSFUL」と表示されていることを確認してください。

      「Use class path of module」は「Minecraft Client」及び「Minecraft Server」が選択できる場合に表示されます。

  8. たかし

    今やり直したのですが、プルダウンメニューを選択できませんでした。すべてのビルドは成功したので、あとはここの設定だけだと思うのですが、、、どうすればよいのでしょうか?

    • 赤砂蛇 凪浜

      記事が古く、変更に対応していなかったことをお詫び申し上げます。
      今後、検証したうえで記事を更新する予定です。

      現在確認した変更点は、以下の通りです。
      1. Forgeの手順4で「Gradleの緑色のマーク」が表示されない。
      2. Forgeの手順8と手順9の間に、実行ボタン(緑色の右向き三角)の左にある起動メニューの「Edit Configurations…」から設定を変更する必要がある。

      「プルダウンメニューを選択できない」というのはどのような状況でしょうか。
      1. 右上起動メニューのリストに「Edit Configurations…」「Minecraft Client」「Minecraft Server」が表示されている
      2. 「Minecraft Client」「Minecraft Server」のアイコンに×印が表示されている
      3. 「Edit Configurations…」のダイアログで「Use classpath of module:」の左側に「no module」と表示されている
      以上の状況でしたら、「Use classpath of module:」のリストから「(パッケージ名).(MOD名).main」を選択し起動してみてください。
      上記はこちらの環境で再現した結果ですので、状況が異なる場合は詳しくお知らせください。

  9. たかし

    早速の返信ありがとうございます。Warning:Unable to make the module: forge-1.7.10-10.13.4.1558-1.7.10-src, related gradle configuration was not found. Please, re-import the Gradle project and try again.とログには出ていて、Mincraft Cilentが見つかりません。どこが悪いお分かりになりませんか?何度もすみません、

    • Tom Kate

      それでしたら、Gradleの読み込みに失敗しているのではないかと思われます。
      この点は各環境にもよりますので、環境構築をやり直してみるのも手かと思います。
      その際、6. 7. 8. の出力が SUCCESSFUL であることをお確かめください。

  10. たかし

    なぜか9の時に下向きの三角のボタンなるものがないのですが、どこにあるのでしょうか?

    • Tom Kate

      IntelliJ IDEA最新版ではデザイン変更でボタンのイラスト等も変わっていました。
      右向きの三角形と虫のマークが右上のツールバーに表示されていると思いますので、その右側にあるプルダウンメニューからMinecraft Clientを探してください。

コメントはこちらです。(スパム対策の為コメントは手動承認になっています。未承認のコメントは表示されないので連投はお控え下さい。)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください