たくさんの自由帳
Androidのお話
たくさんの自由帳
投稿日 : | 0 日前
文字数(だいたい) : 7903
目次
本題
環境
Minecraft 1.17
読まなくていい Java有償化の話
Oracle JDK 有償化の話の続き 2021/10/06 追記
Java 16 を入れる
追記:2021/07/28 JAVA_HOMEの設定
IDEAを入れる
テンプレートをクローン
そううまく行かない
Could not merge JARs! Deleting source JARs - please re-run the command and move on.
You are using an outdated version of Java (8). Java 16 or higher is required
プロジェクトの設定
IDEAの設定
1.17 Fabric
MOD情報の変更
Javaのパッケージ名修正
ExampleMod.kt のファイル名修正
MOD情報の修正
よくわからんけど Mixin も修正
起動してみる
アイテムを追加してみる
テクスチャ
おまけ クリックまな板みたいにクリックしたら増えるように
ソースを読めるようにする
配布可能ファイルを生成する
エンドユーザー向けの説明とか
ソースコード
追記:2021/07/28 1.17.1への対応
終わりに
どうもこんにちは。
ハジラブ -Making*Lovers-(Making*Lovers フルHDリマスター付き)予約しました。月末が楽しみですね。
TwitterでForgeより快適と聞いて。
しかもKotlinでModdingができる!!!
なまえ | あたい |
---|---|
IDE | Intellij IDEA 2021.1.2 Community Edition |
Windows | 10 Pro (そういえば発表会があるんだっけ?いい加減設定がコンパネと散らばってんのどうにかしてほしい) |
Minecraft | 1.17 (1.7.10と空目しないで) |
Java | 16(後述) |
言語 | Kotlin |
調べた感じ、Extra UtilitiesにあったDark Glassがバニラに逆輸入?されたみたい。TTの監視で使えそう。
技術的な話をするとJava 16以上が必要です。JDKの有償化よくわからんけどAdoptOpenJDKの方なら多分大丈夫。
ついにJavaのModdingでも型推論が(使っていいのかはよくわからん)(というかRecord
も使えるようになったのかええやん)(てかそもそも今回はKotlin使うから別に)
多分間違ってる気がするのでチラシの裏的な感覚で
どうやら、Java 17からOracle JDK
が無償提供されるようになりました。再び無償化。
まーたややこしくして何がしたいんや...
というわけでJava 17以降
はOracle JDK
使っても大丈夫になりました。でも今の所オラクル以外のJDKでやって行けてるのでそのまま行こうと思います。
今回はAdoptOpenJDK
を入れます。
https://adoptopenjdk.net/ を開いて、OpenJDK 16 (Latest)
と、HotSpot
のラジオボタンを選んでLatest release
を押してダウンロードしましょう。
インストールはまあ適当に進めてください。(画像ない)
一応Java 16がインストールできたか確認するために、コマンドプロンプトとかで、javac -version
を叩きます。javac 16.0.1
が帰ってくればおk
なんか久しぶりにやったらまだJava8使ってんのかよって言われたので直します。
環境変数の設定開いて、システム環境変数の中からJAVA_HOME
を選んで、AdoptOpenJDK
のパスを設定します。
入れておいてください。Community Editionでいいです
IDEAのスタート画面から、Get from VCS
を押して、いかのURLを指定してClone
します。
なまえ | あたい |
---|---|
URL | https://github.com/natanfudge/fabric-example-mod-kotlin |
プロジェクトを信頼するか聞かれるのでTrust project
を押してください。
gradle.properties
を開いて、loom_version
を0.8
にします
右上のFile
からProject Structure
を選択して、Project SDK
を16
に、Project language level
も16
にします。
適用したら、このボタンを探して押します。
ボタンが見つからない場合はIDEA
の右上にある?Gradle
を押して、Sync
ボタンを押してもいいです。
これで終わればいいんですが、これでも同じエラーで進めないときがあります。
右上のFile
からSettings
を選択して、Build,Execution,Deployment
を押し、Build Tools
を押し、Gradle
へ進み、
Gradle JVM
を16
にしてみてください。できたらさっきみたいにボタンを押します。
うまく行けば処理が進みます。私の環境では10分ちょっとかかった。
Gradle Build
が終わったら一旦IDEAを閉じます。その後もう一度起動するとマイクラのクライアントが起動できるようになります。
早速再生ボタンみたいなやつを押して起動してみましょう。
(私だったら)起動直後設定へ進みBGMを0にします。うるさいし
gradle.properties
を開いて、以下の内容を変えます
なまえ | あたい |
---|---|
maven_group | 自分の持ってるドメインを逆から。持ってないならGithub Pagesとか他とかぶらない文字列 |
archives_base_name | MODのID(小文字) |
私ならこんな感じ?
#Fabric api
fabric_version=0.34.10+1.17
loom_version=0.8-SNAPSHOT
# Mod Properties
mod_version = 1.0.0
maven_group = io.github.takusan23
archives_base_name = clickmanaita
また、fabric_version
等は、以下のサイトから更新があるか確認できるので見てみるといいと思います。
https://fabricmc.net/versions.html
IDEAのProject(ファイルが表示されてるところ)からnet.fabricmc.example
を選択状態にして、Shift押しながらF6を押します
。
押したらRename Package
を選び、ドメイン名(逆から)+MOD名小文字 を入力します
続いてresources
の方も修正します。同じようにassets.modid
を選択状態にして、Shift押しながらF6を押します
。
そしたら先程入力したMODのIDを入力すればいいです。
なんか残ってるnet.fabricmc
ってのは多分消して大丈夫です。
こうなっていればおk
味気ないのでMOD名.kt
とでもしておきましょう。名前変更は先程と同じです。
resources
の中にあるfabric.mod.json
を開きます。
開いたら、modid
、entrypoints.main
の部分を最低限書き換えておけばいいと思います。
ドメイン(逆から)
.MODのID
.ExampleMod.ktだったファイル名
Kt::init
クラス名+Kt、Ktを付けないとダメっぽい。
あとアイコンのところのmodid
もさっき変えちゃったので直しといてください。
その他は各自好きなように。以下例
resources
内のmodid.mixins.json
を開いて、package
の部分を直します。これなんなの?
ドメイン
.MODのID
.mixin
これで起動するはず。多分
https://fabricmc.net/wiki/tutorial:items
この通りにやってみる
まずアイテムクラス(Kotlinだしobjectでもいいわ)を作ります。
そしたらExampleModKt
だったファイルを開いて、init
関数内でアイテムを登録します。
そしたら起動してみましょう。
画面のようにアイテムが追加できていれば成功。
画像ファイルを用意します。用意できたら、resources/assets/MODのID/textures/item/アイテムID.png
って感じで置きます。
そしたら今度は、resources/assets/MODのID/models/item/アイテムID.json
って感じでJSONファイルを作成します。
中身はこうです。
modのID:item/アイテムのID
って感じですね。このテキスチャ指定まじでややこしいからやめてほしい。
というかJSONは人間が書くもんじゃないだろ。本当に
成功してました。失敗してたらまじでつらい
そのためにはItem
クラスを継承する必要があります。のでClickManaitaBaseItem
みたいなクラスを作成します。
そしたらuseOnBlock
メソッドをオーバーライドします。多分これがブロックを右クリックしたときに呼ばれる関数です。
そしたらItem()の部分をClickManaitaBaseItem()に書き換えて実行してみると
増えます。まだチェストの中身とかは増えないのでまだまだって感じですかね。
Minecraftのソースを読めるようにします。IDEAには逆コンパイラーが搭載されているのでなくても最悪いいですが、検索機能が使えないのでソースを生成しといたほうがいいと思います。
IDEAのGradle
を押して、Tasks
> fabric
> genSources
をダブルクリックすることで生成されます。
その後、適当にBlockクラスとかを参照した際に、上に出てくるChoose Sources...
を押して、なんとか-sources.jar
を選択することで生成したソースを読むことができるようになります。
Shift
+Ctrl
+F
の検索機能も開放されました。
IDEA右上のGradle
から、Tasks
>build
へ進みbuild
を選択することで配布可能なJarファイルを生成します。
成功すると、build/libs/
に生成したファイルが有るはずです。(dev、sources、sources-dev じゃない方)
あとはこのJarファイルをCurseForgeとかで公開すればいいんじゃない?
このModはFabric
導入後、mods
フォルダに以下のファイルをダウンロードして放り込んでおく必要があります。
ソースコードです。
https://github.com/takusan23/ClickManaita2/tree/1.17-fabric
クローンしたあとブランチ名「1.17-fabric」をチェックアウトしてください。一発でビルド通らないと思う。
git使ってる場合はコミットするなりブランチ作るなりして現状の環境壊れても大丈夫な状態にしてください。
使ってなければどっかにバックアップしておけばいいのでは
gradle.properties
を、最新の情報に更新します。
最新の値は「https://fabricmc.net/versions.html」から確認することが出来ます。
以下一例 (なんかコードブロックの言語にproperties指定したらシンタックスハイライト動いててちょっと感動)
これで後はMinecraft Client
を起動するだけで1.17.1へ対応できました。
マイナーアップデートなのでクラスの変更とか無いけど大型アップデートならそううまく行かないと思う。
いつもAndroidで書いてるKotlinでModdingできるので快適。Fabricへ移植したいから会社辞めたい。
そういえば私のマイクラ全盛期はナポアンのマイクラが最新Ver追いかけてたけどあのサイトどうなってんの?