他Modの他バージョン対応を作る
これは私(まる/にまゆー etc...)が他の作者様のModの他バージョン対応を作る過程を記録したものです。
発端
「Useful Chest MOD」の1.10.2対応版の作成をお願いできないでしょうか?
という依頼が来たのが今回、このページを作成しようと思ったきっかけです。
全体の流れ
①ソースコードが公開されていないか調べる(発見した→⑥へ、公開されていなかった→②へ)
②作者にコンタクトが取れないか、またソースコードを譲渡してもらえないかを聞いてみる(成功→⑥へ、失敗→③へ)
③自分が得意なバージョンでそのModが公開されていないか調べる(発見した→④へ、公開されていなかった→自分はここで諦めます...)
④対象のModをデコンパイルする
⑤ソースコードのエラーを直す
⑥目的のバージョンに直す
⑦ビルドする
今回の顛末
ソースコードの探索
- ソースコードを探し回ったが、発見できなかった
- 作者へコンタクトを取ろうとしたが、フォーラムでの最終ログイン時間が5年ほど前だったため、無理だと判断
- 1.7.x版を公開しているページを発見、ダウンロード成功
jarファイルの解析
-
jd-gui
を使い、jarファイルをデコンパイル、ソースコードを保存
ソースコードの復元
- コンパイルの段階で書き換えられてしまった関数、変数名を復元する(func_〇〇,field_〇〇系)
方針転換
- jarファイルをデコンパイルしたらそのModはScalaで書かれていたことが判明
- .javaファイルが無茶苦茶なことになっていた
- .scalaファイルが同封されていたのでそれを頑張って.javaファイルに翻訳することに
- 挫折、諦めてscalaで書くことにした
1.7.10から1.10.2への変換
- import周りやメソッド、フィールド名を1.10.2に合わせて修正する
- 特に、
以下は全てダメになってしまっているので要注意
完成
- 念入りにデバッグをし、ビルドしたら完成!
- こうしてまたひとつModが世に解き放たれたのだった…
最終更新:2018年06月03日 12:37