Closed4

Minecraft Modding with IntelliJ

刀剣クラフト刀剣クラフト

IntelliJの使い方

MinecraftのMODを作るときに使っているIntelliJの機能のメモ。

https://docs.fabricmc.net/develop/ide-tips-and-tricks

キーボードショートカット

キー操作 動作
Shiftx2 Search Everywhere (クラス名やファイル名で検索)
ソースコードを検索する場合はAlt + N非プロジェクト項目を含めるを有効に
ctrl+H 継承関係のツリーを見る (キャレットを合わせればそのクラス)
Alt+F11 開いているファイルをProject view(ファイルのツリー)で開く
Alt+7 クラス内のメソッド等の一覧を表示

Gradle

プレイヤーを固定

runClientで起動すると、プレイヤー名やUUIDが毎回変わる。
そのため一度閉じると別人扱いとなり、手懐けたMobの挙動を確認するときに問題となる。

UUID等はRun/Debug ConfigurationのRunの項目に引数を追加することで固定できる。
例:runClient --args="--username=TestUser --uuid=c989a6f2-cfa6-4e2b-b12e-0507f74ee7ec"


その他の引数はnet.minecraft.client.main.Mainに掲載されている。

マルチプレイヤーでデバッグ

runServerでサーバーを起動し、runClientで起動したクライアントから接続する。
デフォルトではサーバーアドレスにはlocalhost:25565を指定する。

localhostへのアクセスを許可

マイクラのサーバとアプリを同じPCで起動するとアプリからサーバに接続できない件

「Windows Store アプリはデフォルトでlocalhost(自分自身)に接続できない」

IntelliJからデバッグする場合に関係あるかどうかは不明

無効なセッションと表示される場合

server.properties - Minecraft Wiki

online-mode
false - 無効。 サーバーは、接続しているプレーヤーをチェックしない。

刀剣クラフト刀剣クラフト

IntelliJ Ultimate 2022.3.3を使用中。(以下U22)
IntelliJ Community 2024.3.1をインストール。(以下C24)

  • メソッドにn usagem overridesなどのinlay hintが表示されない
    • 設定を確認しても有効になっている
    • 同一ファイルを開いても、U22では表示され、C24では表示されない。
  • C24ではマイクラ内のファイルを開くとタブが黄色になる。 (excludedとして扱われている?)

IntelliJ Community 2025.1.3をインストール。
上記の問題は発生せず。Communityへ乗り換え。

刀剣クラフト刀剣クラフト

genSourcesをかけると、IDEのブックマークのリンクが切れてしまう。
リンクを維持したまま更新したり、リンク先を更新する方法はないだろうか?

刀剣クラフト刀剣クラフト

moddingで必要になる技術

普通にJavaでコードを書く時にはあまり必要ないが、Moddingでは必要になるもの
特にIntelliJとは関係ない

Access Widener

クラスやメソッド、フィールドのアクセス制限を外す。
対象はバニラ限定で、別のMODに対しては使えないらしい。
参考になるドキュメントは見つけられなかった。

使い方の流れ

  1. Minecraft Developmentをインストール
  2. build.gradleにloomを追加 ⛓️
  3. resourcesの下に[modid].accesswidenerを作成
  4. 1行目にaccessWidener v2 namedと記入 ⛓️
  5. アクセス制限を解除したいクラス等を右クリックし、特殊なコピー/貼り付けAW Entryを選択
  6. accesswidenerに貼り付け
  7. gradleからビルドを実行
  8. ソースコードを開いてアクセス修飾子が変わっていればOK

Mixin

アクセス制限の解除や、既存メソッドの挙動の変更など。

このスクラップは3ヶ月前にクローズされました